Commit 47fe3350 authored by bradburyr's avatar bradburyr
Browse files

Initial commit.

parent 432d8395
Loading
Loading
Loading
Loading
+304 −0
Original line number Diff line number Diff line
openapi: 3.0.0
info:
  title: 5GMS Common Data Types
  version: 1.0.0
  description: |
    5GMS Common Data Types
    © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
    All rights reserved.

tags:
  - name: 5GMS Common Data Types
    description: '5G Media Streaming: Common Data Types'

externalDocs:
  description: 'TS 26.510 V18.0.0; Media Delivery; Interactions and APIs for media session handling'
  url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.510/'

paths: {}

components:
  schemas:
    #################################
    # Clause 6.4.2: Simple data types
    #################################
    ResourceId:
      type: string
      description: String chosen by the 5GMS AF to serve as an identifier in a resource URI.
    Percentage:
      type: number
      minimum: 0.0
      maximum: 100.0
    #DurationSec is defined in TS29571_CommonData
    Duration:
      type: string
      format: duration
      description: 'String with format "duration" as defined by JSON Schema (referencing IETF RFC 3339, appendix A and, ultimately, ISO 8601).'
    #DateTime is defined in TS29571_CommonData
    #Uri is defined in TS29571_CommonData
    Url:
      type: string
      format: uri-reference
      description: 'Uniform Resource Locator, conforming with the "URI-reference" production specified in IETF RFC 3986, section 4.1.'
    RelativeUrl:
      type: string
      format: uri-reference
      description: 'Relative Uniform Resource Locator, conforming with the "relative-ref" production specified in IETF RFC 3986, section 4.2. Note that both "query" and "fragment" suffixes are permitted by this production.'
    AbsoluteUrl:
      type: string
      format: uri
      description: 'Absolute Uniform Resource Locator, conforming with the "absolute-URI" production specified in IETF RFC 3986, section 4.3 in which the scheme part is "http" or "https". Note that the "query" suffix is permitted by this production but the "fragment" suffix is not.'
    MediaDeliverySessionId:
      type: string
      description: 'A unique identifier for a media delivery session.'

    #####################################
    # Clause 6.4.3: Structured data types
    #####################################
    IpPacketFilterSet:
      type: object
      required:
        - direction
      properties:
        srcIp:
          type: string
        dstIp:
          type: string
        protocol:
          type: integer
        srcPort:
          type: integer
        dstPort:
          type: integer
        toSTc:
          type: string
        flowLabel:
          type: integer
        spi:
          type: integer
        direction:
          type: string

    ServiceDataFlowDescription:
      type: object
      properties:
        flowDescription:
          $ref: '#/components/schemas/IpPacketFilterSet'
        domainName:
          type: string

    M5QoSSpecification:
      type: object
      required:
        - marBwDlBitRate
        - marBwUlBitRate
        - mirBwDlBitRate
        - mirBwUlBitRate
      properties:
        marBwDlBitRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        marBwUlBitRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        minDesBwDlBitRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        minDesBwUlBitRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        mirBwDlBitRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        mirBwUlBitRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        desLatency:
          type: integer
          minimum: 0
        desLoss:
          type: integer
          minimum: 0

    M1QoSSpecification:
      type: object
      properties:
        qosReference:
          type: string
        maxBtrUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        maxBtrDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        maxAuthBtrUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        maxAuthBtrDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        defPacketLossRateDl:
          type: integer
          minimum: 0
        defPacketLossRateUl:
          type: integer
          minimum: 0

    ChargingSpecification:
      type: object
      properties:
        sponId:
          type: string
        sponStatus:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/SponsoringStatus'
        gpsi:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'

    TypedLocation:
      type: object
      required:
        - locationIdentifierType
        - location
      properties:
        locationIdentifierType:
          $ref: '#/components/schemas/CellIdentifierType'
        location:
          type: string

    OperationSuccessResponse:
      type: object
      required:
        - success
      properties:
        success:
          type: boolean
        reason:
          type: string

    EndpointAddress:
      type: object
      required:
        - portNumber
      properties:
        hostname:
          type: string
        ipv4Addr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr'
        ipv6Addr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Addr'
        portNumber:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint16'

    EdgeProcessingEligibilityCriteria:
      type: object
      required:
        - serviceDataFlowDescriptions
        - ueLocations
        - timeWindows
        - appRequest
      properties:
        serviceDataFlowDescriptions:
          type: array
          items:
            $ref: '#/components/schemas/ServiceDataFlowDescription'
        ueLocations:
          type: array
          items:
            $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G'
        timeWindows:
          type: array
          items:
            $ref: 'TS29122_CommonData.yaml#/components/schemas/TimeWindow'
        appRequest:
          type: boolean

    NetworkAssistanceInvocation:
      description: Common properties of a single Network Assistance invocation.
      type: object
      properties:
        policyTemplateId:
          $ref: '#/components/schemas/ResourceId'
        serviceDataFlowDescriptions:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ServiceDataFlowDescription'
        requestedQoS:
          $ref: '#/components/schemas/UnidirectionalQoSSpecification'
        # The network QoS parameters (if any) requested by the Media Session Handler.
        recommendedQoS:
          type: object
          description: The network QoS parameters (if any) recommended to the Media Session Handler.
          required:
            - maximumBitRate
            - minimumBitRate
          properties:
            maximumBitRate:
              $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
            minimumBitRate:
              $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'

    UnidirectionalQoSSpecification:
      type: object
      description: A specification for network Quality of Service in either the downlink or uplink direction.
      required:
        - maximumRequestedBitRate
        - minimumRequestedBitRate
      properties:
        maximumRequestedBitRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        minimumDesiredBitRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        minimumRequestedBitRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        desiredPacketLatency:
          type: integer
          minimum: 0
        desiredPacketLossRate:
          type: integer
          minimum: 0

    #####################################
    # Clause 6.4.4: Enumerated data types
    #####################################
    CellIdentifierType:
      anyOf:
        - type: string
          enum: [CGI, ECGI, NCGI]
        - type: string
          description: >
            This string provides forward-compatibility with future
            extensions to the enumeration but is not used to encode
            content defined in the present version of this API.

    SdfMethod:
      anyOf:
        - type: string
          enum: [5_TUPLE, 2_TUPLE, TYPE_OF_SERVICE_MARKING, FLOW_LABEL, DOMAIN_NAME]
        - type: string
          description: >
            This string provides forward-compatibility with future
            extensions to the enumeration but is not used to encode
            content defined in the present version of this API.

    ProvisioningSessionType:
      anyOf:
        - type: string
          enum: [DOWNLINK, UPLINK]
        - type: string
          description: >
            This string provides forward-compatibility with future
            extensions to the enumeration but is not used to encode
            content defined in the present version of this API.

    CacheStatus:
      anyOf:
        - type: string
          enum: [HIT, MISS, EXPIRED]
        - type: string
          description: >
            This string provides forward-compatibility with future
            extensions to the enumeration but is not used to encode
            content defined in the present version of this API.

    EASRelocationTolerance:
      anyOf:
        - type: string
          enum: [RELOCATION_UNAWARE, RELOCATION_TOLERANT, RELOCATION_INTOLERANT]
        - type: string
          description: >
            This string provides forward-compatibility with future
            extensions to the enumeration but is not used to encode
            content defined in the present version of this API.