diff --git a/TS26510_Maf_SessionHandling_MetricsReporting.yaml b/TS26510_Maf_SessionHandling_MetricsReporting.yaml old mode 100644 new mode 100755 index 60e367b425226bfc420ff69f4f1dbbf5aec78ed5..f1a4693359a312dda178df47a960fc718c6e0f29 --- a/TS26510_Maf_SessionHandling_MetricsReporting.yaml +++ b/TS26510_Maf_SessionHandling_MetricsReporting.yaml @@ -1,7 +1,7 @@ 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.' diff --git a/TS26512_ClientData.yaml b/TS26512_ClientData.yaml new file mode 100755 index 0000000000000000000000000000000000000000..26a21074ef886d65a8424c95efe9228892c82a1c --- /dev/null +++ b/TS26512_ClientData.yaml @@ -0,0 +1,141 @@ +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] diff --git a/TS26512_Mas_Configuration_ContentHosting.yaml b/TS26512_Mas_Configuration_ContentHosting.yaml index 5e7393946057f5fa0001328882fe5f28497c156c..48894d154004b5e4f6b23999c9d0421c01ca8bf4 100644 --- a/TS26512_Mas_Configuration_ContentHosting.yaml +++ b/TS26512_Mas_Configuration_ContentHosting.yaml @@ -1,7 +1,7 @@ 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: diff --git a/TS26512_Mas_Configuration_ContentPublishing.yaml b/TS26512_Mas_Configuration_ContentPublishing.yaml index e5e854905ecba6746d6886590f6bdfb786101f7d..322ea58471da8374c5e6257a92acc215554e3318 100644 --- a/TS26512_Mas_Configuration_ContentPublishing.yaml +++ b/TS26512_Mas_Configuration_ContentPublishing.yaml @@ -1,7 +1,7 @@ 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: