openapi: 3.0.0 info: title: 3gpp-as-session-with-qos version: 1.0.2 description: | API for setting us an AS session with required QoS. © 2019, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 29.122 V15.4.0 T8 reference point for Northbound APIs url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.122/' security: - {} - oAuth2ClientCredentials: [] servers: - url: '{apiRoot}/3gpp-as-session-with-qos/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in subclause 5.2.4 of 3GPP TS 29.122. paths: /{scsAsId}/subscriptions: get: summary: read all of the active subscriptions for the SCS/AS tags: - AsSessionWithQoS API SCS/AS level GET Operation parameters: - name: scsAsId in: path description: Identifier of the SCS/AS required: true schema: type: string responses: '200': description: OK. content: application/json: schema: type: array items: $ref: '#/components/schemas/AsSessionWithQoSSubscription' '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 subscription resource tags: - AsSessionWithQoS API Subscription level POST Operation parameters: - name: scsAsId in: path description: Identifier of the SCS/AS required: true schema: type: string requestBody: description: Request to create a new subscription resource required: true content: application/json: schema: $ref: '#/components/schemas/AsSessionWithQoSSubscription' callbacks: notificationDestination: '{request.body#/notificationDestination}': post: requestBody: # contents of the callback message required: true content: application/json: schema: $ref: 'TS29122_CommonData.yaml#/components/schemas/NotificationData' responses: '204': description: No Content (successful notification) '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' responses: '201': description: Created (Successful creation of subscription) content: application/json: schema: $ref: '#/components/schemas/AsSessionWithQoSSubscription' headers: Location: description: 'Contains the URI of the newly created resource' required: true schema: type: string '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' /{scsAsId}/subscriptions/{subscriptionId}: get: summary: read an active subscriptions for the SCS/AS and the subscription Id tags: - AsSessionWithQoS API Subscription level GET Operation parameters: - name: scsAsId in: path description: Identifier of the SCS/AS required: true schema: type: string - name: subscriptionId in: path description: Identifier of the subscription resource required: true schema: type: string responses: '200': description: OK (Successful get the active subscription) content: application/json: schema: $ref: '#/components/schemas/AsSessionWithQoSSubscription' '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 subscription resource tags: - AsSessionWithQoS API subscription level PUT Operation parameters: - name: scsAsId in: path description: Identifier of the SCS/AS required: true schema: type: string - name: subscriptionId in: path description: Identifier of the subscription resource required: true schema: type: string requestBody: description: Parameters to update/replace the existing subscription required: true content: application/json: schema: $ref: '#/components/schemas/AsSessionWithQoSSubscription' responses: '200': description: OK (Successful update of the subscription) content: application/json: schema: $ref: '#/components/schemas/AsSessionWithQoSSubscription' '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: Updates/replaces an existing subscription resource tags: - AsSessionWithQoS API subscription level PATCH Operation parameters: - name: scsAsId in: path description: Identifier of the SCS/AS required: true schema: type: string - name: subscriptionId in: path description: Identifier of the subscription resource required: true schema: type: string requestBody: required: true content: application/merge-patch+json: schema: $ref: '#/components/schemas/AsSessionWithQoSSubscriptionPatch' responses: '200': description: OK. The subscription was modified successfully. content: application/json: schema: $ref: '#/components/schemas/AsSessionWithQoSSubscription' '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 subscription tags: - AsSessionWithQoS API Subscription level DELETE Operation parameters: - name: scsAsId in: path description: Identifier of the SCS/AS required: true schema: type: string - name: subscriptionId in: path description: Identifier of the subscription resource required: true schema: type: string responses: '204': description: No Content (Successful deletion of the existing subscription) '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: AsSessionWithQoSSubscription: type: object properties: self: $ref: 'TS29122_CommonData.yaml#/components/schemas/Link' supportedFeatures: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' notificationDestination: $ref: 'TS29122_CommonData.yaml#/components/schemas/Link' flowInfo: type: array items: $ref: 'TS29122_CommonData.yaml#/components/schemas/FlowInfo' minItems: 1 description: Describe the data flow which requires QoS. ethFlowInfo: type: array items: $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/EthFlowDescription' minItems: 1 description: Identifies Ethernet packet flows. qosReference: type: string description: Identifies a pre-defined QoS information ueIpv4Addr: $ref: 'TS29122_CommonData.yaml#/components/schemas/Ipv4Addr' ueIpv6Addr: $ref: 'TS29122_CommonData.yaml#/components/schemas/Ipv6Addr' macAddr: $ref: 'TS29571_CommonData.yaml#/components/schemas/MacAddr48' usageThreshold: $ref: 'TS29122_CommonData.yaml#/components/schemas/UsageThreshold' sponsorInfo: $ref: 'TS29122_CommonData.yaml#/components/schemas/SponsorInformation' requestTestNotification: type: boolean description: Set to true by the SCS/AS to request the SCEF to send a test notification as defined in subclause 5.2.5.3. Set to false or omitted otherwise. websockNotifConfig: $ref: 'TS29122_CommonData.yaml#/components/schemas/WebsockNotifConfig' required: - notificationDestination AsSessionWithQoSSubscriptionPatch: type: object properties: flowInfo: type: array items: $ref: 'TS29122_CommonData.yaml#/components/schemas/FlowInfo' minItems: 1 description: Describe the data flow which requires QoS. ethFlowInfo: type: array items: $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/EthFlowDescription' minItems: 1 description: Identifies Ethernet packet flows. qosReference: type: string description: Pre-defined QoS reference usageThreshold: $ref: 'TS29122_CommonData.yaml#/components/schemas/UsageThresholdRm'