openapi: 3.0.0

info:
  title: 3gpp-service-parameter
  version: 1.3.1
  description: |
    API for AF service paramter  
    © 2026, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).  
    All rights reserved.

externalDocs:
  description: >
    3GPP TS 29.522 V19.6.0; 5G System; Network Exposure Function Northbound APIs.
  url: 'https://www.3gpp.org/ftp/Specs/archive/29_series/29.522/'

security:
  - {}
  - oAuth2ClientCredentials: []

servers:
  - url: '{apiRoot}/3gpp-service-parameter/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in clause 5.2.4 of 3GPP TS 29.122.

paths:
  /{afId}/subscriptions:
    parameters:
      - name: afId
        in: path
        description: Identifier of the AF
        required: true
        schema:
          type: string
    get:
      summary: read all of the active subscriptions for the AF
      operationId: ReadAllSubscriptions
      tags:
        - Service Parameter Subscriptions
      parameters:
        - name: gpsis
          in: query
          description: The GPSI of the requested UE(s).
          required: false
          schema:
            type: array
            items:
              $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
            minItems: 1
        - name: ip-addrs
          in: query
          description: The IP address(es) of the requested UE(s).
          required: false
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: 'TS29571_CommonData.yaml#/components/schemas/IpAddr'
                minItems: 1
        - name: ip-domain
          in: query
          description: >
            The IPv4 address domain identifier. The attribute may only be provided
            if IPv4 address is included in the ip-addrs query parameter.
          required: false
          schema:
            type: string
        - name: mac-addrs
          in: query
          description: The MAC address(es) of the requested UE(s).
          required: false
          schema:
            type: array
            items:
              $ref: 'TS29571_CommonData.yaml#/components/schemas/MacAddr48'
            minItems: 1
      responses:
        '200':
          description: OK. 
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ServiceParameterData'
                minItems: 0
        '307':
          $ref: 'TS29122_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29122_CommonData.yaml#/components/responses/308'
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '406':
          $ref: 'TS29122_CommonData.yaml#/components/responses/406'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'

    post:
      summary: Creates a new subscription resource 
      operationId: CreateAnSubscription
      tags:
        - Service Parameter Subscriptions
      requestBody:
        description: Request to create a new subscription resource
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceParameterData'
      responses:
        '201':
          description: Created (Successful creation of subscription)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceParameterData'
          headers:
            Location:
              description: Contains the URI of the newly created resource.
              required: true
              schema:
                type: string
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29122_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29122_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29122_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'
      callbacks:
        notificationDestination:
          '{$request.body#/notificationDestination}':
            post:
              requestBody:
                description: >
                  Notifications upon AF Service Parameter Authorization Update,
                  and/or AF subscribed event notification of the outcome related
                  to the invocation of service parameters provisioning.
                required: true
                content:
                  application/json:
                    schema:
                      type: array
                      items:
                        $ref: '#/components/schemas/AfNotification'
                      minItems: 1
              responses:
                '204':
                  description: Expected response to a successful callback processing without a body
                '307':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/307'
                '308':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/308'
                '400':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/400'
                '401':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/401'
                '403':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/403'
                '404':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/404'
                '411':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/411'
                '413':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/413'
                '415':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/415'
                '429':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/429'
                '500':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/500'
                '503':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/503'
                default:
                  $ref: 'TS29122_CommonData.yaml#/components/responses/default'

  /{afId}/subscriptions/{subscriptionId}:
    parameters:
      - name: afId
        in: path
        description: Identifier of the AF
        required: true
        schema:
          type: string
      - name: subscriptionId
        in: path
        description: Identifier of the subscription resource
        required: true
        schema:
          type: string
    get:
      summary: read an active subscriptions for the SCS/AS and the subscription Id
      operationId: ReadAnSubscription
      tags:
        - Individual Service Parameter Subscription
      responses:
        '200':
          description: OK (Successful get the active subscription)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceParameterData'
        '307':
          $ref: 'TS29122_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29122_CommonData.yaml#/components/responses/308'
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '406':
          $ref: 'TS29122_CommonData.yaml#/components/responses/406'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'

    put:
      summary: Fully updates/replaces an existing subscription resource
      operationId: FullyUpdateAnSubscription
      tags:
        - Individual Service Parameter Subscription
      requestBody:
        description: Parameters to update/replace the existing subscription
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ServiceParameterData'
      responses:
        '200':
          description: OK (Successful update of the subscription)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceParameterData'
        '204':
          description: OK (Successful update of the subscription)
        '307':
          $ref: 'TS29122_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29122_CommonData.yaml#/components/responses/308'
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29122_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29122_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29122_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'

    patch:
      summary: Partial updates/replaces an existing subscription resource
      operationId: PartialUpdateAnSubscription
      tags:
        - Individual Service Parameter Subscription
      requestBody:
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/ServiceParameterDataPatch'
      responses:
        '200':
          description: OK. The subscription was modified successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceParameterData'
        '204':
          description: OK. The subscription was modified successfully.
        '307':
          $ref: 'TS29122_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29122_CommonData.yaml#/components/responses/308'
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29122_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29122_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29122_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'

    delete:
      summary: Deletes an already existing subscription
      operationId: DeleteAnSubscription
      tags:
        - Individual Service Parameter Subscription
      responses:
        '204':
          description: No Content (Successful deletion of the existing subscription)
        '307':
          $ref: 'TS29122_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29122_CommonData.yaml#/components/responses/308'
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'

components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: '{tokenUrl}'
          scopes: {}

  schemas: 
    ServiceParameterData:
      description: Represents an individual Service Parameter subscription resource.
      type: object
      properties:
        afServiceId:
          type: string
          description: Identifies a service on behalf of which the AF is issuing the request.
        appId:
          type: string
          description: Identifies an application.
        dnn:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
        snssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        externalGroupId:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/ExternalGroupId'
        anyUeInd:
          type: boolean
          description: >
            Identifies whether the AF request applies to any non-roaming UE. This attribute,
            when provided, shall set to "true" if applicable for any UE, otherwise, set to "false".
        roamUeNetDescs:
          type: array
          items:
            $ref: '#/components/schemas/NetworkDescription'
          minItems: 1
          description: Each element identifies one or more PLMN IDs of inbound roamers.
        gpsi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
        ueIpv4:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv4Addr'
        ueIpv6:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Ipv6Addr'
        ueMac:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/MacAddr48'
        self:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Link'
        subNotifEvents:
          type: array
          items:
            $ref: '#/components/schemas/Event'
          minItems: 1
          description: >
            Identifies the AF subscribed event(s) notifications related to AF provisioned
            service parameters.
        notificationDestination:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Uri'
        requestTestNotification:
          type: boolean
          description: >
            Set to true by the AF to request the NEF to send a test notification
            as defined in clause 5.2.5.3 of 3GPP TS 29.122. Set to false or omitted otherwise.
        websockNotifConfig:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/WebsockNotifConfig'
        paramOverPc5:
          $ref: '#/components/schemas/ParameterOverPc5'
        paramOverUu:
          $ref: '#/components/schemas/ParameterOverUu'
        paramForProSeDd:
          $ref: '#/components/schemas/ParamForProSeDd'
        paramForProSeDc:
          $ref: '#/components/schemas/ParamForProSeDc'
        paramForProSeU2NRelUe:
          $ref: '#/components/schemas/ParamForProSeU2NRelUe'
        paramForProSeRemUe:
          $ref: '#/components/schemas/ParamForProSeRemUe'
        paramForProSeU2URelUe:
          $ref: '#/components/schemas/ParamForProSeU2URelUe'
        paramForProSeEndUe:
          $ref: '#/components/schemas/ParamForProSeEndUe'
        multiHopU2NRelUe:
          $ref: '#/components/schemas/ParamProSeMultiHopU2NRelUe'
        multiHopU2NRemUe:
          $ref: '#/components/schemas/ParamProSeMultiHopRemUe'
        multiHopU2NIntermUe:
          $ref: '#/components/schemas/ParamProSeMultiHopIntermUe'
        multiHopU2URelUe:
          $ref: '#/components/schemas/ParamProSeMultiHopU2URelUe'
        multiHopU2UEndUe:
          $ref: '#/components/schemas/ParamProSeMultiHopEndUe'
        paramForRangingSlPos:
          $ref: '#/components/schemas/ParamForRangingSlPos'
        urspGuidance:
          type: array
          items:
            $ref: '#/components/schemas/UrspRuleRequest'
          minItems: 1
          description: Contains the service parameter used to guide the URSP.
        vpsUrspGuidance:
          type: array
          items:
            $ref: '#/components/schemas/UrspRuleRequest'
          minItems: 1
          description: >
            Contains the service parameters used to guide the VPLMN-specific URSP
            rule(s).
        a2xParamsPc5:
          $ref: '#/components/schemas/A2xParamsPc5'
        a2xParamsUu:
          $ref: '#/components/schemas/A2xParamsUu'
        tnaps:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/TnapId'
          minItems: 1
          description: Contains the TNAP IDs collocated with the 5G-RG(s) of a specific user.
        mtcProviderId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/MtcProviderInformation'
        non3gppDevInfos:
          type: array
          items:
            $ref: '#/components/schemas/Non3gppDeviceInformation'
          minItems: 1
        suppFeat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'

    ServiceParameterDataPatch:
      description: >
        Represents the parameters to request the modification of a service parameter
        subscription resource.
      type: object
      properties:
        paramOverPc5:
          $ref: '#/components/schemas/ParameterOverPc5Rm'
        paramOverUu:
          $ref: '#/components/schemas/ParameterOverUuRm'
        paramForProSeDd:
          $ref: '#/components/schemas/ParamForProSeDdRm'
        paramForProSeDc:
          $ref: '#/components/schemas/ParamForProSeDcRm'
        paramForProSeU2NRelUe:
          $ref: '#/components/schemas/ParamForProSeU2NRelUeRm'
        paramForProSeRemUe:
          $ref: '#/components/schemas/ParamForProSeRemUeRm'
        paramForProSeU2URelUe:
          $ref: '#/components/schemas/ParamForProSeU2URelUeRm'
        paramForProSeEndUe:
          $ref: '#/components/schemas/ParamForProSeEndUeRm'
        multiHopU2NRelUe:
          $ref: '#/components/schemas/ParamProSeMultiHopU2NRelUeRm'
        multiHopU2NRemUe:
          $ref: '#/components/schemas/ParamProSeMultiHopRemUeRm'
        multiHopU2NIntermUe:
          $ref: '#/components/schemas/ParamProSeMultiHopIntermUeRm'
        multiHopU2URelUe:
          $ref: '#/components/schemas/ParamProSeMultiHopU2URelUeRm'
        multiHopU2UEndUe:
          $ref: '#/components/schemas/ParamProSeMultiHopEndUeRm'
        paramForRangingSlPos:
          $ref: '#/components/schemas/ParamForRangingSlPosRm'
        urspGuidance:
          type: array
          items:
            $ref: '#/components/schemas/UrspRuleRequest'
          minItems: 1
          description: Contains the service parameter used to guide the URSP. 
        vpsUrspGuidance:
          type: array
          items:
            $ref: '#/components/schemas/UrspRuleRequest'
          minItems: 1
          description: >
            Contains the service parameters used to guide the VPLMN-specific
            URSP rule(s).
          nullable: true
        a2xParamsPc5:
          $ref: '#/components/schemas/A2xParamsPc5Rm'
        a2xParamsUu:
          $ref: '#/components/schemas/A2xParamsUuRm'
        tnaps:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/TnapId'
          minItems: 1
          description: Contains the TNAP IDs collocated with the 5G-RG(s) of a specific user.
          nullable: true
        subNotifEvents:
          type: array
          items:
            $ref: '#/components/schemas/Event'
          minItems: 1
          nullable: true
          description: >
            Identifies the AF subscribed event(s) notifications related to AF provisioned
            service parameters.
        notificationDestination:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Uri'
        non3gppDevInfos:
          type: array
          items:
            $ref: '#/components/schemas/Non3gppDeviceInformation'
          minItems: 1
          nullable: true

    ParameterOverPc5:
      description: >
        Represents configuration parameters for V2X communications over PC5 reference point.
      type: string

    ParameterOverPc5Rm:
      description: >
        Represents the same as the ParameterOverPc5 data type but with the nullable:true property.
      type: string
      nullable: true

    ParameterOverUu:
      description: >
        Represents configuration parameters for V2X communications over Uu reference point.
      type: string

    ParameterOverUuRm:
      description: >
        Represents the same as the ParameterOverUu data type but with the nullable:true property.
      type: string
      nullable: true

    ParamForProSeDd:
      description: Represents the service parameters for 5G ProSe direct discovery.
      type: string

    ParamForProSeDdRm:
      description: >
        This data type is defined in the same way as the ParamForProSeDd data type,
        but with the OpenAPI nullable property set to true.
      type: string
      nullable: true

    ParamForProSeDc:
      description: Represents the service parameters for 5G ProSe direct communications.
      type: string

    ParamForProSeDcRm:
      description: >
        This data type is defined in the same way as the ParamForProSeDc data type,
        but with the OpenAPI nullable property set to true.
      type: string
      nullable: true

    ParamForProSeU2NRelUe:
      description: Represents the service parameters for 5G ProSe UE-to-network relay UE.
      type: string

    ParamForProSeU2NRelUeRm:
      description: >
        This data type is defined in the same way as the ParamForProSeU2NRelay data type,
        but with the OpenAPI nullable property set to true.
      type: string
      nullable: true

    ParamForProSeRemUe:
      description: Represents the service parameters for 5G ProSe Remote UE.
      type: string

    ParamForProSeRemUeRm:
      description: >
        This data type is defined in the same way as the ParamForProSeRemUe data type,
        but with the OpenAPI nullable property set to true.
      type: string
      nullable: true

    ParamForProSeU2URelUe:
      description: Represents the service parameters for 5G ProSe UE-to-UE relay UE.
      type: string

    ParamForProSeU2URelUeRm:
      description: >
        This data type is defined in the same way as the ParamForProSeU2URelay data type,
        but with the OpenAPI nullable property set to true.
      type: string
      nullable: true

    ParamForProSeEndUe:
      description: Represents the service parameters for 5G ProSe End UE.
      type: string

    ParamForProSeEndUeRm:
      description: >
        This data type is defined in the same way as the ParamForProSeEndUe data type,
        but with the OpenAPI nullable property set to true.
      type: string
      nullable: true

    ParamProSeMultiHopU2NRelUe:
      description: >
        Represents the service parameters for 5G ProSe UE-to-Network Relay UE supporting
        5G ProSe Layer-2 and/or Layer-3 multi-hop UE-to-Network Relay.
      type: string

    ParamProSeMultiHopU2NRelUeRm:
      description: >
        This data type is defined in the same way as the ParamProSeMultiHopU2NRelUe data type,
        but with the OpenAPI nullable property set to true.
      type: string
      nullable: true

    ParamProSeMultiHopRemUe:
      description: >
        Represents the service parameters for 5G ProSe Remote UE supporting 5G ProSe
        Layer-2 and/or Layer-3 multi-hop UE-to-Network Relay.
      type: string

    ParamProSeMultiHopRemUeRm:
      description: >
        This data type is defined in the same way as the ParamProSeMultiHopRemUe data type,
        but with the OpenAPI nullable property set to true.
      type: string
      nullable: true

    ParamProSeMultiHopIntermUe:
      description: >
        Represents the service parameters for 5G ProSe Intermediate UE-to-Network Relay
        supporting 5G ProSe Layer-2 and/or Layer-3 multi-hop UE-to-Network Relay.
      type: string

    ParamProSeMultiHopIntermUeRm:
      description: >
        This data type is defined in the same way as the ParamProSeMultiHopIntermUe data type,
        but with the OpenAPI nullable property set to true.
      type: string
      nullable: true

    ParamProSeMultiHopU2URelUe:
      description: >
        Represents the service parameters for 5G ProSe Layer-3 UE-to-UE Relay UE supporting
        5G ProSe Layer-3 multi-hop UE-to-UE Relay.
      type: string

    ParamProSeMultiHopU2URelUeRm:
      description: >
        This data type is defined in the same way as the ParamProSeMultiHopU2URelUe data type,
        but with the OpenAPI nullable property set to true.
      type: string
      nullable: true

    ParamProSeMultiHopEndUe:
      description: >
        Represents the service parameters for 5G ProSe Layer-3 End UE supporting 5G ProSe
        Layer-3 multi-hop UE-to-UE Relay.
      type: string

    ParamProSeMultiHopEndUeRm:
      description: >
        This data type is defined in the same way as the ParamProSeMultiHopEndUe data type,
        but with the OpenAPI nullable property set to true.
      type: string
      nullable: true

    ParamForRangingSlPos:
      description: Represents the service parameters for ranging and sidelink positioning.
      type: string

    ParamForRangingSlPosRm:
      description: >
        This data type is defined in the same way as the ParamForRangingslpos data type,
        but with the OpenAPI nullable property set to true.
      type: string
      nullable: true

    A2xParamsPc5:
      description: >
        Represents configuration parameters for A2X communications over PC5 reference point.
      type: string

    A2xParamsPc5Rm:
      description: >
        Represents the same as the A2xParamsPc5 data type but with the nullable:true property.
      type: string
      nullable: true

    A2xParamsUu:
      description: >
        Represents configuration parameters for A2X communications over Uu reference point.
      type: string

    A2xParamsUuRm:
      description: >
        Represents the same as the A2xParamsUu data type but with the nullable:true property.
      type: string
      nullable: true

    UrspRuleRequest:
      description: Contains parameters that can be used to guide the URSP.
      type: object
      properties:
        afReqUrspId:
          type: string
        trafficDesc:
          $ref: '#/components/schemas/TrafficDescriptorComponents'
        relatPrecedence:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        visitedNetDescs:
          type: array
          items:
            $ref: '#/components/schemas/NetworkDescription'
          minItems: 1
          description: >
            Each element identifies one or more PLMN IDs where AF guidance for VPLMN-specific
            URSP rule applies.
        routeSelParamSets:
          type: array
          items:
            $ref: '#/components/schemas/RouteSelectionParameterSet'
          minItems: 1
          description: >
            Sets of parameters that may be used to guide the Route Selection Descriptors of the 
            URSP.

    RouteSelectionParameterSet:
      description: >
        Contains parameters that can be used to guide the Route Selection
        Descriptors of the URSP.
      type: object
      properties:
        dnn:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
        snssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        precedence:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        spatialValidityAreas:
          type: array
          items:
            $ref: 'TS29522_AMPolicyAuthorization.yaml#/components/schemas/GeographicalArea'
          minItems: 1
          description: >
            Indicates where the route selection parameters apply. It may correspond
            to a geographical area, for example using a geographic shape that
            is known to the AF and is configured by the operator to correspond to a list
            of or TAIs.
        spatialValidityTais:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Tai'
          minItems: 1
          description: >
            Indicates the TAIs in which the route selection parameters apply. This attribute is 
            applicable only within the 5GC and it shall not be included in the request messages of 
            untrusted AFs for URSP guidance.
        pduSessType:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PduSessionType'

    Non3gppDeviceInformation:
      description: Represents the Non-3GPP device identifier(s) information.
      type: object
      properties:
        non3gppDevId:
          type: string
        dnnSnssaiInfo:
          $ref: 'TS29522_AMInfluence.yaml#/components/schemas/DnnSnssaiInformation'
        flowInfos:
          type: array
          items:
            $ref: 'TS29122_CommonData.yaml#/components/schemas/FlowInfo'
          minItems: 1
        ethFlowInfos:
          type: array
          items:
            $ref: 'TS29122_CommonData.yaml#/components/schemas/EthFlowInfo'
          minItems: 1
        qosReference:
          type: string
        indQosParamSet:
          $ref: 'TS29543_Npcf_PDTQPolicyControl.yaml#/components/schemas/QosParameterSet'
      required:
        - non3gppDevId
      oneOf:
        - required: [qosReference]
        - required: [indQosParamSet]
      not:
        required: [flowInfos, ethFlowInfos]

    Event:
      anyOf:
      - type: string
        enum:
          - SUCCESS_UE_POL_DEL_SP
          - UNSUCCESS_UE_POL_DEL_SP
          - PARTLY_UNSUCC_UE_POL_DEL_SP
          - UNSUCCESS_PCF_SERVICE_AUTHORIZATION
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.
      description: |
        Represents the AF subscribe to event notification of the outcome related to the
        invocation of AF provisioned service parameters.  
        Possible values are:
        - SUCCESS_UE_POL_DEL_SP: Successful UE Policy Delivery related to 
          the invocation of AF provisioned Service Parameters.
        - UNSUCCESS_UE_POL_DEL_SP: Unsuccessful UE Policy Delivery related to the invocation of AF
           provisioned Service Parameters.
        - PARTLY_UNSUCC_UE_POL_DEL_SP: Partially unsuccessful UE Policy Delivery related to the
          invocation of AF provisioned Service Parameters.
        - UNSUCCESS_PCF SERVICE AUTHORIZATION: Unsuccessful authorization in the PCF related to the
          invocation of AF provisioned Service Parameters.

    AfNotification:
      description: >
        Notifications upon AF Service Parameter Authorization Update e.g. to
        revoke the authorization, and/or AF subscribed event notification of the
        outcome related to the invocation of service parameter provisioning.
      type: object
      properties:
        subscription:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Link'
        reportEvent:
          $ref: '#/components/schemas/Event'
        authResult:
          $ref: '#/components/schemas/AuthorizationResult'
        gpsis:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
          minItems: 1
        dnn:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
        snssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        eventInfo:
          $ref: '#/components/schemas/EventInfo'
        detEventInfo:
          type: object
          additionalProperties:
            $ref: '#/components/schemas/DetailedEventInfo'
          minProperties: 1
          description: >
            Detailed outcome of the AF service parameter request. The key of the map is the
            attribute "gpsi". It is only applicable if the "reportEvent" attribute has the value
            "PARTLY_UNSUCC_UE_POL_DEL_SP".
      required:
        - subscription
      anyOf:
        - required: [reportEvent]
        - required: [authResult]

    TrafficDescriptorComponents:
      description: Traffic descriptor components for the requested URSP.
      type: object
      properties:
        appDescs:
          type: object
          additionalProperties:
            $ref: 'TS29522_5GLANParameterProvision.yaml#/components/schemas/AppDescriptor'
          minProperties: 1
          description: >
            Describes the operation systems and the corresponding applications for each
            operation systems. The key of map is osId.
        flowDescs:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            Represents a 3-tuple with protocol, server ip and server port for UL/DL
            application traffic. The content of the string has the same encoding as the IPFilterRule
            AVP value as defined in IETF RFC 6733.
        domainDescs:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            FQDN(s) or a regular expression which are used as a domain name matching
            criteria.
        ethFlowDescs:
          type: array
          items:
            $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/EthFlowDescription'
          minItems: 1
          description: >
            Descriptor(s) for destination information of non-IP traffic in which only
            ethernet flow description is defined.
        dnns:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
          minItems: 1
          description: This is matched against the DNN information provided by the application.
        connCaps:
          type: array
          items:
            $ref: '#/components/schemas/ConnectionCapabilities'
          minItems: 1
          description: >
            This is matched against the information provided by a UE application when it
            requests a network connection with certain capabilities.
        opSpecConnCaps:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Bytes'
          minItems: 1
          maxItems: 128
          description: >
            Operator specific connection capabilities.
        pinId:
          type: string
          description: This is matched against a PIN ID for a specific PIN configured in the PEGC.
        connGroupId:
          type: string
          description: >
            This is matched against a Connectivity Group ID for a specific Connectivity Group
            configured in 5G-RG.
      oneOf:
        - required: [pinId]
        - anyOf:
          - required: [appDescs]
          - required: [flowDescs]
          - required: [domainDescs]
          - required: [ethFlowDescs]
          - required: [dnns]
          - required: [connCaps]
          - required: [opSpecConnCaps]

    NetworkDescription:
      description: >
        Represents the description of a PLMN, by the definition of the PLMN ID, the MCC (and
        applicable MNC(s)) or the indication of any PLMN.
      type: object
      properties:
        plmnId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId'
        mcc:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Mcc'
        mncs:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Mnc'
          minItems: 1
          description: Represents the applicable MNC(s) for the indicated MCC.
        anyPlmnInd:
          type: boolean
          description: Indicates any PLMN.
      oneOf:
        - required: [plmnId]
        - required: [mcc]
        - required: [anyPlmnInd]

    AuthorizationResult:
      anyOf:
      - type: string
        enum:
          - AUTH_REVOKED
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.
      description: |
        Represents the NEF notify the AF about the service parameters authorization updates result,
        e.g. to revoke an authorization.
        Possible values are:
        - AUTH_REVOKED: Indicated the service parameters authorization is revoked.

    EventInfo:
      description: Indicates the event information.
      type: object
      properties:
        failureCause:
          $ref: '#/components/schemas/Failure'
        plmnId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnIdNid'

    DetailedEventInfo:
      description: >
        Detailed information about the delivery outcome of service parameter provisioning requests.
      type: object
      properties:
        uePolEventInfos:
          type: array
          items:
            $ref: '#/components/schemas/UePolEventInfo'
          minItems: 1
          description: contains the UE policy event information.
        gpsi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
      required:
        - uePolEventInfos
        - gpsi

    UePolEventInfo:
      description: >
        Event information about the outcome of Service Parameter provisioning requests for the UE
        policy delivery.
      type: object
      properties:
        policyType:
          $ref: '#/components/schemas/UePolPartType'
        outcome:
          $ref: '#/components/schemas/Outcome'
        afReqUrspIds:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            Contains the Unsuccessfully delivery URSP rule Ids that related to the AF provided
            Service parameter provisioning.
      required:
        - policyType

    Failure:
      anyOf:
      - type: string
        enum:
          - UNSPECIFIED
          - UE_NOT_REACHABLE
          - UNKNOWN
          - UE_TEMP_UNREACHABLE
          - DNN_NOT_ALLOWED
          - SNSSAI_NOT_ALLOWED
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.
      description: |
        Represents the failure reason for the unsuccessful result.  
        Possible values are:
        - UNSPECIFIED: Indicates the PCF received the UE sent UE policy delivery service cause #111
          (Protocol error, unspecified) or that the PCF does not authorize the service information
          for unspecified reasons.
        - UE_NOT_REACHABLE: Indicates the PCF received the notification from the AMF that the UE is
          not reachable.
        - UNKNOWN: Indicates unknown reasons upon no response from the UE, e.g. UPDS message type is
          not defined or not implemented by the UE, or not compatible with the UPDS state, in which
          the UE shall ignore the UPDS message.
        - UE_TEMP_UNREACHABLE: Indicates the PCF received the notification from the AMF that the UE
          is not reachable but the PCF will retry again. 
        - DNN_NOT ALLOWED: Indicates that the DNN is not authorized for the user.
        - SNSSAI_NOT_ALLOWED: Indicates that the SNSSAI is not authorized for the user.

    ConnectionCapabilities:
      anyOf:
      - type: string
        enum:
          - IMS
          - MMS
          - SUPL
          - INTERNET
          - IOT_DELAY_TOLERANT
          - IOT_NON_DELAY_TOLERANT
          - DL_STREAMING
          - UL_STREAMING
          - VEHIC_COMM
          - REAL_TIME_INTERACTIVE
          - UNIFIED_COMM
          - BACKGROUND
          - MISS_CRITICAL
          - TIME_CRITICAL
          - LOW_LAT_LOSS_TOL_UNACK
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration and is not used to encode
          content defined in the present version of this API.
      description: |
        Represents the information provided by a UE application when it requests a network
        connection with certain capabilities.  
        Possible values are:
          - IMS: Indicates the connection capability to support IMS service.
          - MMS: Indicates the connection capability to support MMS service.
          - SUPL: Indicates the connection capability to support SUPL service.
          - INTERNET: Indicates the connection capability to support Internet service.
          - IOT_DELAY_TOLERANT: Indicates the connection capability to support IoT
            delay-tolerant services.
          - IOT_NON_DELAY_TOLERANT: Indicates the connection capability to support IoT
            non-delay-tolerant services.
          - DL_STREAMING: Indicates the connection capability to support downlink streaming
            services.
          - UL_STREAMING: Indicates the connection capability to support uplink streaming services
          - VEHIC_COMM: Indicates the connection capability to support vehicular communication
            services.
          - REAL_TIME_INTERACTIVE: Indicates the connection capability to support real time
            interactive services.
          - UNIFIED_COMM: Indicates the connection capability to support unified communication
            services.
          - BACKGROUND: Indicates the connection capability to support background services.
          - MISS_CRITICAL: Indicates the connection capability to support mission critical services.
          - TIME_CRITICAL: Indicates the connection capability to support time critical services.
          - LOW_LAT_LOSS_TOL_UNACK: Indicates the connection capability to support low latency
            loss tolerant communications in un-acknowledged mode.

    UePolPartType:
      anyOf:
      - type: string
        enum:
          - URSP
          - V2XP
          - A2XP
          - PROSEP
          - RSLPP
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.
      description: |
        Represents the a UE policy part type.
        Possible values are:
          - URSP: Represents a URSP UE policy part type.
          - V2XP: Represents a V2X UE policy part type.
          - A2XP: Represents a A2X UE policy part type.
          - PROSEP: Represents a ProSe UE policy part type.
          - RSLPP: Represents a RSLPP UE policy part type.

    Outcome:
      anyOf:
      - type: string
        enum:
          - REJECTED_BY_UE
          - NOT_AUTHORIZED_BY_PCF
      - type: string
        description: >
          This string provides forward-compatibility with future extensions to the enumeration
          and is not used to encode content defined in the present version of this API.
      description: |
        Represents detailed outcome of the requests for AF provisioned service parameters.
        Possible values are:
          - REJECTED_BY_UE: The requested parameters were not successfully installed on the UE.
          - NOT_AUTHORIZED_BY_PCF: The requested parameters were not authorized by the PCF.
