3GPP TS 29.522 AM Policy Authorization API

API for AM policy authorization. An OpenAPI 3.0.0 document with 3 path(s), API version 1.2.0, published verbatim by 3GPP in 3GPP TS 29.522 as part of the 5G NEF Northbound (Network Exposure) suite and mirrored in the public 3GPP Forge GitLab repository.

OpenAPI Specification

3gpp-ts29522-ampolicyauthorization.yml Raw ↑
openapi: 3.0.0
info:
  title: 3gpp-am-policyauthorization
  version: 1.2.0
  description: |
    API for AM policy authorization.  
    © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).  
    All rights reserved.
externalDocs:
  description: >
    3GPP TS 29.522 V19.5.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-am-policyauthorization/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in clause 5.2.4 of 3GPP TS 29.122.
paths:
  /{afId}/app-am-contexts:
    post:
      summary: Creates a new Individual application AM Context resource
      operationId: PostAppAmContexts
      tags:
        - Application AM Contexts
      parameters:
        - name: afId
          in: path
          description: Identifier of the AF
          required: true
          schema:
            type: string
      requestBody:
        description: new resource creation
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AppAmContextExpData'
      responses:
        '201':
          description: Created (Successful creation)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppAmContextExpRespData'
          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:
        amEventNotification:
          '{$request.body#/evSubscs/eventNotifUri}':
            post:
              requestBody:
                description: Notification of an event occurrence.
                required: true
                content:
                  application/json:
                    schema:
                      $ref: 'TS29534_Npcf_AMPolicyAuthorization.yaml#/components/schemas/AmEventsNotification'
              responses:
                '204':
                  description: The receipt of the notification is acknowledged
                '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}/app-am-contexts/{appAmContextId}:
    get:
      summary: read an existing Individual application AM context
      operationId: GetAppAmContext
      tags:
        - Individual Application AM Context
      parameters:
        - name: afId
          in: path
          description: Identifier of the AF
          required: true
          schema:
            type: string
        - name: appAmContextId
          in: path
          description: Identifier of the Individual application AM context
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK (A representation of the resource is successfully returned)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppAmContextExpData'
        '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'

    patch:
      summary: partial modifies an existing Individual application AM context
      operationId: ModAppAmContext
      tags:
        - Individual Application AM Context
      parameters:
        - name: afId
          in: path
          description: Identifier of the AF
          required: true
          schema:
            type: string
        - name: appAmContextId
          in: path
          description: Identifier of the application AM context resource
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/AppAmContextExpUpdateData'
      responses:
        '200':
          description: >
            successful modification of the resource and a representation of that
            resource is returned. If a subscribed event is matched, the event
            notification is also included in the response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AppAmContextExpRespData'
        '204':
          description: The successful modification
        '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 existing Individual Application AM Context
      operationId: DeleteAppAmContext
      tags:
        - Individual Application AM Context
      parameters:
        - name: afId
          in: path
          description: Identifier of the AF
          required: true
          schema:
            type: string
        - name: appAmContextId
          in: path
          description: string identifying the Individual aaplication AM context resource
          required: true
          schema:
            type: string
      responses:
        '204':
          description: The deletion is confirmed without returning additional data.
        '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}/app-am-contexts/{appAmContextId}/events-subscription:
    put:
      summary: creates or modifies an AM Policy Events Subscription sub-resource.
      operationId: UpdateAmEventsSubsc
      tags:
        - AM Policy Events Subscription
      parameters:
        - name: afId
          in: path
          description: Identifier of the AF
          required: true
          schema:
            type: string
        - name: appAmContextId
          in: path
          description: string identifying the AM Policy Events Subscription subresource
          required: true
          schema:
            type: string
      requestBody:
        description: >
          Creation or modification of an application AM Policy Events Subscription sub-resource.
        required: true
        content:
          application/json:
            schema:
              $ref: 'TS29534_Npcf_AMPolicyAuthorization.yaml#/components/schemas/AmEventsSubscData'
      responses:
        '201':
          description: >
            The creation of the application AM Policy Events Subscription sub-resource
            is confirmed and its representation is returned. If an AM Event is matched,
            the response also includes the notification.
          content:
            application/json:
              schema:
                $ref: 'TS29534_Npcf_AMPolicyAuthorization.yaml#/components/schemas/AmEventsSubscRespData'
          headers:
            Location:
              description: >
                Contains the URI of the created AM Policy Events Subscription
                subresource, according to the structure
                {apiRoot}/3gpp-am-policyauthorization/v1/{afId}/app-am-
                contexts/{appAmContextId}/events-subscription}
              required: true
              schema:
                type: string
        '200':
          description: >
            The modification of the AM Policy Events Subscription subresource is confirmed
            and its representation is returned. If an AM Event is matched, the response also
            includes the notification.
          content:
            application/json:
              schema:
                $ref: 'TS29534_Npcf_AMPolicyAuthorization.yaml#/components/schemas/AmEventsSubscRespData'
        '204':
          description: >
            The modification of the AM Policy Events Subscription subresource is confirmed
            without returning additional data.
        '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'
      callbacks:
        amEventNotification:
          '{$request.body#/evSubscs/eventNotifUri}':
            post:
              requestBody:
                description: Contains the information for the notification of an event occurrence.
                required: true
                content:
                  application/json:
                    schema:
                      $ref: 'TS29534_Npcf_AMPolicyAuthorization.yaml#/components/schemas/AmEventsNotification'
              responses:
                '204':
                  description: The receipt of the notification is acknowledged.
                '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 the AM Policy Events Subscription sub-resource
      operationId: DeleteAmEventsSubsc
      tags:
        - AM Policy Events Subscription
      parameters:
        - name: afId
          in: path
          description: Identifier of the AF
          required: true
          schema:
            type: string
        - name: appAmContextId
          in: path
          description: string identifying the Individual Application AM Context resource.
          required: true
          schema:
            type: string
      responses:
        '204':
          description: >
            The deletion of the of the AM Policy Events Subscription subresource
            is confirmed without returning additional data.
        '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: 
    AppAmContextExpData:
      description: Represents an Individual application AM context exposure resource.
      type: object
      properties:
        self:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Link'
        evSubscs:
          $ref: 'TS29534_Npcf_AMPolicyAuthorization.yaml#/components/schemas/AmEventsSubscData'
        gpsi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
        highThruInd:
          type: boolean
        covReqs:
          type: array
          items:
            $ref: '#/components/schemas/GeographicalArea'
          minItems: 1
          nullable: true
        policyDuration:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/DurationSecRm'
        sliceReplReq:
          $ref: '#/components/schemas/SliceReplReq'
        suppFeat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
        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'
      required:
        - gpsi
      anyOf:
        - required: [highThruInd]
        - required: [covReqs]
        - required: [sliceReplReq]

    AppAmContextExpUpdateData:
      description: >
        Contains the modification(s) to be applied to the Individual application
        AM context exposure resource.
      type: object
      properties:
        evSubscs:
          $ref: 'TS29534_Npcf_AMPolicyAuthorization.yaml#/components/schemas/AmEventsSubscDataRm'
        highThruInd:
          type: boolean
        covReqs:
          type: array
          items:
            $ref: '#/components/schemas/GeographicalArea'
          minItems: 1
        policyDuration:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/DurationSecRm'
        sliceReplReq:
          $ref: '#/components/schemas/SliceReplReq'

    GeographicalArea:
      description: Contains geographical area information (e.g.a civic address or shapes).
      type: object
      properties:
        civicAddress:
          $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/CivicAddress'
        shapes:
          $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/GeographicArea'

    AppAmContextExpRespData:
      description: >
        It represents a response to a modification or creation request of an Individual
        Application AM resource. It may contain the notification of the already met events
      anyOf:
        - $ref: 'TS29534_Npcf_AMPolicyAuthorization.yaml#/components/schemas/AppAmContextData'
        - $ref: 'TS29534_Npcf_AMPolicyAuthorization.yaml#/components/schemas/AmEventsNotification'

    SliceReplReqInfo:
      description: >
        Represents the AF requested Network Slice Replacement requirements information.
      type: object
      properties:
        snssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        altSnssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        afServId:
          type: string
        altAfServId:
          type: string
      oneOf:
        - required: [snssai, altSnssai]
        - required: [afServId, altAfServId]

    SliceReplReq:
      description: >
        Represents the requested Network Slice Replacement requirements.
      type: object
      properties:
        type:
          $ref: '#/components/schemas/SliceReplType'
        afSliceReplReq:
          $ref: '#/components/schemas/SliceReplReqInfo'
      required:
        - type


#
# ENUMERATIONS
#

    SliceReplType:
      anyOf:
        - type: string
          enum:
          - INITIATE_AF_REQ_SLICE_REP
          - TERMINATE_AF_REQ_SLICE_REP
        - type: string
          description: >
            This string provides forward-compatibility with future extensions to the enumeration but
            is not used to encode content defined in the present version of this API.
      description: |
        Represents the type of the requested Network Slice Replacement.
        Possible values are:
        - INITIATE_AF_REQ_SLICE_REP: Indicates that the type of the requested Network Slice
          Replacement is the initiation of an AF requested Network Slice Replacement.
        - TERMINATE_AF_REQ_SLICE_REP: Indicates that the type of the requested Network Slice
          Replacement is the termination of a previously requested Network Slice Replacement from
          the AF.