Commit a4bd8591 authored by bradburyr's avatar bradburyr
Browse files

Merge branch 'cmcd' into 'REL-19'

[AMD_PRO-MED] WT1: Introduce CMCD into the generalised Media Delivery System and the 5GMS System (26510-CR0021 -> 26510-CR0032, 26512-CR0089 -> 26512-CR0097)

See merge request !1
parents cd24598b ba97dd30
Loading
Loading
Loading
Loading
Loading
+64 −2
Original line number Diff line number Diff line
openapi: 3.0.0
info:
  title: Maf_SessionHandling_MetricsReporting
  version: 1.0.1
  version: 1.1.0
  description: |
    Media Delivery: Metrics Reporting API
    © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
@@ -12,7 +12,7 @@ tags:
    description: 'Media Delivery: Metrics Reporting API'

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

servers:
@@ -55,6 +55,10 @@ paths:
            schema:
              type: string
              format: xml
          application/3gpp-media-delivery-metrics-report+json:
            schema:
              $ref: '#/components/schemas/MetricsReport'
              format: json
          application/*:
            schema:
              type: string
@@ -98,3 +102,61 @@ components:
          tokenUrl: '{tokenUrl}'
          scopes:
            metrics-report_submit: Submit a metrics report

  schemas:
    MetricsReport:
      description: 'A timestamped report of QoE metrics pertaining to one or more media delivery sessions'
      type: object
      required:
        - reportTimestamp
        - sessions
      properties:
        reportTimestamp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        sessions:
          type: array
          items:
            $ref: '#/components/schemas/MetricsSession'
          minItems: 0

    MetricsSession:
      description: 'A set of metrics samples pertaining to a particular media delivery session'
      type: object
      required:
        - clientId
        - provisioingSessionId
        - sessionId
      properties:
        clientId:
          type: string
        provisioningSessionId:
          $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
        sessionId:
          $ref: 'TS26510_CommonData.yaml#/components/schemas/MediaDeliverySessionId'
        contentId:
          type: string
          description: 'Identifying the content currently being consumed in the media delivery session.'
        samples:
          type: array
          items:
            $ref: '#/components/schemas/MetricsSample'
          minItems: 0

    MetricsSample:
      description: 'An abstract timestamped sample of one or more metrics'
      type: object
      required:
        - sampleTimestamp
      anyOf:
        - required: [mediaStreamingClientData]
      properties:
        sampleTimestamp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        sliceInfo:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        dataNetworkName:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
        mediaStreamingClientData:
          allOf:
            - $ref: 'TS26512_ClientData.yaml#/components/schemas/MediaStreamingClientData'
            - description: 'Client data for the 5G Media Streaming System. See clause 11.4.3.3 of TS 26.512.'
+141 −0
Original line number Diff line number Diff line
openapi: 3.0.0
info:
  title: '5G Media Streaming: Client data syntax for QoE metrics reporting'
  version: 1.0.0
  description: |
    5GMS client data syntax for QoE metrics reporting
    © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
    All rights reserved.

tags:
  - name: '5GMS client data syntax for QoE metrics reporting'
    description: '5G Media Streaming: Client data syntax for use in QoE metrics reporting envelope'

externalDocs:
  description: 'TS 26.512 V19.0.0; 5G Media Streaming (5GMS); Protocols'
  url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.512/'

paths: {}

components:
  schemas:
    MediaStreamingClientData:
      description: 'Envelope for client data pertaining to the 5G Media Streaming System.'
      type: object
      required:
        - requestUrl
      anyOf:
        - required: [cmcdSessionInfo]
        - required: [cmcdObjectInfo]
        - required: [cmcdRequestInfo]
        - required: [cmcdStatusInfo]
      properties:
        requestUrl:
          $ref: 'TS26510_CommonData.yaml#/components/schemas/AbsoluteUrl'
        cmcdSessionInfo:
          $ref: '#/components/schemas/CmcdSessionInfo'
        cmcdObjectInfo:
          $ref: '#/components/schemas/CmcdObjectInfo'
        cmcdRequestInfo:
          $ref: '#/components/schemas/CmcdRequestInfo'
        cmcdStatusInfo:
          $ref: '#/components/schemas/CmcdStatusInfo'

    ##########################################
    # Common Media Client Data per CTA-5004 V1
    ##########################################
    CmcdSessionInfo:
      description: 'An object containing session-scope CMCD keys'
      type: object
      required:
        - sid
      properties:
        v:
          description: 'CMCD version'
          type: integer
          minimum: 1
        sid:
          description: 'Session identifier'
          type: string
        cid:
          description: 'Content identifier'
          type: string
        st:
          allOf:
            - description: 'Stream type'
            - $ref: '#/components/schemas/CmcdStreamType'
        sf:
          allOf:
            - description: 'Streaming format'
            - $ref: '#/components/schemas/CmcdStreamingFormat'
        pr:
          description: 'Playback rate'
          type: number

    CmcdObjectInfo:
      description: 'An object containing object-scope CMCD keys'
      type: object
      properties:
        ot:
          allOf:
            - description: 'Object type'
            - $ref: '#/components/schemas/CmcdObjectType'
        d:
          description: 'Object duration (milliseconds)'
          type: integer
        br:
          description: 'Encoded bit rate (kilobits per second)'
          type: integer
        tb:
          description: 'Top bit rate (kilobits per second)'
          type: integer

    CmcdRequestInfo:
      description: 'An object containing request-scope CMCD keys'
      type: object
      properties:
        su:
          description: 'Start-up'
          type: boolean
        mtp:
          description: 'Measured throughput (kilobits per second)'
          type: integer
        dl:
          description: 'Deadline (milliseconds)'
          type: integer
        bl:
          description: 'Buffer length (milliseconds)'
          type: integer
        nor:
          allOf:
            - description: 'Next object request'
            - $ref: 'TS26510_CommonData.yaml#/components/schemas/RelativeUrl'
        nrr:
          description: 'Next range request'
          type: string
        
    CmcdStatusInfo:
      description: 'An object containing status-scope CMCD keys'
      type: object
      properties:
        rtp:
          description: 'Requested maximum throughput (kilobits per second)'
          type: integer
        bs:
          description: 'Buffer starvation'
          type: boolean

    CmcdStreamType:
      description: 'Stream type'
      type: string
      enum: [v, l]

    CmcdStreamingFormat:
      description: 'Streaming format'
      type: string
      enum: [d, h, s, o]

    CmcdObjectType:
      description: 'Media type of object'
      type: string
      enum: [m, a, v, av, i, c, tt, k, o]
+6 −2
Original line number Diff line number Diff line
openapi: 3.0.0
info:
  title: Mas_Configuration_ContentHosting
  version: 1.0.2
  version: 1.1.0
  description: |
    5GMS AS Configuration API: Content Hosting
    © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
@@ -12,7 +12,7 @@ tags:
    description: '5G Media Streaming: Application Server Configuration (M3) APIs: Content Hosting'

externalDocs:
  description: 'TS 26.512 V18.6.0; 5G Media Streaming (5GMS); Protocols'
  description: 'TS 26.512 V19.0.0; 5G Media Streaming (5GMS); Protocols'
  url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.512/'

servers:
@@ -352,11 +352,15 @@ components:
      description: "A representation of a Content Hosting Configuration resource used to configure a Media AS."
      required:
        - name
        - externalServiceId
        - ingestConfiguration
        - distributionConfigurations
      properties:
        name:
          type: string
        externalServiceId:
          type: string
          description: 'External service identifier of the parent Provisioning Session for use in retrieving Service Access Information at reference point M3.'
        ingestConfiguration:
          $ref: 'TS26510_Maf_Provisioning_ContentHosting.yaml#/components/schemas/IngestConfiguration'
        distributionConfigurations:
+6 −2
Original line number Diff line number Diff line
openapi: 3.0.0
info:
  title: Mas_Configuration_ContentPublishing
  version: 1.0.2
  version: 1.1.0
  description: |
    5GMS AS Configuration API: Content Publishing
    © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
@@ -12,7 +12,7 @@ tags:
    description: '5G Media Streaming: Application Server Configuration (M3) APIs: Content Publishing'

externalDocs:
  description: 'TS 26.512 V18.6.0; 5G Media Streaming (5GMS); Protocols'
  description: 'TS 26.512 V19.0.0; 5G Media Streaming (5GMS); Protocols'
  url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.512/'

servers:
@@ -352,11 +352,15 @@ components:
      description: "A representation of a Content Publishing Configuration resource used to configure a Media AS."
      required:
        - name
        - externalServiceId
        - contributionConfigurations
        - egestConfiguration
      properties:
        name:
          type: string
        externalServiceId:
          type: string
          description: 'External service identifier of the parent Provisioning Session for use in retrieving Service Access Information at reference point M3.'
        contributionConfigurations:
          type: array
          items: