openapi: 3.0.0
info:
  version: 1.0.0
  title: Namf_Communication
  description: AMF Communication Service
security:
  - {}
  - oAuth2Clientcredentials:
      - namf-comm
externalDocs:
  description: 3GPP TS 29.518 V15.2.0; 5G System; Access and Mobility Management Services
  url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.518/'
servers:
  - url: '{apiRoot}/namf-comm/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in subclause subclause 4.4 of 3GPP TS 29.501
paths:
  /ue-contexts/{ueContextId}:
    put:
      summary: Namf_Communication CreateUEContext service Operation
      tags:
        - Individual ueContext (Document)
      operationId: CreateUEContext
      parameters:
        - name: ueContextId
          in: path
          description: UE Context Identifier
          required: true
          schema:
            type: string
            pattern: '^(5g-guti-[0-9]{5,6}[0-9a-fA-F]{14}|imsi-[0-9]{5,15}|nai-.+|imei-[0-9]{15}|imeisv-[0-9]{16}|.+)$'
      requestBody:
        content:
          multipart/related:  # message with binary body part(s)
            schema:
              type: object
              properties: # Request parts
                jsonData:
                  $ref: '#/components/schemas/UeContextCreateData'
                binaryDataN1Message:
                  type: string
                  format: binary
                binaryDataN2Information:
                  type: string
                  format: binary
                binaryDataN2InformationExt1:
                  type: string
                  format: binary
            encoding:
              jsonData:
                contentType:  application/json
              binaryDataN1Message:
                contentType:  application/vnd.3gpp.5gnas
                headers:
                  Content-Id:
                    schema:
                      type: string  
              binaryDataN2Information:
                contentType:  application/vnd.3gpp.ngap
                headers:
                  Content-Id:
                    schema:
                      type: string  
              binaryDataN2InformationExt1:
                contentType:  application/vnd.3gpp.ngap
                headers:
                  Content-Id:
                    schema:
                      type: string  
        required: true
      responses:
        '201':
          description: UE context successfully created.
          headers:
            Location:
              description: 'Contains the URI of the newly created resource, according to the structure: {apiRoot}/namf-comm/v1/ue-contexts/{ueContextId}'
              required: true
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UeContextCreatedData'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/UeContextCreatedData'
                  binaryDataN1Message:
                    type: string
                    format: binary
                  binaryDataN2Information:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN1Message:
                  contentType:  application/vnd.3gpp.5gnas
                  headers:
                    Content-Id:
                      schema:
                        type: string  
                binaryDataN2Information:
                  contentType:  application/vnd.3gpp.ngap
                  headers:
                    Content-Id:
                      schema:
                        type: string  
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UeContextCreateError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UeContextCreateError'
        '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':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UeContextCreateError'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          description: Unexpected error
  /ue-contexts/{ueContextId}/release:
    post:
      summary: Namf_Communication ReleaseUEContext service Operation
      tags:
        - Individual ueContext (Document)
      operationId: ReleaseUEContext
      parameters:
        - name: ueContextId
          in: path
          description: UE Context Identifier
          required: true
          schema:
            type: string
            pattern: '^(5g-guti-[0-9]{5,6}[0-9a-fA-F]{14}|imsi-[0-9]{5,15}|nai-.+|imei-[0-9]{15}|imeisv-[0-9]{16}|.+)$'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UEContextRelease'
        required: true
      responses:
        '204':
          description: UE Context successfully released
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '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'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          description: Unexpected error
  /ue-contexts/{ueContextId}/assign-ebi:
    post:
      summary: Namf_Communication EBI Assignment service Operation
      tags:
        - Individual ueContext (Document)
      operationId: EBIAssignment
      parameters:
        - name: ueContextId
          in: path
          description: UE Context Identifier
          required: true
          schema:
            type: string
            pattern: '^(5g-guti-[0-9]{5,6}[0-9a-fA-F]{14}|imsi-[0-9]{5,15}|nai-.+|imei-[0-9]{15}|imeisv-[0-9]{16}|.+)$'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AssignEbiData'
        required: true
      responses:
        '200':
          description: EBI Assignment successfully performed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignedEbiData'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignEbiError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignEbiError'
        '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':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AssignEbiError'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          description: Unexpected error
  /ue-contexts/{ueContextId}/transfer:
    post:
      summary: Namf_Communication UEContextTransfer service Operation
      tags:
        - Individual ueContext (Document)
      operationId: UEContextTransfer
      parameters:
        - name: ueContextId
          in: path
          description: UE Context Identifier
          required: true
          schema:
            type: string
            pattern: '^(5g-guti-[0-9]{5,6}[0-9a-fA-F]{14}|imsi-[0-9]{5,15}|nai-.+|imei-[0-9]{15}|imeisv-[0-9]{16}|.+)$'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UeContextTransferReqData'
          multipart/related:  # message with binary body part(s)
            schema:
              type: object
              properties: # Request parts
                jsonData:
                  $ref: '#/components/schemas/UeContextTransferReqData'
                binaryDataN1Message:
                  type: string
                  format: binary
            encoding:
              jsonData:
                contentType:  application/json
              binaryDataN1Message:
                contentType:  application/vnd.3gpp.5gnas
                headers:
                  Content-Id:
                    schema:
                      type: string  
        required: true
      responses:
        '200':
          description: UE context transfer successfully initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UeContextTransferRspData'
            multipart/related:  # message with binary body part(s)
              schema:
                type: object
                properties: # Request parts
                  jsonData:
                    $ref: '#/components/schemas/UeContextTransferRspData'
                  binaryDataN2Information:
                    type: string
                    format: binary
              encoding:
                jsonData:
                  contentType:  application/json
                binaryDataN2Information:
                  contentType:  application/vnd.3gpp.ngap
                  headers:
                    Content-Id:
                      schema:
                        type: string  
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '403':
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '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'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          description: Unexpected error
  /ue-contexts/{ueContextId}/transfer-update:
    post:
      summary: Namf_Communication RegistrationStatusUpdate service Operation
      tags:
        - Individual ueContext (Document)
      operationId: RegistrationStatusUpdate
      parameters:
        - name: ueContextId
          in: path
          description: UE Context Identifier
          required: true
          schema:
            type: string
            pattern: '^(5g-guti-[0-9]{5,6}[0-9a-fA-F]{14}|imsi-[0-9]{5,15}|nai-.+|imei-[0-9]{15}|imeisv-[0-9]{16}|.+)$'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UeRegStatusUpdateReqData'
        required: true
      responses:
        '200':
          description: UE context transfer status successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UeRegStatusUpdateRspData'
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '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'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'
  /ue-contexts/{ueContextId}/n1-n2-messages:
    post:
      summary: Namf_Communication N1N2 Message Transfer (UE Specific) service Operation
      tags:
        - n1N2Message collection (Document)
      operationId: N1N2MessageTransfer
      parameters:
        - name: ueContextId
          in: path
          description: UE Context Identifier
          required: true
          schema:
            type: string
            pattern: '^(imsi-[0-9]{5,15}|nai-.+|imei-[0-9]{15}|imeisv-[0-9]{16}|cid-.{1,255}|.+)$'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/N1N2MessageTransferReqData'
          multipart/related:  # message with binary body part(s)
            schema:
              type: object
              properties: # Request parts
                jsonData:
                  $ref: '#/components/schemas/N1N2MessageTransferReqData'
                binaryDataN1Message:
                  type: string
                  format: binary
                binaryDataN2Information:
                  type: string
                  format: binary
            encoding:
              jsonData:
                contentType:  application/json
              binaryDataN1Message:
                contentType:  application/vnd.3gpp.5gnas
                headers:
                  Content-Id:
                    schema:
                      type: string  
              binaryDataN2Information:
                contentType:  application/vnd.3gpp.ngap
                headers:
                  Content-Id:
                    schema:
                      type: string  
        required: true
      responses:
        '202':
          description: N1N2 Message Transfer accepted.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/N1N2MessageTransferRspData'
        '200':
          description: N1N2 Message Transfer successfully initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/N1N2MessageTransferRspData'
        '307':
          description: Temporary Redirect
          content:
            application/problem+json:
              schema:
                $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '403':
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '409':
          description: Conflicts
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/N1N2MessageTransferError'
        '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'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        '504':
          description: Gateway Timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/N1N2MessageTransferError'
        default:
          description: Unexpected error
      callbacks:
        onN1N2TransferFailure:
          '{$request.body#/n1n2FailureTxfNotifURI}':
            post:
              summary: Namf_Communication N1N2Transfer Failure Notification service Operation
              tags:
                - N1N2 Transfer Failure Notification
              operationId: N1N2TransferFailureNotification
              requestBody:
                description: N1N2Transfer Failure Notification
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/N1N2MsgTxfrFailureNotification'
              responses:
                '204':
                  description: Expected response to a successful callback processing
                '400':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/400'
                '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'
                '503':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/503'
  /ue-contexts/{ueContextId}/n1-n2-messages/subscriptions:
    post:
      summary: Namf_Communication N1N2 Message Subscribe (UE Specific) service Operation
      tags:
        - N1N2 Subscriptions Collection for Individual UE Contexts (Document)
      operationId: N1N2MessageSubscribe
      parameters:
        - name: ueContextId
          in: path
          description: UE Context Identifier
          required: true
          schema:
            type: string
            pattern: '^(5g-guti-[0-9]{5,6}[0-9a-fA-F]{14}|imsi-[0-9]{5,15}|nai-.+|imei-[0-9]{15}|imeisv-[0-9]{16}|.+)$'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UeN1N2InfoSubscriptionCreateData'
        required: true
      responses:
        '201':
          description: N1N2 Message Subscription successfully created.
          headers:
            Location:
              description: 'Contains the URI of the newly created resource, according to the structure: {apiRoot}/namf-comm/v1/{ueContextId}/n1-n2-messages/subscriptions/{subscriptionId}'
              required: true
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UeN1N2InfoSubscriptionCreatedData'
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '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'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          description: Unexpected error
      callbacks:
        onN1N2MessageNotify:
          '{$request.body#/n1NotifyCallbackUri}':
            post:
              summary: Namf_Communication N1 Message Notify service Operation
              tags:
                - N1 Message Notify
              operationId: N1MessageNotify
              requestBody:
                description: N1 Message Notification
                content:
                  multipart/related:  # message with binary body part(s)
                    schema:
                      type: object
                      properties: # Request parts
                        jsonData:
                          $ref: '#/components/schemas/N1MessageNotification'
                        binaryDataN1Message:
                          type: string
                          format: binary
                    encoding:
                      jsonData:
                        contentType:  application/json
                      binaryDataN1Message:
                        contentType:  application/vnd.3gpp.5gnas
                        headers:
                          Content-Id:
                            schema:
                              type: string  
              responses:
                '204':
                  description: Expected response to a successful callback processing
                '400':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/400'
                '403':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/403'
                '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'
                '503':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/503'
          '{$request.body#/n2NotifyCallbackUri}':
            post:
              summary: Namf_Communication N2 Info Notify (UE Specific) service Operation
              tags:
                - N2 Info Notify
              operationId: N2InfoNotify
              requestBody:
                description: UE Specific N2 Informaiton Notification
                content:
                  multipart/related:  # message with binary body part(s)
                    schema:
                      type: object
                      properties: # Request parts
                        jsonData:
                          $ref: '#/components/schemas/N2InformationNotification'
                        binaryDataN1Message:
                          type: string
                          format: binary
                        binaryDataN2Information:
                          type: string
                          format: binary
                    encoding:
                      jsonData:
                        contentType:  application/json
                      binaryDataN1Message:
                        contentType:  application/vnd.3gpp.5gnas
                        headers:
                          Content-Id:
                            schema:
                              type: string  
                      binaryDataN2Information:
                        contentType:  application/vnd.3gpp.ngap
                        headers:
                          Content-Id:
                            schema:
                              type: string  
              responses:
                '204':
                  description: Expected response to a successful callback processing
                '400':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/400'
                '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'
                '503':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/503'
  /ue-contexts/{ueContextId}/n1-n2-messages/subscriptions/{subscriptionId}:
    delete:
      summary: Namf_Communication N1N2 Message UnSubscribe (UE Specific) service Operation
      tags:
        - N1N2 Individual Subscription (Document)
      operationId: N1N2MessageUnSubscribe
      parameters:
        - name: ueContextId
          in: path
          description: UE Context Identifier
          required: true
          schema:
            type: string
            pattern: '^(5g-guti-[0-9]{5,6}[0-9a-fA-F]{14}|imsi-[0-9]{5,15}|nai-.+|imei-[0-9]{15}|imeisv-[0-9]{16}|.+)$'
        - name: subscriptionId
          in: path
          description: Subscription Identifier
          required: true
          schema:
            type: string
      responses:
        '204':
          description: N1N2 Message Subscription successfully removed.
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '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'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
  /non-ue-n2-messages/transfer:
    post:
      summary: Namf_Communication Non UE N2 Message Transfer service Operation
      tags:
        - Non UE N2Messages collection (Document)
      operationId: NonUeN2MessageTransfer
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/N2InformationTransferReqData'
          multipart/related:  # message with binary body part(s)
            schema:
              type: object
              properties: # Request parts
                jsonData:
                  $ref: '#/components/schemas/N2InformationTransferReqData'
                binaryDataN2Information:
                  type: string
                  format: binary
            encoding:
              jsonData:
                contentType:  application/json
              binaryDataN2Information:
                contentType:  application/vnd.3gpp.ngap
                headers:
                  Content-Id:
                    schema:
                      type: string   
        required: true
      responses:
        '200':
          description: Non UE N2 Message Transfer successfully initiated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/N2InformationTransferRspData'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/N2InformationTransferError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/N2InformationTransferError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/N2InformationTransferError'
        '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':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/N2InformationTransferError'
        '503':
          description: Service Unavailable
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/N2InformationTransferError'
        default:
          description: Unexpected error
  /non-ue-n2-messages/subscriptions:
    post:
      summary: Namf_Communication Non UE N2 Info Subscribe service Operation
      tags:
        - Non UE N2Messages Subscriptions collection (Document)
      operationId: NonUeN2InfoSubscribe
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NonUeN2InfoSubscriptionCreateData'
        required: true
      responses:
        '201':
          description: Non UE N2 Info Subscription successfully created.
          headers:
            Location:
              description: 'Contains the URI of the newly created resource, according to the structure: {apiRoot}/namf-comm/v1/non-ue-n2-messages/subscriptions/{n2NotifySubscriptionId}'
              required: true
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NonUeN2InfoSubscriptionCreatedData'
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '403':
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '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'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          description: Unexpected error
      callbacks:
        onN2InfoNotify:
          '{$request.body#/n2NotifyCallbackUri}':
            post:
              summary: Namf_Communication Non UE N2 Info Notify service Operation
              tags:
                - Non UE N2 Info Notify
              operationId: NonUeN2InfoNotify
              requestBody:
                description: Non UE N2 Informaiton Notification
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/N2InformationNotification'
                  multipart/related:  # message with binary body part(s)
                    schema:
                      type: object
                      properties: # Request parts
                        jsonData:
                          $ref: '#/components/schemas/N2InformationNotification'
                        binaryDataN2Information:
                          type: string
                          format: binary
                    encoding:
                      jsonData:
                        contentType:  application/json
                      binaryDataN2Information:
                        contentType:  application/vnd.3gpp.ngap
                        headers:
                          Content-Id:
                            schema:
                              type: string   
              responses:
                '204':
                  description: Expected response to a successful callback processing
                '400':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/400'
                '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'
                '503':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/503'
  /non-ue-n2-messages/subscriptions/{n2NotifySubscriptionId}:
    delete:
      summary: Namf_Communication Non UE N2 Info UnSubscribe service Operation
      tags:
        - Non UE N2 Message Notification Individual Subscription (Document)
      operationId: NonUeN2InfoUnSubscribe
      parameters:
        - name: n2NotifySubscriptionId
          in: path
          description: N2 info Subscription Identifier
          required: true
          schema:
            type: string
      responses:
        '204':
          description: Non UE N2 INfo Subscription successfully removed.
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '429':
          $ref: 'TS29571_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
  /subscriptions:
    post:
      summary: Namf_Communication AMF Status Change Subscribe service Operation
      tags:
        - subscriptions collection (Document)
      operationId: AMFStatusChangeSubscribe
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionData'
        required: true
      responses:
        '201':
          description: N1N2 Message Subscription successfully created.
          headers:
            Location:
              description: 'Contains the URI of the newly created resource, according to the structure: {apiRoot}/namf-comm/v1/subscriptions/{subscriptionId}'
              required: true
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionData'
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '403':
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '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'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          description: Unexpected error
      callbacks:
        onAmfStatusChange:
          '{$request.body#/amfStatusUri}':
            post:
              summary: Amf Status Change Notify service Operation
              tags:
                - Amf Status Change Notify
              operationId: AmfStatusChangeNotify
              requestBody:
                description: Amf Status Change Notification
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/AmfStatusChangeNotification'
              responses:
                '204':
                  description: Expected response to a successful callback processing
                '400':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/400'
                '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'
                '503':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/503'
  /subscriptions/{subscriptionId}:
    delete:
      summary: Namf_Communication AMF Status Change UnSubscribe service Operation
      tags:
        - individual subscription (Document)
      operationId: AMFStatusChangeUnSubscribe
      parameters:
        - name: subscriptionId
          in: path
          description: AMF Status Change Subscription Identifier
          required: true
          schema:
            type: string
      responses:
        '204':
          description: N1N2 Message Subscription successfully removed.
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '404':
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '429':
          $ref: 'TS29571_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          description: Unexpected error
    put:
      summary: Namf_Communication AMF Status Change Subscribe Modify service Operation
      tags:
        - individual subscription (Document)
      operationId: AMFStatusChangeSubscribeModfy
      parameters:
        - name: subscriptionId
          in: path
          description: AMF Status Change Subscription Identifier
          required: true
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubscriptionData'
        required: true
      responses:
        '202':
          description: N1N2 Message Subscription successfully updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionData'
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '403':
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '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'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          description: Unexpected error
      callbacks:
        OnAmfStatusChange:
          '{$request.body#/amfStatusUri}':
            post:
              summary: Amf Status Change Notify service Operation
              tags:
                - Amf Status Change Notify
              operationId: AmfStatusChangeNOtify
              requestBody:
                description: Amf Status Change Notification
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/AmfStatusChangeNotification'
              responses:
                '204':
                  description: Expected response to a successful callback processing
                '400':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/400'
                '403':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/403'
                '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'
                '503':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/503'
components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows: 
        clientCredentials: 
          tokenUrl: '{nrfApiRoot}/oauth2/token'
          scopes:
            namf-comm: Access to the Namf_Communication API
  schemas:
#
# STRUCTURED DATA TYPES
#
    SubscriptionData:
      type: object
      properties:
        amfStatusUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        guamiList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Guami'
          minItems: 1
      required:
        - amfStatusUri
    AmfStatusChangeNotification:
      type: object
      properties:
        amfStatusInfoList:
          type: array
          items:
            $ref: '#/components/schemas/AmfStatusInfo'
          minItems: 1
      required:
        - amfStatusInfo
    AmfStatusInfo:
      type: object
      properties:
        guamiList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Guami'
          minItems: 1
        statusChange:
          $ref: '#/components/schemas/StatusChange'
        targetAmfRemoval:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AmfName'
        targetAmfFailure:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AmfName'
      required:
        - guamis
        - statusChange
    AssignEbiData:
      type: object
      properties:
        pduSessionId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
        arpList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Arp'
          minItems: 1
        releasedEbiList:
          type: array
          items:
            $ref: '#/components/schemas/EpsBearerId'
          minItems: 1
      required:
        - pduSessionId
    AssignedEbiData:
      type: object
      properties:
        pduSessionId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
        assignedEbiList:
          type: array
          items:
            $ref: 'TS29502_Nsmf_PDUSession.yaml#/components/schemas/EbiArpMapping'
          minItems: 0
        failedArpList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Arp'
          minItems: 1
        releasedEbiList:
          type: array
          items:
            $ref: '#/components/schemas/EpsBearerId'
          minItems: 1
      required:
        - pduSessionId
        - assignedEbis
    AssignEbiFailed:
      type: object
      properties:
        pduSessionId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
        failedArpList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Arp'
          minItems: 1
      required:
        - pduSessionId
    UEContextRelease:
      type: object
      properties:
        supi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi'
        unauthenticatedSupi:
          type: boolean
          default: false
        ngapCause:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NgApCause'
      required:
        - ngapCause
    N2InformationTransferReqData:
      type: object
      properties:
        taiList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Tai'
          minItems: 1
        ratSelector:
          $ref: '#/components/schemas/RatSelector'
        ecgiList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Ecgi'
          minItems: 1
        ncgiList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Ncgi'
          minItems: 1
        globalRanNodeList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/GlobalRanNodeId'
          minItems: 1
        n2Information:
          $ref: '#/components/schemas/N2InfoContainer'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - n2Information
    NonUeN2InfoSubscriptionCreateData:
      type: object
      properties:
        globalRanNodeList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/GlobalRanNodeId'
          minItems: 1
        anTypeList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
          minItems: 1
        n2InformationClass:
          $ref: '#/components/schemas/N2InformationClass'
        n2NotifyCallbackUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        nfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - n2InformationClass
        - n2NotifyCallbackUri
    NonUeN2InfoSubscriptionCreatedData:
      type: object
      properties:
        n2NotifySubscriptionId:
          type: string
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - n2NotifySubscriptionId
    UeN1N2InfoSubscriptionCreateData:
      type: object
      properties:
        n2InformationClass:
          $ref: '#/components/schemas/N2InformationClass'
        n2NotifyCallbackUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        n1MessageClass:
          $ref: '#/components/schemas/N1MessageClass'
        n1NotifyCallbackUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        nfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
    UeN1N2InfoSubscriptionCreatedData:
      type: object
      properties:
        n1n2NotifySubscriptionId:
          type: string
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - n1n2NotifySubscriptionId
    N2InformationNotification:
      type: object
      properties:
        n2NotifySubscriptionId:
          type: string
        n2InfoContainer:
          $ref: '#/components/schemas/N2InfoContainer'
        toReleaseSessionList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
          minItems: 1
        lcsCorrelationId:
          $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/CorrelationID'
        notifyReason:
          $ref: '#/components/schemas/N2InfoNotifyReason'
      required:
        - n2NotifySubscriptionId
    N2InfoContainer:
      type: object
      properties:
        n2InformationClass:
          $ref: '#/components/schemas/N2InformationClass'
        smInfo:
          $ref: '#/components/schemas/N2SmInformation'
        ranInfo:
          $ref: '#/components/schemas/N2RanInformation'
        nrppaInfo:
          $ref: '#/components/schemas/NrppaInformation'
        pwsInfo:
          $ref: '#/components/schemas/PwsInformation'
      required:
        - n2InformationClass
    N1MessageNotification:
      type: object
      properties:
        n1NotifySubscriptionId:
          type: string
        n1MessageContainer:
          $ref: '#/components/schemas/N1MessageContainer'
        lcsCorrelationId:
          $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/CorrelationID'
        registrationCtxtContainer:
          $ref: '#/components/schemas/RegistrationContextContainer'
      required:
        - n1MessageContainer
    N1MessageContainer:
      type: object
      properties:
        n1MessageClass:
          $ref: '#/components/schemas/N1MessageClass'
        n1MessageContent:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/RefToBinaryData'
        nfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
      required:
        - n1MessageClass
        - n1MessageContent
    N1N2MessageTransferReqData:
      type: object
      properties:
        n1MessageContainer:
          $ref: '#/components/schemas/N1MessageContainer'
        n2InfoContainer:
          $ref: '#/components/schemas/N2InfoContainer'
        skipInd:
          type: boolean
          default: false
        lastMsgIndication:
          type: boolean
        pduSessionId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
        lcsCorrelationId:
          $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/CorrelationID'
        ppi:
          $ref: '#/components/schemas/Ppi'
        arp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Arp'
        5qi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/5Qi'
        n1n2FailureTxfNotifURI:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        smfReallocationInd:
          type: boolean
          default: false
        areaOfValidity:
          $ref: '#/components/schemas/AreaOfValidity'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
    N1N2MessageTransferRspData:
      type: object
      properties:
        cause:
          $ref: '#/components/schemas/N1N2MessageTransferCause'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - cause
    RegistrationContextContainer:
      type: object
      properties:
        ueContext:
          $ref: '#/components/schemas/UeContext'
        localTimeZone:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TimeZone'
        anType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        anN2ApId:
          type: integer
        ranNodeId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/GlobalRanNodeId'
        initialAmfName:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AmfName'
        userLocation:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
        rrcEstCause:
          type: string
          pattern: '^[0-9a-fA-F]+$'
        ueContextRequest:
          type: boolean
          default:  false
        anN2IPv4Addr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr'
        anN2IPv6Addr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Addr'
        allowedNssai:
          $ref: 'TS29531_Nnssf_NSSelection.yaml#/components/schemas/AllowedNssai'
        configuredNssai:
          type: array
          items:
            $ref: 'TS29531_Nnssf_NSSelection.yaml#/components/schemas/ConfiguredSnssai'
          minItems: 1
        rejectedNssaiInPlmn:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
          minItems: 1
        rejectedNssaiInTa:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
          minItems: 1
      required:
        - ueContext
        - anType
        - anN2ApId
        - ranNodeId
        - initialAmfName
        - userLocation
    AreaOfValidity:
      type: object
      properties:
        taiList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Tai'
          minItems: 0
      required:
        - taList
    UeContextTransferReqData:
      type: object
      properties:
        reason:
          $ref: '#/components/schemas/TransferReason'
        accessType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        plmnId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId'
        regRequest:
          $ref: '#/components/schemas/N1MessageContainer'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - reason
        - accessType
    UeContextTransferRspData:
      type: object
      properties:
        ueContext:
          $ref: '#/components/schemas/UeContext'
        ueRadioCapability:
          $ref: '#/components/schemas/N2InfoContent'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - ueContext
    UeContext:
      type: object
      properties:
        supi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi'
        supiUnauthInd:
          type: boolean
        gpsiList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
          minItems: 1
        pei:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Pei'
        udmGroupId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfGroupId'
        ausfGroupId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfGroupId'
        routingIndicator:
          type: string
        groupList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/GroupId'
          minItems: 1
        drxParameter:
          $ref: '#/components/schemas/DrxParameter'
        subRfsp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/RfspIndex'
        usedRfsp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/RfspIndex'
        subUeAmbr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ambr'
        smsSupport:
          $ref: '#/components/schemas/SmsSupport'
        smsfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        seafData:
          $ref: '#/components/schemas/SeafData'
        5gMmCapability:
          $ref: '#/components/schemas/5GMmCapability'
        pcfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        pcfAmPolicyUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        amPolicyReqTriggerList:
          type: array
          items:
            $ref: '#/components/schemas/AMPolicyReqTrigger'
          minItems: 1
        hpcfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        restrictedRatList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/RatType'
          minItems: 1
        forbiddenAreaList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Area'
          minItems: 1
        serviceAreaRestriction:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ServiceAreaRestriction'
        restrictedCoreNwTypeList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/CoreNetworkType'
          minItems: 1
        eventSubscriptionList:
          type: array
          items:
            $ref: 'TS29518_Namf_EventExposure.yaml#/components/schemas/AmfEventSubscription'
          minItems: 1
        mmContextList:
          type: array
          items:
            $ref: '#/components/schemas/MmContext'
          minItems: 1
          maxItems: 2
        sessionContextList:
          type: array
          items:
            $ref: '#/components/schemas/PduSessionContext'
          minItems: 1
        traceData:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/TraceData'
    N2SmInformation:
      type: object
      properties:
        pduSessionId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
        n2InfoContent:
          $ref: '#/components/schemas/N2InfoContent'
        sNssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        subjectToHo:
          type: boolean
      required:
        - pduSessionId
    N2InfoContent:
      type: object
      properties:
        ngapMessageType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        ngapIeType:
          $ref: '#/components/schemas/NgapIeType'
        ngapData:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/RefToBinaryData'
      required:
        - ngapIeType
        - ngapData
    NrppaInformation:
      type: object
      properties:
        nfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        nrppaPdu:
          $ref: '#/components/schemas/N2InfoContent'
      required:
        - nfId
        - nrppaPdu
    PwsInformation:
      type: object
      properties:
        messageIdentifier:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint16'
        serialNumber:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint16'
        pwsContainer:
          $ref: '#/components/schemas/N2InfoContent'
        sendRanResponse:
          type: boolean
          default: false
        omcId:
          $ref: '#/components/schemas/OmcIdentifier'
      required:
        - messageIdentifier
        - serialNumber
        - pwsContainer
    N1N2MsgTxfrFailureNotification:
      type: object
      properties:
        cause:
          $ref: '#/components/schemas/N1N2MessageTransferCause'
        n1n2MsgDataUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
      required:
        - cause
        - n1n2MsgDataUri
    N1N2MessageTransferError:
      type: object
      properties:
        error:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
        errInfo:
          $ref: '#/components/schemas/N1N2MsgTxfrErrDetail'
      required:
        - error
    N1N2MsgTxfrErrDetail:
      type: object
      properties:
        retryAfter:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        highestPrioArp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Arp'
    N2InformationTransferRspData:
      type: object
      properties:
        result:
          $ref: '#/components/schemas/N2InformationTransferResult'
        pwsRspData:
          $ref: '#/components/schemas/PWSResponseData'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - result
    MmContext:
      type: object
      properties:
        accessType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        nasSecurityMode:
          $ref: '#/components/schemas/NasSecurityMode'
        nasDownlinkCount:
          $ref: '#/components/schemas/NasCount'
        nasUplinkCount:
          $ref: '#/components/schemas/NasCount'
        ueSecurityCapability:
          $ref: '#/components/schemas/UeSecurityCapability'
        s1UeNetworkCapability:
          $ref: '#/components/schemas/S1UeNetworkCapability'
        allowedNssai:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
          minItems: 1
        nssaiMappingList:
          type: array
          items:
            $ref: '#/components/schemas/NssaiMapping'
          minItems: 1
        nsInstanceList:
          type: array
          items:
            $ref: 'TS29531_Nnssf_NSSelection.yaml#/components/schemas/NsiId'
          minItems: 1
        expectedUEbehavior:
          $ref: '#/components/schemas/ExpectedUeBehavior'
      required:
        - accessType
    SeafData:
      type: object
      properties:
        ngKsi:
          $ref: '#/components/schemas/NgKsi'
        keyAmf:
          $ref: '#/components/schemas/KeyAmf'
        nh:
          type: string
          pattern: '^[A-Fa-f0-9]+$'
        ncc:
          type: integer
          minimum: 0
          maximum: 7
        keyAmfChangeInd:
          type: boolean
        keyAmfHDerivationInd:
          type: boolean
      required:
        - ngKsi
        - keyAmf
    NasSecurityMode:
      type: object
      properties:
        integrityAlgorithm:
          $ref: '#/components/schemas/IntegrityAlgorithm'
        cipheringAlgorithm:
          $ref: '#/components/schemas/CipheringAlgorithm'
      required:
        - integrityAlgorithm
        - cipheringAlgorithm
    PduSessionContext:
      type: object
      properties:
        pduSessionId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
        smContextRef:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        sNssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        dnn:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
        accessType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/AccessType'
        allocatedEbiList:
          type: array
          items:
            $ref: 'TS29502_Nsmf_PDUSession.yaml#/components/schemas/EbiArpMapping'
          minItems: 1
        hsmfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        vsmfId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
        nsInstance:
          $ref: 'TS29531_Nnssf_NSSelection.yaml#/components/schemas/NsiId'
      required:
        - pduSessionId
        - smContextRef
        - sNssai
        - dnn
        - accessType
        - allocatedEbiList
    NssaiMapping:
      type: object
      properties:
        mappedSnssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        hSnssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
      required:
        - mappedSnssai
        - hSnssai
    UeRegStatusUpdateReqData:
      type: object
      properties:
        transferStatus:
          $ref: '#/components/schemas/UeContextTransferStatus'
        toReleaseSessionList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionId'
          minItems: 1
        pcfReselectedInd:
          type: boolean
      required:
        - transferStatus
    UeRegStatusUpdateRspData:
      type: object
      properties:
        regStatusTransferComplete:
          type: boolean
      required:
        - regStatusTransferComplete
    AssignEbiError:
      type: object
      properties:
        error:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
        failureDetails:
          $ref: '#/components/schemas/AssignEbiFailed'
      required:
        - error
        - failureDetails
    UeContextCreateData:
      type: object
      properties:
        ueContext:
          $ref: '#/components/schemas/UeContext'
        targetId:
          $ref: '#/components/schemas/NgRanTargetId'
        sourceToTargetData:
          $ref: '#/components/schemas/N2InfoContent'
        pduSessionList:
          type: array
          items:
            $ref: '#/components/schemas/N2SmInformation'
          minItems: 1
        n2NotifyUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        ueRadioCapability:
          $ref: '#/components/schemas/N2InfoContent'
        ngapCause:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NgApCause'
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - ueContext
        - targetId
        - sourceToTargetData
        - pduSessions
    UeContextCreatedData:
      type: object
      properties:
        ueContext:
          $ref: '#/components/schemas/UeContext'
        targetToSourceData:
          $ref: '#/components/schemas/N2InfoContent'
        pduSessionList:
          type: array
          items:
            $ref: '#/components/schemas/N2SmInformation'
          minItems: 1
        ngapCause:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NgApCause'
        failedSessionList:
          type: array
          items:
            $ref: '#/components/schemas/N2SmInformation'
          minItems: 1
        supportedFeatures:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
        pcfReselectedInd:
          type: boolean
      required:
        - ueContext
        - targetToSourceData
        - pduSessions
    UeContextCreateError:
      type: object
      properties:
        error:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
        ngapCause:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/NgApCause'
      required:
        - error
    NgRanTargetId:
      type: object
      properties:
        ranNodeId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/GlobalRanNodeId'
        tai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Tai'
      required:
        - ranNodeId
        - tai
    PWSResponseData:
      type: object
      properties:
        ngapMessageType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        serialNumber:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uint16'
        messageIdentifier:
          type: integer
        unknownTaiList:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Tai'
          minItems: 1
      required:
        - ngapMessageType
        - serialNumber
        - messageIdentifier
    PWSErrorData:
      type: object
      properties:
        namfCause:
          type: integer
      required:
        - namfCause
    N2InformationTransferError:
      type: object
      properties:
        error:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
        pwdErrorInfo:
          $ref: '#/components/schemas/PWSErrorData'
      required:
        - error
    NgKsi:
      type: object
      properties:
        tsc:
          $ref: '#/components/schemas/ScType'
        ksi:
          type: integer
          minimum: 0
          maximum: 6
      required:
        - tsc
        - ksi
    KeyAmf:
      type: object
      properties:
        keyType:
          $ref: '#/components/schemas/KeyAmfType'
        keyVal:
          type: string
      required:
        - keyType
        - keyVal
    ExpectedUeBehavior:
      type: object
      properties:
        expMoveTrajectory:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/UserLocation'
          minItems: 1
        validityTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
      required:
        - expMoveTrajectory
        - validityTime
    N2RanInformation:
      type: object
      properties:
        n2InfoContent:
          $ref: '#/components/schemas/N2InfoContent'
      required:
        - n2InfoContent

#
# SIMPLE DATA TYPES 
#
    EpsBearerId:
      type: integer
      minimum: 0
      maximum: 15
    Ppi:
      type: integer
      minimum: 0
      maximum: 7
    NasCount:
      $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
    5GMmCapability:
      $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
    UeSecurityCapability:
      $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
    S1UeNetworkCapability:
      $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
    DrxParameter:
      $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
    OmcIdentifier:
      type: string

#
# ENUMERATIONS
#
    StatusChange:
      anyOf:
      - type: string
        enum:
          - AMF_UNAVAILABLE
          - AMF_AVAILABLE
      - type: string
    N2InformationClass:
      anyOf:
      - type: string
        enum:
          - SM
          - NRPPa
          - PWS
          - PWS-BCAL
          - PWS-RF
          - RAN
      - type: string
    N1MessageClass:
      anyOf:
      - type: string
        enum:
          - 5GMM
          - SM
          - LPP
          - SMS
          - UPDP
      - type: string
    N1N2MessageTransferCause:
      anyOf:
      - type: string
        enum:
          - ATTEMPTING_TO_REACH_UE
          - N1_N2_TRANSFER_INITIATED
          - WAITING_FOR_ASYNCHRONOUS_TRANSFER
          - UE_NOT_RESPONDING
          - N1_MSG_NOT_TRANSFERRED
          - UE_NOT_REACHABLE_FOR_SESSION
      - type: string
    UeContextTransferStatus:
      anyOf:
      - type: string
        enum:
          - TRANSFERRED
          - NOT_TRANSFERRED
      - type: string
    N2InformationTransferResult:
      anyOf:
      - type: string
        enum:
          - N2_INFO_TRANSFER_INITIATED
      - type: string
    CipheringAlgorithm:
      anyOf:
      - type: string
        enum:
          - NEA0
          - NEA1
          - NEA2
          - NEA3
      - type: string
    IntegrityAlgorithm:
      anyOf:
      - type: string
        enum:
          - NIA0
          - NIA1
          - NIA2
          - NIA3
      - type: string
    SmsSupport:
      anyOf:
      - type: string
        enum:
          - 3GPP
          - NON_3GPP
          - BOTH
          - NONE
      - type: string
    ScType:
      anyOf:
      - type: string
        enum:
          - NATIVE
          - MAPPED
      - type: string
    KeyAmfType:
      anyOf:
      - type: string
        enum:
          - KAMF
          - KPRIMEAMF
      - type: string
    TransferReason:
      anyOf:
      - type: string
        enum:
          - INIT_REG
          - MOBI_REG
          - MOBI_REG_UE_VALIDATED
      - type: string
    AMPolicyReqTrigger:
      anyOf:
      - type: string
        enum:
          - LOCATION_CHANGE
          - PRA_CHANGE
          - SARI_CHANGE
          - RFSP_INDEX_CHANGE
      - type: string
    RatSelector:
      anyOf:
      - type: string
        enum:
          - E-UTRA
          - NR
      - type: string
    NgapIeType:
      anyOf:
      - type: string
        enum:
          - PDU_RES_SETUP_REQ
          - PDU_RES_REL_CMD
          - PDU_RES_MOD_REQ
          - HANDOVER_CMD
          - HANDOVER_REQUIRED
          - HANDOVER_PREP_FAIL
          - SRC_TO_TAR_CONTAINER
          - TAR_TO_SRC_CONTAINER
          - RAN_STATUS_TRANS_CONTAINER
          - SON_CONFIG_TRANSFER
          - NRPPA_PDU
          - UE_RADIO_CAPABILITY
      - type: string
    N2InfoNotifyReason:
      anyOf:
      - type: string
        enum:
          - HANDOVER_COMPLETED
      - type: string
