openapi: 3.0.0 info: title: 3gpp-iptvconfiguration version: 1.0.0.alpha-2 description: | API for IPTV configuration. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 29.522 V16.3.0; 5G System; Network Exposure Function Northbound APIs. url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.522/' security: - {} - oAuth2ClientCredentials: [] servers: - url: '{apiRoot}/3gpp-iptvconfiguration/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in subclause 5.2.4 of 3GPP TS 29.122. paths: /{afId}/configurations: get: summary: read all of the active configurations for the AF tags: - AF level GET Operation parameters: - name: afId in: path description: Identifier of the AF required: true schema: type: string responses: '200': description: OK (Successful get all of the active configurations for the AF) content: application/json: schema: type: array items: $ref: '#/components/schemas/IptvConfigData' minItems: 0 '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '406': $ref: 'TS29122_CommonData.yaml#/components/responses/406' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' post: summary: Creates a new configuration resource tags: - Configuration level POST Operation parameters: - name: afId in: path description: Identifier of the AF required: true schema: type: string requestBody: description: new configuration creation required: true content: application/json: schema: $ref: '#/components/schemas/IptvConfigData' responses: '201': description: Created (Successful creation of configuration) content: application/json: schema: $ref: '#/components/schemas/IptvConfigData' headers: Location: description: 'Contains the URI of the newly created resource' required: true schema: type: string '204': description: Successful case. The resource has been successfully created and no additional content is to be sent in the response message. '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29122_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29122_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29122_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' /{afId}/configurations/{configurationId}: get: summary: read an active configuration for the AF and the configuration Id tags: - Configuration level GET Operation parameters: - name: afId in: path description: Identifier of the AF required: true schema: type: string - name: configurationId in: path description: Identifier of the configuration resource required: true schema: type: string responses: '200': description: OK (Successful get the active configuration) content: application/json: schema: $ref: '#/components/schemas/IptvConfigData' '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '406': $ref: 'TS29122_CommonData.yaml#/components/responses/406' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' put: summary: Updates/replaces an existing configuration resource tags: - Configuration level PUT Operation parameters: - name: afId in: path description: Identifier of the AF required: true schema: type: string - name: configurationId in: path description: Identifier of the configuration resource required: true schema: type: string requestBody: description: Parameters to update/replace the existing configuration required: true content: application/json: schema: $ref: '#/components/schemas/IptvConfigData' responses: '200': description: OK (Successful deletion of the existing configuration) content: application/json: schema: $ref: '#/components/schemas/IptvConfigData' '204': description: Successful case. The resource has been successfully updated and no additional content is to be sent in the response message. '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29122_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29122_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29122_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' patch: summary: Partial updates an existing configuration resource tags: - Configuration level PATCH Operation parameters: - name: afId in: path description: Identifier of the AF required: true schema: type: string - name: configurationId in: path description: Identifier of the configuration resource required: true schema: type: string requestBody: required: true content: application/merge-patch+json: schema: $ref: '#/components/schemas/IptvConfigDataPatch' responses: '200': description: OK. The configuration was modified successfully. content: application/json: schema: $ref: '#/components/schemas/IptvConfigData' '204': description: Successful case. The resource has been successfully updated and no additional content is to be sent in the response message. '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '411': $ref: 'TS29122_CommonData.yaml#/components/responses/411' '413': $ref: 'TS29122_CommonData.yaml#/components/responses/413' '415': $ref: 'TS29122_CommonData.yaml#/components/responses/415' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' delete: summary: Deletes an already existing configuration tags: - Configuration level DELETE Operation parameters: - name: afId in: path description: Identifier of the AF required: true schema: type: string - name: configurationId in: path description: Identifier of the configuration resource required: true schema: type: string responses: '204': description: No Content (Successful deletion of the existing configuration) '400': $ref: 'TS29122_CommonData.yaml#/components/responses/400' '401': $ref: 'TS29122_CommonData.yaml#/components/responses/401' '403': $ref: 'TS29122_CommonData.yaml#/components/responses/403' '404': $ref: 'TS29122_CommonData.yaml#/components/responses/404' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': $ref: 'TS29122_CommonData.yaml#/components/responses/500' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' components: securitySchemes: oAuth2ClientCredentials: type: oauth2 flows: clientCredentials: tokenUrl: '{tokenUrl}' scopes: {} schemas: IptvConfigData: type: object properties: self: $ref: 'TS29122_CommonData.yaml#/components/schemas/Link' gpsi: $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi' exterGroupId: $ref: 'TS29122_CommonData.yaml#/components/schemas/ExternalGroupId' afAppId: type: string dnn: $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn' snssai: $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai' multiAccCtrls: type: object additionalProperties: $ref: '#/components/schemas/MulticastAccessControl' minProperties: 1 suppFeat: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' required: - afAppId - multiAccCtrls - suppFeat IptvConfigDataPatch: type: object properties: multiAccCtrls: type: object additionalProperties: $ref: '#/components/schemas/MulticastAccessControl' minProperties: 1 MulticastAccessControl: type: object properties: srcIpv4Addr: $ref: 'TS29122_CommonData.yaml#/components/schemas/Ipv4Addr' srcIpv6Addr: $ref: 'TS29122_CommonData.yaml#/components/schemas/Ipv6Addr' multicastV4Addr: $ref: 'TS29122_CommonData.yaml#/components/schemas/Ipv4Addr' multicastV6Addr: $ref: 'TS29122_CommonData.yaml#/components/schemas/Ipv6Addr' accStatus: $ref: '#/components/schemas/AccessRightStatus' required: - accStatus AccessRightStatus: anyOf: - type: string enum: - FULLY_ALLOWED - PREVIEW_ALLOWED - NO_ALLOWED - type: string description: > Possible values are - FULLY_ALLOWED: The User is fully allowed to access to the channel. - PREVIEW_ALLOWED: The User is preview allowed to access to the channel. - NO_ALLOWED: The User is not allowed to access to the channel.