openapi: 3.0.0 info: title: 3gpp-nidd version: 1.1.0.alpha-2 description: | API for non IP data delivery. © 2020, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 29.122 V16.5.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-nidd/v1' variables: apiRoot: default: https://example.com description: apiRoot as defined in subclause 5.2.4 of 3GPP TS 29.122. paths: /{scsAsId}/configurations: parameters: - name: scsAsId description: String identifying the SCS/AS. in: path required: true schema: type: string get: responses: '200': description: all NIDD configurations. content: application/json: schema: type: array items: $ref: '#/components/schemas/NiddConfiguration' minItems: 0 description: individual NIDD 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' '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: requestBody: description: Contains the data to create a NIDD configuration. required: true content: application/json: schema: $ref: '#/components/schemas/NiddConfiguration' responses: '201': description: NIDD configuration is successfully created. content: application/json: schema: $ref: '#/components/schemas/NiddConfiguration' 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' callbacks: niddNotifications: '{$request.body#/notificationDestination}': post: requestBody: description: Notification for NIDD configuration status, MO NIDD, MT NIDD delivery report. content: application/json: schema: oneOf: - $ref: '#/components/schemas/NiddConfigurationStatusNotification' - $ref: '#/components/schemas/NiddUplinkDataNotification' - $ref: '#/components/schemas/NiddDownlinkDataDeliveryStatusNotification' - $ref: '#/components/schemas/GmdNiddDownlinkDataDeliveryNotification' responses: '204': description: Expected response to a successful callback processing without a body '200': description: Expected response to a successful callback processing with a body content: application/json: schema: $ref: 'TS29122_CommonData.yaml#/components/schemas/Acknowledgement' '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}/configurations/{configurationId}: parameters: - name: scsAsId description: String identifying the SCS/AS. in: path required: true schema: type: string - name: configurationId description: String identifying the individual NIDD configuration resource in the SCEF. in: path required: true schema: type: string get: responses: '200': description: The individual NIDD configuration is successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/NiddConfiguration' '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' patch: requestBody: description: Contains information to be applied to the individual NIDD configuration. required: true content: application/merge-patch+json: schema: $ref: '#/components/schemas/NiddConfigurationPatch' responses: '200': description: The Individual NIDD configuration is modified successfully and a representation of that resource is returned. content: application/json: schema: $ref: '#/components/schemas/NiddConfiguration' '204': description: The Individual NIDD configuration is modified 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' '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: responses: '204': description: The Individual NIDD configuration is deleted. '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' /{scsAsId}/configurations/{configurationId}/downlink-data-deliveries: parameters: - name: scsAsId description: String identifying the SCS/AS. in: path required: true schema: type: string - name: configurationId description: String identifying the individual NIDD configuration resource in the SCEF. in: path required: true schema: type: string get: responses: '200': description: all NIDD downlink data deliveries. content: application/json: schema: type: array items: $ref: '#/components/schemas/NiddDownlinkDataTransfer' minItems: 0 description: individual NIDD downlink data delivery. '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: requestBody: description: Contains the data to create a NIDD downlink data delivery. required: true content: application/json: schema: $ref: '#/components/schemas/NiddDownlinkDataTransfer' responses: '200': description: NIDD downlink data delivery is successful. content: application/json: schema: $ref: '#/components/schemas/NiddDownlinkDataTransfer' '201': description: NIDD downlink data delivery is pending. content: application/json: schema: $ref: '#/components/schemas/NiddDownlinkDataTransfer' 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': description: The NIDD downlink data delivery request was not successful. content: application/json: schema: $ref: '#/components/schemas/NiddDownlinkDataDeliveryFailure' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' /{scsAsId}/configurations/{configurationId}/downlink-data-deliveries/{downlinkDataDeliveryId}: parameters: - name: scsAsId description: String identifying the SCS/AS. in: path required: true schema: type: string - name: configurationId description: String identifying the individual NIDD configuration resource in the SCEF. in: path required: true schema: type: string - name: downlinkDataDeliveryId description: String identifying the individual NIDD downlink data delivery in the SCEF. in: path required: true schema: type: string get: responses: '200': description: The individual NIDD downlink data delivery is successfully retrieved. content: application/json: schema: $ref: '#/components/schemas/NiddDownlinkDataTransfer' '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: requestBody: description: Contains information to be applied to the individual NIDD downlink data delivery. required: true content: application/json: schema: $ref: '#/components/schemas/NiddDownlinkDataTransfer' responses: '200': description: The pending NIDD downlink data is replaced sucessfully but delivery is pending. content: application/json: schema: $ref: '#/components/schemas/NiddDownlinkDataTransfer' '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' '409': $ref: 'TS29122_CommonData.yaml#/components/responses/409' '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': description: The NIDD downlink data replacement request was not successful. content: application/json: schema: $ref: '#/components/schemas/NiddDownlinkDataDeliveryFailure' '503': $ref: 'TS29122_CommonData.yaml#/components/responses/503' default: $ref: 'TS29122_CommonData.yaml#/components/responses/default' delete: responses: '204': description: The pending NIDD downlink data is deleted. '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' '409': $ref: 'TS29122_CommonData.yaml#/components/responses/409' '429': $ref: 'TS29122_CommonData.yaml#/components/responses/429' '500': description: The NIDD downlink data cancellation request was not successful. content: application/json: schema: $ref: '#/components/schemas/NiddDownlinkDataDeliveryFailure' '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: NiddConfiguration: type: object properties: self: $ref: 'TS29122_CommonData.yaml#/components/schemas/Link' supportedFeatures: $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures' mtcProviderId: type: string description: Identifies the MTC Service Provider and/or MTC Application. externalId: $ref: 'TS29122_CommonData.yaml#/components/schemas/ExternalId' msisdn: $ref: 'TS29122_CommonData.yaml#/components/schemas/Msisdn' externalGroupId: $ref: 'TS29122_CommonData.yaml#/components/schemas/ExternalGroupId' duration: $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime' reliableDataService: type: boolean description: The reliable data service (as defined in subclause 4.5.15.3 of 3GPP TS 23.682) to indicate if a reliable data service acknowledgment is enabled or not. rdsPorts: type: array items: $ref: '#/components/schemas/RdsPort' minItems: 1 description: Indicates the port configuration that is used for reliable data transfer between specific applications using RDS (as defined in subclause 5.2.4 and 5.2.5 of 3GPP TS 24.250). pdnEstablishmentOption: $ref: '#/components/schemas/PdnEstablishmentOptions' 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' maximumPacketSize: type: integer minimum: 1 description: The Maximum Packet Size is the maximum NIDD packet size that was transferred to the UE by the SCEF in the PCO, see subclause 4.5.14.1 of 3GPP TS 23.682. If no maximum packet size was provided to the UE by the SCEF, the SCEF sends a default configured max packet size to SCS/AS. Unit bit. readOnly: true niddDownlinkDataTransfers: type: array items: $ref: '#/components/schemas/NiddDownlinkDataTransfer' minItems: 1 description: The downlink data deliveries that needed to be executed by the SCEF. The cardinality of the property shall be 0..1 in the request and 0..N in the response (i.e. response may contain multiple buffered MT NIDD). status: $ref: '#/components/schemas/NiddStatus' required: - notificationDestination oneOf: - required: [externalId] - required: [msisdn] - required: [externalGroupId] NiddDownlinkDataTransfer: type: object properties: externalId: $ref: 'TS29122_CommonData.yaml#/components/schemas/ExternalId' externalGroupId: $ref: 'TS29122_CommonData.yaml#/components/schemas/ExternalGroupId' msisdn: $ref: 'TS29122_CommonData.yaml#/components/schemas/Msisdn' self: $ref: 'TS29122_CommonData.yaml#/components/schemas/Link' data: $ref: 'TS29122_CommonData.yaml#/components/schemas/Bytes' reliableDataService: type: boolean description: The reliable data service (as defined in subclause 4.5.15.3 of 3GPP TS 23.682) to indicate if a reliable data service acknowledgment is enabled or not. rdsPort: $ref: '#/components/schemas/RdsPort' maximumLatency: $ref: 'TS29122_CommonData.yaml#/components/schemas/DurationSec' priority: type: integer description: It is used to indicate the priority of the non-IP data packet relative to other non-IP data packets. pdnEstablishmentOption: $ref: '#/components/schemas/PdnEstablishmentOptions' deliveryStatus: $ref: '#/components/schemas/DeliveryStatus' requestedRetransmissionTime: $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime' required: - data oneOf: - required: [externalId] - required: [msisdn] - required: [externalGroupId] NiddUplinkDataNotification: type: object properties: niddConfiguration: $ref: 'TS29122_CommonData.yaml#/components/schemas/Link' externalId: $ref: 'TS29122_CommonData.yaml#/components/schemas/ExternalId' msisdn: $ref: 'TS29122_CommonData.yaml#/components/schemas/Msisdn' data: $ref: 'TS29122_CommonData.yaml#/components/schemas/Bytes' reliableDataService: type: boolean description: Indicates whether the reliable data service is enabled. rdsPort: $ref: '#/components/schemas/RdsPort' required: - niddConfiguration - data oneOf: - required: [externalId] - required: [msisdn] NiddDownlinkDataDeliveryStatusNotification: type: object properties: niddDownlinkDataTransfer: $ref: 'TS29122_CommonData.yaml#/components/schemas/Link' deliveryStatus: $ref: '#/components/schemas/DeliveryStatus' requestedRetransmissionTime: $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime' required: - niddDownlinkDataTransfer - deliveryStatus NiddConfigurationStatusNotification: type: object properties: niddConfiguration: $ref: 'TS29122_CommonData.yaml#/components/schemas/Link' externalId: $ref: 'TS29122_CommonData.yaml#/components/schemas/ExternalId' msisdn: $ref: 'TS29122_CommonData.yaml#/components/schemas/Msisdn' status: $ref: '#/components/schemas/NiddStatus' rdsCapIndication: type: boolean description: It indicates whether the network capability for the reliable data service is enabled or not. rdsPort: $ref: '#/components/schemas/RdsPort' required: - niddConfiguration - status oneOf: - required: [externalId] - required: [msisdn] GmdNiddDownlinkDataDeliveryNotification: type: object properties: niddDownlinkDataTransfer: $ref: 'TS29122_CommonData.yaml#/components/schemas/Link' gmdResults: type: array items: $ref: '#/components/schemas/GmdResult' minItems: 1 description: Indicates the group message delivery result. required: - niddDownlinkDataTransfer - gmdResults RdsPort: type: object properties: portUE: $ref: 'TS29122_CommonData.yaml#/components/schemas/Port' portSCEF: $ref: 'TS29122_CommonData.yaml#/components/schemas/Port' required: - portUE - portSCEF GmdResult: type: object properties: externalId: $ref: 'TS29122_CommonData.yaml#/components/schemas/ExternalId' msisdn: $ref: 'TS29122_CommonData.yaml#/components/schemas/Msisdn' deliveryStatus: $ref: '#/components/schemas/DeliveryStatus' requestedRetransmissionTime: $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime' required: - deliveryStatus oneOf: - required: [externalId] - required: [msisdn] NiddDownlinkDataDeliveryFailure: type: object properties: problemDetail: $ref: 'TS29122_CommonData.yaml#/components/schemas/ProblemDetails' requestedRetransmissionTime: $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime' required: - problemDetail PdnEstablishmentOptions: anyOf: - type: string enum: - WAIT_FOR_UE - INDICATE_ERROR - SEND_TRIGGER - 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 - WAIT_FOR_UE: wait for the UE to establish the PDN connection - INDICATE_ERROR: respond with an error cause - SEND_TRIGGER: send a device trigger PdnEstablishmentOptionsRm: anyOf: - $ref: '#/components/schemas/PdnEstablishmentOptions' - $ref: 'TS29571_CommonData.yaml#/components/schemas/NullValue' DeliveryStatus: anyOf: - type: string enum: - SUCCESS - SUCCESS_NEXT_HOP_ACKNOWLEDGED - SUCCESS_NEXT_HOP_UNACKNOWLEDGED - SUCCESS_ACKNOWLEDGED - SUCCESS_UNACKNOWLEDGED - TRIGGERED - BUFFERING - BUFFERING_TEMPORARILY_NOT_REACHABLE - SENDING - FAILURE - FAILURE_RDS_DISABLED - FAILURE_NEXT_HOP - FAILURE_TIMEOUT - 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 - SUCCESS: Success but details not provided - SUCCESS_NEXT_HOP_ACKNOWLEDGED: Successful delivery to the next hop with acknowledgment. - SUCCESS_NEXT_HOP_UNACKNOWLEDGED: Successful delivery to the next hop without acknowledgment - SUCCESS_ACKNOWLEDGED: Reliable delivery was acknowledged by the UE - SUCCESS_UNACKNOWLEDGED: Reliable delivery was not acknowledged by the UE - TRIGGERED: The SCEF triggered the device and is buffering the data. - BUFFERING: The SCEF is buffering the data due to no PDN connection established. - BUFFERING_TEMPORARILY_NOT_REACHABLE: The SCEF has been informed that the UE is temporarily not reachable but is buffering the data - SENDING: The SCEF has forwarded the data, but they may be stored elsewhere - FAILURE: Delivery failure but details not provided - FAILURE_RDS_DISABLED: RDS was disabled - FAILURE_NEXT_HOP: Unsuccessful delivery to the next hop. - FAILURE_TIMEOUT: Unsuccessful delivery due to timeout. readOnly: true NiddStatus: anyOf: - type: string enum: - ACTIVE - TERMINATED_UE_NOT_AUTHORIZED - TERMINATED - RDS_PORT_UNKNOWN - 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 - ACTIVE: The NIDD configuration is active. - TERMINATED_UE_NOT_AUTHORIZED: The NIDD configuration was terminated because the UE´s authorisation was revoked. - TERMINATED: The NIDD configuration was terminated. - RDS_PORT_UNKNOWN: The RDS port is unknown. readOnly: true NiddConfigurationPatch: type: object properties: duration: $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTimeRm' reliableDataService: type: boolean description: The reliable data service (as defined in subclause 4.5.15.3 of 3GPP TS 23.682) to indicate if a reliable data service acknowledgment is enabled or not. nullable: true rdsPorts: type: array items: $ref: '#/components/schemas/RdsPort' minItems: 1 description: Indicates the port configuration that is used for reliable data transfer between specific applications using RDS (as defined in subclause 5.2.4 and 5.2.5 of 3GPP TS 24.250). pdnEstablishmentOption: $ref: '#/components/schemas/PdnEstablishmentOptionsRm'