A.2 Nnef_SMContext API

29.5413GPP5G SystemNetwork Exposure (NE) function services for Non-IP Data Delivery (NIDD) and Short Message Services (SMS)Release 18Stage 3TS

openapi: 3.0.0

info:

title: Nnef_SMContext

version: 1.2.0-alpha.1

description: |

Nnef SMContext Service.

© 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).

All rights reserved.

externalDocs:

description: 3GPP TS 29.541 V18.0.0; 5G System; Session Management Services for Non-IP Data Delivery (NIDD).

url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.541/

servers:

– url: ‘{apiRoot}/nnef-smcontext/v1’

variables:

apiRoot:

default: https://example.com

description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501

security:

– {}

– oAuth2ClientCredentials:

– nnef-smcontext

paths:

/sm-contexts:

post:

summary: Create SM Context

operationId: Create

tags:

– SM Contexts Collection (Collection)

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/SmContextCreateData’

responses:

‘201’:

description: Success

content:

application/json:

schema:

$ref: ‘#/components/schemas/SmContextCreatedData’

headers:

Location:

description: >

‘Contains the URI of the newly created Individual SM Context resource, according to the structure:

{apiRoot}/nnef-smcontext/<version>/sm-contexts/{smContextId}’

required: true

schema:

type: string

‘307’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/307’

‘308’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/308’

‘400’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/400’

‘401’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/401’

‘403’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/403’

‘404’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/404’

‘411’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/411’

‘413’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/413’

‘415’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/415’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘502’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/502’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

callbacks:

StatusNotify:

‘{$request.body#/notificationUri}’:

post:

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/SmContextStatusNotification’

responses:

‘204’:

description: No Content, Notification was succesfull

‘307’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/307’

‘308’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/308’

‘400’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/400’

‘401’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/401’

‘403’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/403’

‘404’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/404’

‘411’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/411’

‘413’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/413’

‘415’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/415’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘502’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/502’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

/sm-contexts/{smContextId}/release:

post:

summary: Delete SM Context

operationId: Delete

tags:

– Individual SM Context (Document)

parameters:

– name: smContextId

in: path

description: SM Context Resource ID

required: true

schema:

type: string

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/SmContextReleaseData’

responses:

‘200’:

description: OK. Resource representation is returned

content:

application/json:

schema:

$ref: ‘#/components/schemas/SmContextReleasedData’

‘204’:

description: No Content.

‘307’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/307’

‘308’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/308’

‘400’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/400’

‘401’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/401’

‘403’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/403’

‘404’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/404’

‘406’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/406’

‘411’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/411’

‘413’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/413’

‘415’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/415’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘502’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/502’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

/sm-contexts/{smContextId}/update:

post:

summary: Update SM Context

operationId: Update

tags:

– Individual SM Context (Document)

parameters:

– name: smContextId

in: path

description: SM Context Resource ID

required: true

schema:

type: string

requestBody:

required: true

content:

application/json:

schema:

$ref: ‘#/components/schemas/SmContextUpdateData’

responses:

‘204’:

description: No Content.

‘307’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/307’

‘308’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/308’

‘400’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/400’

‘401’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/401’

‘403’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/403’

‘404’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/404’

‘406’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/406’

‘411’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/411’

‘413’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/413’

‘415’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/415’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘502’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/502’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

/sm-contexts/{smContextId}/deliver:

post:

summary: Deliver Uplink MO Data

operationId: Deliver

tags:

– Individual SM Context (Document)

parameters:

– name: smContextId

in: path

description: SM Context Resource ID

required: true

schema:

type: string

requestBody:

required: true

content:

multipart/related: # message with binary body part(s)

schema:

type: object

properties: # Request parts

jsonData:

$ref: ‘#/components/schemas/DeliverReqData’

binaryMoData:

type: string

format: binary

encoding:

jsonData:

contentType: application/json

binaryMoData:

contentType: application/octet-stream

headers:

Content-Id:

schema:

type: string

responses:

‘204’:

description: No Content.

‘307’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/307’

‘308’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/308’

‘400’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/400’

‘401’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/401’

‘403’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/403’

‘404’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/404’

‘406’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/406’

‘411’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/411’

‘413’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/413’

‘415’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/415’

‘429’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/429’

‘500’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/500’

‘502’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/502’

‘503’:

$ref: ‘TS29571_CommonData.yaml#/components/responses/503’

default:

$ref: ‘TS29571_CommonData.yaml#/components/responses/default’

components:

securitySchemes:

oAuth2ClientCredentials:

type: oauth2

flows:

clientCredentials:

tokenUrl: ‘{nrfApiRoot}/oauth2/token’

scopes:

nnef-smcontext: Access to the Nnef_SMContext API

schemas:

#

# Structured Data Types

#

SmContextCreateData:

description: Representation of the Individual SM context to be created.

type: object

properties:

supi:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Supi’

pduSessionId:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/PduSessionId’

dnn:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Dnn’

snssai:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Snssai’

nefId:

type: string

description: This IE shall contain the NEF ID of the target NEF.

dlNiddEndPoint:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’

notificationUri:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’

niddInfo:

$ref: ‘#/components/schemas/NiddInformation’

rdsSupport:

type: boolean

description: |

When present, this IE shall indicate the UE capability to support RDS.

The value of this IE shall be set as following

– true UE supports RDS

– false (default) UE does not support RDS

smContextConfig:

$ref: ‘#/components/schemas/SmContextConfiguration’

supportedFeatures:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’

required:

– supi

– pduSessionId

– dnn

– snssai

– nefId

– dlNiddEndPoint

– notificationUri

SmContextCreatedData:

description: Representation of an Individual SM context successfully created.

type: object

properties:

supi:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Supi’

pduSessionId:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/PduSessionId’

dnn:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Dnn’

snssai:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Snssai’

nefId:

type: string

description: This IE shall contain the NEF ID of the target NEF.

rdsSupport:

type: boolean

default: false

description: |

When present, this IE shall indicate the NEF capability to support RDS.

The value of this IE shall be set as following

– true NEF supports RDS

– false (default) NEF does not support RDS

extBufSupport:

type: boolean

default: false

description: |

When present, this IE shall indicate whether Extended Buffering applies or not.

The value of this IE shall be set as following

– true Extended Buffering applies

– false (default) Extended Buffering does not apply

supportedFeatures:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/SupportedFeatures’

maxPacketSize:

type: integer

required:

– supi

– pduSessionId

– dnn

– snssai

– nefId

SmContextReleaseData:

description: Representation of the information to release the Individual SM context.

type: object

properties:

cause:

$ref: ‘#/components/schemas/ReleaseCause’

required:

– cause

SmContextReleasedData:

description: Successful release of an Individual SM context with information sent to the NF service consumer.

type: object

properties:

smallDataRateStatus:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/SmallDataRateStatus’

apnRateStatus:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/ApnRateStatus’

SmContextStatusNotification:

description: Representation of the SM Context status notification.

type: object

properties:

status:

$ref: ‘#/components/schemas/SmContextStatus’

smContextId:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’

cause:

$ref: ‘#/components/schemas/ReleaseCause’

smallDataRateStatus:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/SmallDataRateStatus’

apnRateStatus:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/ApnRateStatus’

required:

– status

– smContextId

NiddInformation:

description: Informaiton related to NIDD used for the SM Context.

type: object

properties:

extGroupId:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/ExternalGroupId’

gpsi:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Gpsi’

afId:

type: string

description: When present, this IE shall contain the AF Id used for the SM Context.

SmContextConfiguration:

description: NIDD Configuration for the SM context.

type: object

properties:

smalDataRateControl:

$ref: ‘#/components/schemas/SmallDataRateControl’

smallDataRateStatus:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/SmallDataRateStatus’

servPlmnDataRateCtl:

type: integer

minimum: 10

nullable: true

description: >

When present, this IE shall contain the maximum allowed number of

Downlink NAS Data PDUs per deci hour of the serving PLMN, as specified

in subclause 5.31.14.2 of 3GPP TS 23.501 [2].

Minimum 10

SmallDataRateControl:

description: Configuration of Small Data Rate Control for the SM Context.

type: object

properties:

timeUnit:

$ref: ‘#/components/schemas/SmallDataRateControlTimeUnit’

maxPacketRateUl:

type: integer

maxPacketRateDl:

type: integer

maxAdditionalPacketRateUl:

type: integer

maxAdditionalPacketRateDl:

type: integer

required:

– timeUnit

SmContextUpdateData:

description: Representation of the updates to apply to the Individual SM context.

type: object

properties:

dlNiddEndPoint:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’

notificationUri:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/Uri’

smContextConfig:

$ref: ‘#/components/schemas/SmContextConfiguration’

DeliverReqData:

description: The data for Deliver service request, including the Mobile Originated data to be delivered via NEF.

type: object

properties:

data:

$ref: ‘TS29571_CommonData.yaml#/components/schemas/RefToBinaryData’

required:

– data

#

# Simple Data Types

#

#

# Enumeration Data Types

#

SmContextStatus:

anyOf:

– type: string

enum:

– RELEASED

– 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

– RELEASED: Indicates that the Individual SM Context for NIDD is released.

SmallDataRateControlTimeUnit:

anyOf:

– type: string

enum:

– MINUTE

– HOUR

– DAY

– WEEK

– 6MINUTES

– 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

– MINUTE: Indicates the rate control is applied per minute.

– HOUR: Indicates the rate control is applied per hour.

– DAY: Indicates the rate control is applied per day.

– WEEK: Indicates the rate control is applied per week.

– 6MINUTES: Indicates the rate control is applied per 6 minutes.

ReleaseCause:

anyOf:

– type: string

enum:

– PDU_SESSION_RELEASED

– 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: |

The cause to release the SM Context. Possible values are

– PDU_SESSION_RELEASED: Indicates that the Individual SM Context for NIDD is released.