openapi: 3.0.0 info: title: 3gpp-network-status-reporting version: 1.0.1 description: | API for reporting network status. © 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-net-stat-report/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in subclause 5.2.4 of 3GPP TS 29.122. paths: /{scsAsId}/subscriptions: parameters: - name: scsAsId in: path description: Identifier of the SCS/AS required: true schema: $ref: 'TS29122_CommonData.yaml#/components/schemas/ScsAsId' get: summary: Read all network status reporting subscription resources for a given SCS/AS. responses: '200': description: The requested information was returned successfully. content: application/json: schema: type: array items: $ref: '#/components/schemas/NetworkStatusReportingSubscription' 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: Create a new network status reporting subscription resource. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/NetworkStatusReportingSubscription' callbacks: notificationDestination: '{request.body#/notificationDestination}': post: requestBody: # contents of the callback message required: true content: application/json: schema: $ref: '#/components/schemas/NetworkStatusReportingNotification' 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: The subscription was created successfully. The URI of the created resource shall be returned in the "Location" HTTP header. content: application/json: schema: $ref: '#/components/schemas/NetworkStatusReportingSubscription' 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}: parameters: - name: scsAsId in: path description: Identifier of the SCS/AS required: true schema: $ref: 'TS29122_CommonData.yaml#/components/schemas/ScsAsId' - name: subscriptionId in: path description: Identifier of the subscription resource of type string required: true schema: $ref: 'TS29122_CommonData.yaml#/components/schemas/ResourceId' get: summary: Read an active network status reporting subscription resource. responses: '200': description: The requested information was returned successfully. content: application/json: schema: $ref: '#/components/schemas/NetworkStatusReportingSubscription' '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: Modify an existing subscription resource to update a subscription. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/NetworkStatusReportingSubscription' responses: '200': description: The subscription was updated successfully. content: application/json: schema: $ref: '#/components/schemas/NetworkStatusReportingSubscription' '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: Delete an existing continuous network status reporting subscription resource. responses: '204': description: The subscription was updated successfully. '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: NetworkStatusReportingSubscription: 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' 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' locationArea: $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea' timeDuration: $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime' thresholdValues: type: array items: $ref: '#/components/schemas/CongestionValue' minItems: 1 description: Identifies a list of congestion level(s) with exact value that the SCS/AS requests to be informed of when reached. thresholdTypes: type: array items: $ref: '#/components/schemas/CongestionType' minItems: 1 description: Identifies a list of congestion level(s) with abstracted value that the SCS/AS requests to be informed of when reached. required: - notificationDestination - locationArea not: required: [thresholdValues, thresholdTypes] NetworkStatusReportingNotification: type: object properties: subscription: $ref: 'TS29122_CommonData.yaml#/components/schemas/Link' nsiValue: $ref: '#/components/schemas/CongestionValue' nsiType: $ref: '#/components/schemas/CongestionType' required: - subscription not: required: [nsiValue, nsiType] CongestionValue: type: integer minimum: 0 maximum: 31 description: Unsigned integer with valid values between 0 and 31. The value 0 indicates that there is no congestion. The value 1 is the lowest congestion level and value 31 is the highest congestion level. CongestionType: anyOf: - type: string enum: - HIGH - MEDIUM - LOW - type: string description: > This string provides forward-compatibility with future extensions to the enumeration but is not used to encode content defined in the present version of this API. description: > Possible values are - HIGH: The congestion status is high. - MEDIUM: The congestion status is medium. - LOW: The congestion status is low.