openapi: 3.0.0

info:
  version: '1.0.0'
  title: 'SMF PDU Session'
  description: 'SMF PDU Session Service'

servers:
  - url: https://{apiRoot}/nsmf-pdusession/v1
    variables:
      apiRoot:
        default: demohost.com
        description:  apiRoot as defined in subclause 4.4 of 3GPP TS 29.501 excluding the https// part

paths:
  /sm-contexts:
    post:
      summary:  Create SM Context 
      tags:
        - SM contexts collection
      operationId: PostSmContexts
      requestBody:
        description: representation of the SM context to be created in the SMF
        required: true
        content:
          multipart/related:
            schema:
              type: object
              properties: # Request parts
                jsonData:
                  $ref: '#/components/schemas/SmContextCreateData'
                binaryDataN1SmMessage:
                  type: string
                  format: binary
            encoding:
              jsonData:
                contentType:  application/json
              binaryDataN1SmMessage:
                contentType:  application/vnd.3gpp.5gnas
                headers:
                  Content-Id:
                    schema:
                      type: string
      callbacks:
        smContextStatusNotification:
          '{$request.body#/smContextStatusUri}':
            post:
              requestBody:  # contents of the callback message
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/SmContextStatusNotification'
              responses:
                '204':
                  description: successful notification 
      responses:
        '201':
          description: successful creation of an SM context
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/SmContextCreatedData'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextCreatedData'
                  binaryDataN2SmInformation:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN2SmInformation:
                  contentType:  application/vnd.3gpp.ngap
                  headers:
                    Content-Id:
                      schema:
                        type: string  
        '400':
          description: unsuccessful creation of an SM context - bad request
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/SmContextCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextCreateError'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string  
        '403':
          description: unsuccessful creation of an SM context - forbidden
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/SmContextCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextCreateError'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string 
        '404':
          description: unsuccessful creation of an SM context - not found
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/SmContextCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextCreateError'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string 

        '500':
          description: unsuccessful creation of an SM context - internal server error
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/SmContextCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextCreateError'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string 
            
        '503':
          description: unsuccessful creation of an SM context - service unavailable
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/SmContextCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextCreateError'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string               
                        
        '504':
          description: unsuccessful creation of an SM context - gateway timeout
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/SmContextCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextCreateError'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string                      
        default:
          description: unexpected error
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/SmContextCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextCreateError'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string                      
            
  /sm-contexts/{smContextRef}:
    get:
      summary:  Query SM Context 
      tags:
        - Individual SM context
      operationId: GetSmContext
      parameters:
        - name: smContextRef
          in: path
          description:  SM context reference 
          required: true 
          schema:
            type: string 
        - name: mme-cap
          in: query
          description:  target MME capabilities
          schema:
            type: array 
            items:
              type: string
          style: form
          explode: false
      responses:
        '200':
          description: successful query of an SM context
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmContextQueriedData'
        '404':
          description: unsuccessful query of an SM context 
          content:
            application/problem+json:
              schema:
                $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
        default:
          description: unexpected error
          content:
            application/problem+json:
              schema:
                $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
  
  /sm-contexts/{smContextRef}/modify:  
    post:
      summary:  Update SM Context 
      tags:
        - Individual SM context
      operationId: UpdateSmContext
      parameters:
        - name: smContextRef
          in: path
          description:  SM context reference 
          required: true 
          schema:
            type: string 
      requestBody:
        description: representation of the updates to apply to the SM context
        required: true
        content:
          application/json: # message without binary body part 
            schema:
              $ref: '#/components/schemas/SmContextUpdateData'
          multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextUpdateData'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
                  binaryDataN2SmInformation:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string   
                binaryDataN2SmInformation:
                  contentType:  application/vnd.3gpp.ngap
                  headers:
                    Content-Id:
                      schema:
                        type: string      
      responses:
        '200':
          description: successful update of an SM context with content in the response
          content:
            application/json: # message without binary body part
              schema:
                $ref: '#/components/schemas/SmContextUpdatedData'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextUpdatedData'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
                  binaryDataN2SmInformation:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string   
                binaryDataN2SmInformation:
                  contentType:  application/vnd.3gpp.ngap
                  headers:
                    Content-Id:
                      schema:
                        type: string      
        '204':
          description: successful update of an SM context without content in the response
        '400':
          description: unsuccessful update of an SM context - bad request
          content:
            application/json: # message without binary body part
              schema:
                $ref: '#/components/schemas/SmContextUpdateError' 
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextUpdateError'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
                  binaryDataN2SmInformation:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string   
                binaryDataN2SmInformation:
                  contentType:  application/vnd.3gpp.ngap
                  headers:
                    Content-Id:
                      schema:
                        type: string        
        '403':
          description: unsuccessful update of an SM context - forbidden
          content:
            application/json: # message without binary body part
              schema:
                $ref: '#/components/schemas/SmContextUpdateError' 
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextUpdateError'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
                  binaryDataN2SmInformation:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string   
                binaryDataN2SmInformation:
                  contentType:  application/vnd.3gpp.ngap
                  headers:
                    Content-Id:
                      schema:
                        type: string                        
        '404':
          description: unsuccessful update of an SM context - not found
          content:
            application/json: # message without binary body part
              schema:
                $ref: '#/components/schemas/SmContextUpdateError' 
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextUpdateError'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
                  binaryDataN2SmInformation:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string   
                binaryDataN2SmInformation:
                  contentType:  application/vnd.3gpp.ngap
                  headers:
                    Content-Id:
                      schema:
                        type: string        
        '500':
          description: unsuccessful update of an SM context - Internal server error
          content:
            application/json: # message without binary body part
              schema:
                $ref: '#/components/schemas/SmContextUpdateError' 
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextUpdateError'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
                  binaryDataN2SmInformation:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string   
                binaryDataN2SmInformation:
                  contentType:  application/vnd.3gpp.ngap
                  headers:
                    Content-Id:
                      schema:
                        type: string        
        '503':
          description: unsuccessful update of an SM context - Service Unavailable
          content:
            application/json: # message without binary body part
              schema:
                $ref: '#/components/schemas/SmContextUpdateError' 
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextUpdateError'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
                  binaryDataN2SmInformation:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string   
                binaryDataN2SmInformation:
                  contentType:  application/vnd.3gpp.ngap
                  headers:
                    Content-Id:
                      schema:
                        type: string        
        default:
          description: unexpected error
          content:
            application/json: # message without binary body part
              schema:
                $ref: '#/components/schemas/SmContextUpdateError' 
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/SmContextUpdateError'
                  binaryDataN1SmMessage:
                    type: string
                    format: binary
                  binaryDataN2SmInformation:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmMessage:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string   
                binaryDataN2SmInformation:
                  contentType:  application/vnd.3gpp.ngap
                  headers:
                    Content-Id:
                      schema:
                        type: string        
  
  /sm-contexts/{smContextRef}/release:
    post:
      summary:  Release SM Context 
      tags:
        - Individual SM context
      operationId: ReleaseSmContext
      parameters:
        - name: smContextRef
          in: path
          description:  SM context reference 
          required: true 
          schema:
            type: string 
      requestBody:
        description: representation of the data to be sent to the SMF when releasing the SM context
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SmContextReleaseData'
      responses:      
        '200':
          description: successful release of an SM context with content in the response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SmContextReleasedData'
        '204':
          description: successful release of an SM context without content in the response
        default:
          description: unexpected error
          content:
            application/problem+json:
              schema:
                $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
  
  /pdu-sessions:
    post:
      summary:  Create  
      tags:
        - PDU sessions collection
      operationId: PostPduSessions
      requestBody:
        description: representation of the PDU session to be created in the H-SMF
        required: true
        content:
          application/json: # message without binary body part 
            schema:
              $ref: '#/components/schemas/PduSessionCreateData'
          multipart/related:  # message with binary body part(s)
            schema:
              type: object
              properties: # Request parts
                jsonData:
                  $ref: '#/components/schemas/PduSessionCreateData'
                binaryDataN1SmInfoFromUe:
                  type: string
                  format: binary
                binaryDataUnknownN1SmInfo:
                  type: string
                  format: binary
            encoding:
              jsonData:
                contentType:  application/json
              binaryDataN1SmInfoFromUe:
                contentType:  application/vnd.3gpp.5gnas
                headers:
                  Content-Id:
                    schema:
                      type: string  
              binaryDataUnknownN1SmInfo:
                contentType:  application/vnd.3gpp.5gnas
                headers:
                  Content-Id:
                    schema:
                      type: string  
      callbacks:
        statusNotification:
          '{$request.body#/vsmfPduSessionUri}':
            post:
              summary:  Notify Status  
              tags:
                - Individual PDU session (V-SMF)
              operationId: NotifyStatus
              requestBody:
                description: representation of the status notification
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/StatusNotification'
              responses:
                '204':
                  description: successful notificationof the status change
                default:
                  description: unexpected error
                  content:
                    application/problem+json:
                     schema:
                      $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'    
  
        update:  
          '{$request.body#/vsmfPduSessionUri}/modify':
            post:
              summary:  Update (initiated by H-SMF)  
              tags:
                - Individual PDU session (V-SMF)
              operationId: ModifyPduSession
              requestBody:
                description: representation of updates to apply to the PDU session
                required: true
                content:
                  application/+json: # message without binary body part 
                    schema:
                      $ref: '#/components/schemas/VsmfUpdateData'
                  multipart/related:  # message with binary body part(s)
                    schema:
                      type: object
                      properties: # Request parts
                        jsonData:
                          $ref: '#/components/schemas/VsmfUpdateData'
                        binaryDataN1SmInfoToUe:
                          type: string
                          format: binary
                    encoding:
                      jsonData:
                        contentType:  application/json
                      binaryDataN1SmInfoToUe:
                        contentType:  application/vnd.3gpp.5gnas
                        headers:
                          Content-Id:
                            schema:
                              type: string  
              responses:
                '200':
                  description: successful update of a PDU session with content in the response
                  content:
                    application/json: # message without binary body part 
                      schema:
                        $ref: '#/components/schemas/VsmfUpdatedData'
                    multipart/related:  # message with binary body part(s)
                      schema:
                        type: object
                        properties: # Request parts
                          jsonData:
                            $ref: '#/components/schemas/VsmfUpdatedData'
                          binaryDataN1SmInfoFromUe:
                            type: string
                            format: binary
                          binaryDataUnknownN1SmInfo:
                            type: string
                            format: binary
                      encoding:
                        jsonData:
                          contentType:  application/json
                        binaryDataN1SmInfoFromUe:
                          contentType:  application/vnd.3gpp.5gnas
                          headers:
                            Content-Id:
                              schema:
                                type: string  
                        binaryDataUnknownN1SmInfo:
                          contentType:  application/vnd.3gpp.5gnas
                          headers:
                            Content-Id:
                              schema:
                                type: string  
                '204':
                  description: successful update of a PDU session without content in the response
                default:
                  description: unexpected error
                  content:
                    application/problem+json:
                      schema:
                        $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'

      responses:
        '201':
          description: successful creation of a PDU session
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/PduSessionCreatedData'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/PduSessionCreatedData'
                  binaryDataN1SmInfoToUe:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmInfoToUe:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string  
        '400':
          description: unsuccessful creation of a PDU session - bad request
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/PduSessionCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/PduSessionCreateError'
                  binaryDataN1SmInfoToUe:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmInfoToUe:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string  
        '403':
          description: unsuccessful creation of a PDU session - forbidden
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/PduSessionCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/PduSessionCreateError'
                  binaryDataN1SmInfoToUe:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmInfoToUe:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string  
        '404':
          description: unsuccessful creation of a PDU session - not found
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/PduSessionCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/PduSessionCreateError'
                  binaryDataN1SmInfoToUe:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmInfoToUe:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string  
        '500':
          description: unsuccessful creation of a PDU session - internal server error
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/PduSessionCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/PduSessionCreateError'
                  binaryDataN1SmInfoToUe:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmInfoToUe:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string  
        '503':
          description: unsuccessful creation of a PDU session - service unavailable
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/PduSessionCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/PduSessionCreateError'
                  binaryDataN1SmInfoToUe:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmInfoToUe:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string  
        '504':
          description: unsuccessful creation of a PDU session - gateway timeout
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/PduSessionCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/PduSessionCreateError'
                  binaryDataN1SmInfoToUe:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmInfoToUe:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string  
        default:
          description: unexpected error
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/PduSessionCreateError'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/PduSessionCreateError'
                  binaryDataN1SmInfoToUe:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmInfoToUe:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string  
  
  /pdu-sessions/{pduSessionRef}/modify:
    post:
      summary:  Update (initiated by V-SMF)
      tags:
        - Individual PDU session (H-SMF)
      operationId: UpdatePduSession
      parameters:
        - name: pduSessionRef
          in: path
          description:  PDU session reference 
          required: true 
          schema:
            type: string 
      requestBody:
        description: representation of the updates to apply to the PDU session
        required: true
        content:
          application/json: # message without binary body part 
            schema:
              $ref: '#/components/schemas/HsmfUpdateData'
          multipart/related:  # message with binary body part(s)
            schema:
              type: object
              properties: # Request parts
                jsonData:
                  $ref: '#/components/schemas/HsmfUpdateData'
                binaryDataN1SmInfoFromUe:
                  type: string
                  format: binary
                binaryDataUnknownN1SmInfo:
                  type: string
                  format: binary
            encoding:
              jsonData:
                contentType:  application/json
              binaryDataN1SmInfoFromUe:
                contentType:  application/vnd.3gpp.5gnas
                headers:
                  Content-Id:
                    schema:
                      type: string  
              binaryDataUnknownN1SmInfo:
                contentType:  application/vnd.3gpp.5gnas
                headers:
                  Content-Id:
                    schema:
                      type: string  
      responses:
        '200':
          description: successful update of a PDU session with content in the response
          content:
            application/json: # message without binary body part 
              schema:
                $ref: '#/components/schemas/HsmfUpdatedData'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/HsmfUpdatedData'
                  binaryDataN1SmInfoToUe:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1SmInfoToUe:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string  
        '204':
          description: successful update of a PDU session without content in the response
        default:
          description: unexpected error
          content:
            application/problem+json:
              schema:
                $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'

  /pdu-sessions/{pduSessionRef}/release:
    post:
      summary:  Release  
      tags:
        - Individual PDU session (H-SMF)
      operationId: ReleasePduSession
      parameters:
        - name: pduSessionRef
          in: path
          description:  PDU session reference 
          required: true 
          schema:
            type: string 
      requestBody:
        description: representation of the data to be sent to H-SMF when releasing the PDU session
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReleaseData'
      responses:
        '200':
          description: successful release of a PDU session with content in the response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReleasedData'
        default:
          description: unexpected error
          content:
            application/problem+json:
              schema:
                $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
  
components:
  schemas:
#
# STRUCTURED DATA TYPES
#
    SmContextCreateData:
      type: object
      properties:
        supi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi'
        unauthenticatedSupi:
          type: boolean
          default:  false
        pei:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Pei'
        gpsi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
        pduSessionId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
        dnn:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
        sNssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        hplmnSnssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        amfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        requestType:
          $ref: '#/components/schemas/RequestType'
        n1SmMsg:
          $ref: '#/components/schemas/RefToBinaryData'
        anType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        ueLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        ueTimeZone:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TimeZone'
        addUeLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        addUeLocTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        smContextStatusUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        hSmfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        oldPduSessionId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
        pduSessionsActivateList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
          minItems: 0
        ueEpsPdnConnection:
          $ref: '#/components/schemas/EpsPdnCnxContainer'
        hoState:
          $ref: '#/components/schemas/HoState'
        pcfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
        selMode:
          $ref: '#/components/schemas/DnnSelectionMode'
      required:
        - amfId
        - anType
        - smContextStatusUri

    SmContextCreatedData:
      type: object
      properties:
        pduSessionId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
        sNssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        upCnxState:
          $ref: '#/components/schemas/UpCnxState'
        n2SmInfo:
          $ref: '#/components/schemas/RefToBinaryData'
        allocatedEbiList:
          type: array
          items:
            $ref: '#/components/schemas/EpsBearerId'
          minItems: 0
        hoState:
          $ref: '#/components/schemas/HoState'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'

    SmContextUpdateData:
      type: object
      properties:
        pei:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Pei'
        amfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        anType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        ueLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        ueTimeZone:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TimeZone'
        addUeLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        addUeLocTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        upCnxState:
          $ref: '#/components/schemas/UpCnxState'
        hoState:
          $ref: '#/components/schemas/HoState'
        n1SmMsg:
          $ref: '#/components/schemas/RefToBinaryData'
        n2SmInfo:
          $ref: '#/components/schemas/RefToBinaryData'
        targetAmfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        dataForwarding:
          type: boolean
          default: false
        epsBearerSetup:
          type: array
          items:
            $ref: '#/components/schemas/EpsBearerContainer'
          minItems: 0
        cause:
          $ref: '#/components/schemas/Cause'

    SmContextUpdatedData:
      type: object
      properties:
        upCnxState:
          $ref: '#/components/schemas/UpCnxState'
        hoState:
          $ref: '#/components/schemas/HoState'
        releaseEbiList:
          type: array
          items:
            $ref: '#/components/schemas/EpsBearerId'
          minItems: 0
        allocatedEbiList:
          type: array
          items:
            $ref: '#/components/schemas/EbiArpMapping'
          minItems: 0
        modifiedEbiList:
          type: array
          items:
            $ref: '#/components/schemas/EbiArpMapping'
          minItems: 0
        n1SmMsg:
          $ref: '#/components/schemas/RefToBinaryData'
        n2SmInfo:
          $ref: '#/components/schemas/RefToBinaryData'
        epsBearerSetup:
          type: array
          items:
            $ref: '#/components/schemas/EpsBearerContainer'
          minItems: 0
        dataForwarding:
          type: boolean

    SmContextReleaseData:
      type: object
      properties:
        cause:
          $ref: '#/components/schemas/Cause'
        ueLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        ueTimeZone:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TimeZone'
        addUeLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        addUeLocTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        vsmfReleaseOnly:
          type: boolean
          default: false

    SmContextReleasedData:
      type: object
      
    SmContextStatusNotification:
      type: object
      properties:
        statusInfo :
          $ref: '#/components/schemas/StatusInfo'
      required:
        - statusInfo 

    PduSessionCreateData:
      type: object
      properties:
        supi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi'
        unauthenticatedSupi:
          type: boolean
          default: false
        pei:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Pei'
        pduSessionId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
        dnn:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
        sNssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        vsmfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        requestType:
          $ref: '#/components/schemas/RequestType'
        epsBearerId:
          type: array
          items:
            $ref: '#/components/schemas/EpsBearerId'
          minItems: 0
        pgwS8cFteid:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
        vsmfPduSessionUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        vcnTunnelInfo:
          $ref: '#/components/schemas/TunnelInfo'
        anType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        ueLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        ueTimeZone:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TimeZone'
        addUeLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        addUeLocTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        gpsi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
        n1SmInfoFromUe:
          $ref: '#/components/schemas/RefToBinaryData'
        unknownN1SmInfo:
          $ref: '#/components/schemas/RefToBinaryData'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
        hPcfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        hoPreparationIndication:
          type: boolean
        selMode:
          $ref: '#/components/schemas/DnnSelectionMode'
      required:
        - dnn
        - vsmfId
        - vsmfPduSessionUri
        - vcnTunnelInfo
        - anType

    PduSessionCreatedData:
      type: object
      properties:
        pduSessionType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionType'
        sscMode:
          type: string
        hcnTunnelInfo:
          $ref: '#/components/schemas/TunnelInfo'
        sessionAmbr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ambr'
        qosFlowsSetupList:
          type: array
          items:
            $ref: '#/components/schemas/QosFlowSetupItem'
          minItems: 1
        pduSessionId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
        sNssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        enablePauseCharging:
          type: boolean
          default: false
        ueIpv4Address:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr'
        ueIpv6Prefix:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Prefix'
        n1SmInfoToUe:
          $ref: '#/components/schemas/RefToBinaryData'
        epsPdnCnxInfo:
          $ref: '#/components/schemas/EpsPdnCnxInfo'
        epsBearerInfo:
          type: array
          items:
            $ref: '#/components/schemas/EpsBearerInfo'
          minItems: 1
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
        upSecurity:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UpSecurity'
      required:
        - pduSessionType
        - sscMode
        - hcnTunnelInfo
        - sessionAmbr
        - qosFlowsSetupList

    HsmfUpdateData:
      type: object
      properties:
        requestIndication:
          $ref: '#/components/schemas/RequestIndication'
        pei:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Pei'
        vcnTunnelInfo:
          $ref: '#/components/schemas/TunnelInfo'
        anType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        ueLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        ueTimeZone:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TimeZone'
        addUeLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        addUeLocTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        pauseCharging:
          type: boolean
        pti:
          $ref: '#/components/schemas/ProcedureTransactionId'
        n1SmInfoFromUe:
          $ref: '#/components/schemas/RefToBinaryData'
        unknownN1SmInfo:
          $ref: '#/components/schemas/RefToBinaryData'
        qosFlowsRelNotifyList:
          type: array
          items:
            $ref: '#/components/schemas/QosFlowItem'
          minItems: 0
        qosFlowsNotifyList:
          type: array
          items:
            $ref: '#/components/schemas/QosFlowNotifyItem'
          minItems: 0
        NotifyList:
          type: array
          items:
            $ref: '#/components/schemas/PduSessionNotifyItem'
          minItems: 0
        epsBearerId:
          type: array
          items:
            $ref: '#/components/schemas/EpsBearerId'
          minItems: 0
        hoPreparationIndication:
          type: boolean
      required:
        - requestIndication

    HsmfUpdatedData:
      type: object
      properties:
        n1SmInfoToUe:
          $ref: '#/components/schemas/RefToBinaryData'

    ReleaseData:
      type: object
      properties:
        cause:
          $ref: '#/components/schemas/Cause'
        ueLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        ueTimeZone:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TimeZone'
        addUeLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        addUeLocTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'

    ReleasedData:
      type: object
      
    VsmfUpdateData:
      type: object
      properties:
        requestIndication:
          $ref: '#/components/schemas/RequestIndication'
        sessionAmbr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ambr'
        qosFlowsAddModRequestList:
          type: array
          items:
            $ref: '#/components/schemas/QosFlowAddModifyRequestItem'
          minItems: 0
        qosFlowsRelRequestList:
          type: array
          items:
            $ref: '#/components/schemas/QosFlowReleaseRequestItem'
          minItems: 0
        epsBearerInfo:
          type: array
          items:
            $ref: '#/components/schemas/EpsBearerInfo'
          minItems: 0
        revokeEbiList:
          type: array
          items:
            $ref: '#/components/schemas/EpsBearerId'
          minItems: 0
        modifiedEbiList:
          type: array
          items:
            $ref: '#/components/schemas/EbiArpMapping'
          minItems: 0
        pti:
          $ref: '#/components/schemas/ProcedureTransactionId'
        n1SmInfoToUe:
          $ref: '#/components/schemas/RefToBinaryData'
        cause:
          $ref: '#/components/schemas/Cause'
      required:
        - requestIndication

    VsmfUpdatedData:
      type: object
      properties:
        qosFlowsAddModList:
          type: array
          items:
            $ref: '#/components/schemas/QosFlowItem'
          minItems: 0
        qosFlowsRelList:
          type: array
          items:
            $ref: '#/components/schemas/QosFlowItem'
          minItems: 0
        qosFlowsFailedtoAddModList:
          type: array
          items:
            $ref: '#/components/schemas/QosFlowItem'
          minItems: 0
        qosFlowsFailedtoRelList:
          type: array
          items:
            $ref: '#/components/schemas/QosFlowItem'
          minItems: 0
        n1SmInfoFromUe:
          $ref: '#/components/schemas/RefToBinaryData'
        unknownN1SmInfo:
          $ref: '#/components/schemas/RefToBinaryData'
        ueLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        ueTimeZone:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TimeZone'
        addUeLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        addUeLocTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'

    StatusNotification:
      type: object
      properties:
        statusInfo :
          $ref: '#/components/schemas/StatusInfo'
      required:
        - statusInfo 

    QosFlowItem:
      type: object
      properties:
        qfi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Qfi'
        cause:
          $ref: '#/components/schemas/Cause'
      required:
        - qfi
    
    QosFlowSetupItem:
      type: object
      properties:
        qfi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Qfi'
        qosRules:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
        qosFlowProfile:
          $ref: '#/components/schemas/QosFlowProfile'
      required:
        - qfi
        - qosRules
    
    QosFlowAddModifyRequestItem:
      type: object
      properties:
        qfi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Qfi'
        qosRules:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
        qosFlowProfile:
          $ref: '#/components/schemas/QosFlowProfile'
      required:
        - qfi
    
    QosFlowReleaseRequestItem:
      type: object
      properties:
        qfi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Qfi'
        qosRules:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
      required:
        - qfi
    
    QosFlowProfile:
      type: object
      properties:
        5qi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/5qi'
        nonDynamic5qi:
          $ref: '#/components/schemas/NonDynamic5qi'
        dynamic5qi:
          $ref: '#/components/schemas/Dynamic5qi'
        arp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Arp'
        gbrQosFlowInfo:
          $ref: '#/components/schemas/GbrQosFlowInformation'
        rqa:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ReflectiveQosAttribute'
    
    GbrQosFlowInformation:
      type: object
      properties:
        maxFbrDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        maxFbrUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        guaFbrDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        guaFbrUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        notifControl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NotificationControl'
        maxPacketLossRateDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketLossRate'
        maxPacketLossRateUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketLossRate'
      required:
        - maxFbrDl
        - maxFbrUl
        - guaFbrDl
        - guaFbrUl
    
    QosFlowNotifyItem:
      type: object
      properties:
        qfi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Qfi'
        notificationCause:
          $ref: '#/components/schemas/NotificationCause'
      required:
        - qfi
        - notificationCause
    
    Dynamic5qi:
      type: object
      properties:
        priorityLevel:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/5qiPriorityLevel'
        packetDelBudget:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketDelBudget'
        packetErrRate:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketErrRate'
        delayCritical:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DelayCritical'
        averWindow:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AverWindow'
        maxDataBurstVol:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/MaxDataBurstVol'
      required:
        - priorityLevel
        - packetDelBudget
        - packetErrRate
    
    NonDynamic5qi:
      type: object
      properties:
        priorityLevel:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/5qiPriorityLevel'
        averWindow:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AverWindow'
        maxDataBurstVol:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/MaxDataBurstVol'
    
    SmContextQueriedData:
      type: object
      properties:
        ueEpsPdnConnection:
          $ref: '#/components/schemas/EpsPdnCnxContainer'
      required:
        - ueEpsPdnConnection
    
    TunnelInfo:
      type: object
      properties:
        ipv4Addr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr'
        Ipv6Addr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv64Addr'
        gtpTeid:
          $ref: '#/components/schemas/Teid'
      required:
        - gtpTeid
    
    StatusInfo:
      type: object
      properties:
        resourceStatus:
          $ref: '#/components/schemas/ResourceStatus'
        cause:
          $ref: '#/components/schemas/Cause'
      required:
        - resourceStatus
    
    RefToBinaryData:
      type: object
      properties:
        contentId:
          type: string
      required:
        - contentId
    
    EpsPdnCnxInfo:
      type: object
      properties:
        pgwS8cFteid:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
        pgwNodeName:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
      required:
        - pgwS8cFteid
    
    EpsBearerInfo:
      type: object
      properties:
        ebi:
          $ref: '#/components/schemas/EpsBearerId'
        pgwS8uFteid:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
        bearerLevelQoS:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
      required:
        - ebi
        - pgwS8uFteid
        - bearerLevelQoS
    
    PduSessionNotifyItem:
      type: object
      properties:
        notificationCause:
          $ref: '#/components/schemas/NotificationCause'
      required:
        - notificationCause
    
    EbiArpMapping:
      type: object
      properties:
        epsBearerId:
          $ref: '#/components/schemas/EpsBearerId'
        arp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Arp'
      required:
        - epsBearerId
        - arp
    
    SmContextCreateError:
      type: object
      properties:
        error:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
        n1SmMsg:
          $ref: '#/components/schemas/RefToBinaryData'
      required:
        - error
    
    SmContextUpdateError:
      type: object
      properties:
        error:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
        n1SmMsg:
          $ref: '#/components/schemas/RefToBinaryData'
        n2SmInfo:
          $ref: '#/components/schemas/RefToBinaryData'
        upCnxState:
          $ref: '#/components/schemas/UpCnxState'
      required:
        - error
    
    PduSessionCreateError:
      type: object
      properties:
        error:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
        n1smCause:
          type: string
        n1SmInfoToUe:
          $ref: '#/components/schemas/RefToBinaryData'
      required:
        - error
    
#
# SIMPLE DATA TYPES 
#
    ProcedureTransactionId:
      type: integer
      format: ProcedureTransactionId
      minimum: 0
      maximum: 255
      
    EpsBearerId:
      $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
      
    EpsPdnCnxContainer:
      type: string
      format: EpsPdnCnxContainer
     
    EpsBearerContainer:
      type: string
      format: EpsBearerContainer
    
    Teid:
      type: string
      pattern: '^[A-F0-9]{8}$'
#
# ENUMERATIONS
#
    UpCnxState:
      anyOf:
      - type: string
        enum:
          - "ACTIVATED"
          - "DEACTIVATED"
          - "ACTIVATING"
      - 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
        - "ACTIVATED"
        - "DEACTIVATED"
        - "ACTIVATING"

    HoState:
      anyOf:
      - type: string
        enum:
          - "NONE"
          - "PREPARING"
          - "PREPARED"
          - "COMPLETED"
          - "CANCELLED"
      - 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
        - "NONE"
        - "PREPARING"
        - "PREPARED"
        - "COMPLETED"
        - "CANCELLED"

    RequestType:
      anyOf:
      - type: string
        enum:
          - "INITIAL_REQUEST"
          - "EXISTING_PDU_SESSION"
          - "INITIAL_EMERGENCY_REQUEST"
          - "EXISTING_EMERGENCY_PDU_SESSION"
      - 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
        - "INITIAL_REQUEST"
        - "EXISTING_PDU_SESSION"
        - "INITIAL_EMERGENCY_REQUEST"
        - "EXISTING_EMERGENCY_PDU_SESSION"

    RequestIndication:
      anyOf:
      - type: string
        enum:
          - "UE_REQ_PDU_SES_MOD"
          - "UE_REQ_PDU_SES_REL"
          - "PDU_SES_MOB"
          - "NW_REQ_PDU_SES_AUTH"
          - "NW_REQ_PDU_SES_MOD"
          - "NW_REQ_PDU_SES_REL"
      - 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
        - "UE_REQ_PDU_SES_MOD"
        - "UE_REQ_PDU_SES_REL"
        - "PDU_SES_MOB"
        - "NW_REQ_PDU_SES_AUTH"
        - "NW_REQ_PDU_SES_MOD"
        - "NW_REQ_PDU_SES_REL"

    NotificationCause:
      anyOf:
      - type: string
        enum:
          - "QOS_FULFILLED"
          - "QOS_NOT_FULFILLED"
          - "UP_SEC_FULFILLED"
          - "UP_SEC_NOT_FULFILLED"
      - 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
        - "QOS_FULFILLED"
        - "QOS_NOT_FULFILLED"
        - "UP_SEC_FULFILLED"
        - "UP_SEC_NOT_FULFILLED"

    Cause:
      anyOf:
      - type: string
        enum:
          - "REL_DUE_TO_HO"
          - "EPS_FALLBACK"
          - "REL_DUE_TO_UP_SEC"
      - 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
        - "REL_DUE_TO_HO"
        - "EPS_FALLBACK"
        - "REL_DUE_TO_UP_SEC"

    ResourceStatus:
      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"

    DnnSelectionMode:
      anyOf:
      - type: string
        enum:
          - "VERIFIED"
          - "UE_DNN_NOT_VERIFIED"
          - "NW_DNN_NOT_VERIFIED"
      - 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
        - "VERIFIED"
        - "UE_DNN_NOT_VERIFIED"
        - "NW_DNN_NOT_VERIFIED"


externalDocs:
  description: Documentation
  url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.502/'