Commit 55f5437f authored by bradburyr's avatar bradburyr
Browse files

26510-CR0021 [S4aI250075] Generic CMCD reporting envelope.

parent 5df2309e
Loading
Loading
Loading
Loading
+70 −3
Original line number Diff line number Diff line
openapi: 3.0.0
info:
  title: Maf_SessionHandling_MetricsReporting
  version: 1.0.0
  version: 1.0.1
  description: |
    Media Delivery: Metrics Reporting API
    © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
    © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
    All rights reserved.

tags:
@@ -12,7 +12,7 @@ tags:
    description: 'Media Delivery: Metrics Reporting API'

externalDocs:
  description: 'TS 26.510 V18.0.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,66 @@ 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 session'
      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:
        - sessionId
        - clientId
        - provisioingSessionId
      properties:
        sessionId:
          $ref: 'TS26510_CommonData.yaml#/components/schemas/MediaDeliverySessionId'
        clientId:
          type: string
        provisioningSessionId:
          $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
        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: [cmcdSessionData]
        - required: [cmcdObjectData]
        - required: [cmcdRequestData]
        - required: [cmcdStatusData]
      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'
        # Properties for conveying CMCD samples - see clause 11.4.3.3 of TS 26.512
        cmcdSessionData:
          $ref: 'TS26512_ClientData.yaml#/components/schemas/CmcdSessionData'
        cmcdObjectData:
          $ref: 'TS26512_ClientData.yaml#/components/schemas/CmcdObjectData'
        cmcdRequestData:
          $ref: 'TS26512_ClientData.yaml#/components/schemas/CmcdRequestData'
        cmcdStatusData:
          $ref: 'TS26512_ClientData.yaml#/components/schemas/CmcdStatusData'