3GPP TS 29.522 AM Influence API

AM Influence API. An OpenAPI 3.0.0 document with 2 path(s), API version 1.2.1, 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-aminfluence.yml Raw ↑
openapi: 3.0.0

info:
  title: AMInfluence
  version: 1.2.1
  description: |
    AMInfluence API Service.  
    © 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/

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

security:
  - {}
  - oAuth2ClientCredentials: []

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.
      tags:
        - AM Influence Subscription
      responses:
        '200':
          description: OK (Successful get all of the active subscriptions for the AF). 
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AmInfluSub'
        '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: Create a new subscription to AM influence.
      operationId: CreateAMInfluenceSubcription
      tags:
        - AM Influence Subscription
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmInfluSub'
      responses:
        '201':
          description: Create a new Individual AM Influence Subscription resource.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AmInfluSub'
          headers:
            Location:
              description: >
                Contains the URI of the newly created resource, according to the structure 
                {apiRoot}/3gpp-am-influence/v1/{afId}/subscriptions/{subscriptionId}.
              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:
                required: true
                content:
                  application/json:
                    schema:
                      type: array
                      items:
                        $ref: '#/components/schemas/AmInfluEventNotif'
                      minItems: 1
              responses:
                '204':
                  description: No Content, Notification was succesfull
                '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 subscription identified by the subscriptionId.
      tags:
        - Individual AM Influence Subscription
      responses:
        '200':
          description: OK (Successful get the active subscription)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AmInfluSub'
        '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: Update/Replace an existing subscription resource.
      tags:
        - Individual AM Influence Subscription
      requestBody:
        description: Parameters to update/replace the existing subscription.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmInfluSub'
      responses:
        '200':
          description: OK (Successful update of the subscription)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AmInfluSub'
        '204':
          description: No Content
        '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: Update/Replace an existing subscription resource.
      tags:
        - Individual AM Influence Subscription
      requestBody:
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/AmInfluSubPatch'
      responses:
        '200':
          description: OK. The subscription was modified successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AmInfluSub'
        '204':
          description: No Content
        '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: Delete an existing subscription.
      tags:
        - Individual AM Influence 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:
    AmInfluSub:
      description: Represents an AM influence subscription.
      type: object
      properties:
        afTransId:
          type: string
        gpsi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
        externalGroupId:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/ExternalGroupId'
        anyUeInd:
          type: boolean
          description: >
            Identifies whether the AF request applies to any UE. This attribute shall
            set to "true" if applicable for any UE, otherwise, set to "false".
        roamUePlmnIds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId'
          minItems: 1
          description: >
            Indicates a list of PLMNs representing the home PLMN for the inbound roaming
            UEs.
        dnnSnssaiInfos:
          type: array
          items:
            $ref: '#/components/schemas/DnnSnssaiInformation'
          minItems: 1
          description: Each of the element identifies a (DNN, S-NSSAI) combination.
        afAppIds:
          type: array
          items:
            type: string
          minItems: 1
          description: Each of the element identifies an application.
        highThruInd:
          type: boolean
        geoAreas:
          type: array
          items:
            $ref: 'TS29522_AMPolicyAuthorization.yaml#/components/schemas/GeographicalArea'
          minItems: 1
          description: >
            Contains the geographical area(s) constituting the AF-requested service area
            coverage.
        policyDuration:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/DurationSec'
        sliceReplReqInfo:
          $ref: 'TS29522_AMPolicyAuthorization.yaml#/components/schemas/SliceReplReqInfo'
        self:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Link'
        subscribedEvents:
          type: array
          items:
            $ref: '#/components/schemas/AmInfluEvent'
          minItems: 1
          description: Indicates one or more AM influence related events.
        notificationDestination:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Link'
        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'
        suppFeat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - afTransId
      anyOf:
        - required: [highThruInd]
        - required: [geoAreas]
        - required: [sliceReplReqInfo]
      oneOf:
        - required: [gpsi]
        - required: [externalGroupId]
        - required: [anyUeInd]
        - required: [roamUePlmnIds]

    AmInfluSubPatch:
      description: >
        Represents parameters to request the modification of an AM influence subscription resource.
      type: object
      properties:
        highThruInd:
          type: boolean
          nullable: true
        geoAreas:
          type: array
          items:
            $ref: 'TS29522_AMPolicyAuthorization.yaml#/components/schemas/GeographicalArea'
          minItems: 1
          description: >
            Contains the geographical area(s) constituting the AF-requested service area
            coverage.
          nullable: true
        policyDuration:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/DurationSecRm'
        sliceReplReqInfo:
          $ref: '#/components/schemas/SliceReplReqInfoRm'
        dnnSnssaiInfos:
          type: array
          items:
            $ref: '#/components/schemas/DnnSnssaiInformation'
          minItems: 1
          nullable: true
          description: Each of the element identifies a (DNN, S-NSSAI) combination.
        afAppIds:
          type: array
          items:
            type: string
          minItems: 1
          nullable: true
          description: Each of the element identifies an application.
        subscribedEvents:
          type: array
          items:
            $ref: '#/components/schemas/AmInfluEvent'
          minItems: 1
          nullable: true
          description: Indicates one or more AM influence related events.
        notificationDestination:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/LinkRm'

    AmInfluEventNotif:
      description: Represents an AM influence event notification.
      type: object
      properties:
        afTransId:
          type: string
        event:
            $ref: '#/components/schemas/AmInfluEvent'
        gpsis:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
          minItems: 1
        geoAreas:
          type: array
          items:
            $ref: 'TS29522_AMPolicyAuthorization.yaml#/components/schemas/GeographicalArea'
          minItems: 1
          description: >
            Contains the geographical area(s) constituting the allowed service area coverage
            by the network.
        sliceReplOut:
          $ref: 'TS29534_Npcf_AMPolicyAuthorization.yaml#/components/schemas/SliceReplOutcomeInfo'
      required:
        - event
        - afTransId

    DnnSnssaiInformation:
      description: Represents a (DNN, SNSSAI) combination.
      type: object
      properties:
        dnn:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
        snssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'

    SliceReplReqInfoRm:
      description: >
        Represents the same as the SliceReplReqInfo data type but with the OpenAPI nullable property
        set to true.
      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
      nullable: true
      oneOf:
        - required: [snssai, altSnssai]
        - required: [afServId, altAfServId]

# ENUMERATIONS DATA TYPES
#
    AmInfluEvent:
      anyOf:
        - type: string
          enum:
            - SERVICE_AREA_COVRG_OUTCOME
            - SLICE_REPLACE_OUTCOME
        - 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 NEF notification event to the AF.  
        Possible values are:
        - SERVICE_AREA_COVRG_OUTCOME: Indicates that the AM Influence event is the Service Area
          Coverage outcome.
        - SLICE_REPLACE_OUTCOME: Indicates the AM Influence event is the notification of the AF
          requested Network Slice Replacement outcome.