3GPP TS 29.522 Analytics Exposure API

API for Analytics Exposure. An OpenAPI 3.0.0 document with 3 path(s), API version 1.3.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-analyticsexposure.yml Raw ↑
openapi: 3.0.0

info:
  title: 3gpp-analyticsexposure
  version: 1.3.1
  description: |
    API for Analytics Exposure.  
    © 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-analyticsexposure/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in clause 5.2.4 of 3GPP TS 29.122.

paths:
  /{afId}/subscriptions:
    get:
      summary: read all of the active subscriptions for the AF
      operationId: ReadAllSubscriptions
      tags:
        - Analytics Exposure Subscriptions
      parameters:
        - name: afId
          in: path
          description: Identifier of the AF
          required: true
          schema:
            type: string
        - name: supp-feat
          in: query
          description: Contains the list of supported features.
          required: false
          schema:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      responses:
        '200':
          description: OK (Successful get all of the active subscriptions for the AF)
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AnalyticsExposureSubsc'
                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: CreateNewSubscription
      tags:
        - Analytics Exposure Subscriptions
      parameters:
        - name: afId
          in: path
          description: Identifier of the AF
          required: true
          schema:
            type: string
      requestBody:
        description: new subscription creation
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnalyticsExposureSubsc'
      callbacks:
        notification:
          '{$request.body#/notifUri}':
            post:
              requestBody:  # contents of the callback message
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/AnalyticsEventNotification'
              responses:
                '204':
                  description: No Content (successful notification)
                '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'
      responses:
        '201':
          description: Created (Successful creation)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsExposureSubsc'
          headers:
            Location:
              description: Contains the URI of the newly created resource.
              required: true
              schema:
                type: string
        '204':
          description: >
            Successful case. The resource has been successfully created and no additional
            content is to be sent in the response message.
        '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}:
    get:
      summary: read an active subscription for the AF and the subscription Id
      operationId: ReadAnSubscription
      tags:
        - Individual Analytics Exposure Subscription
      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
        - name: supp-feat
          in: query
          description: Contains the list of supported features.
          required: false
          schema:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      responses:
        '200':
          description: OK (Successful get the active subscription)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsExposureSubsc'
        '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 Analytics Exposure Subscription
      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
      requestBody:
        description: Parameters to update/replace the existing subscription
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnalyticsExposureSubsc'
      responses:
        '200':
          description: OK (Successful deletion of the existing subscription)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsExposureSubsc'
        '204':
          description: >
            Successful case. The resource has been successfully updated and no additional
            content is to be sent in the response message.
        '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 Analytics Exposure Subscription
      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
      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'

  /{afId}/fetch:
    post:
      summary: Fetch analytics information
      operationId: FetchAnalyticsInfo
      tags:
        - AnalyticsExposure API Fetch analytics information
      parameters:
        - name: afId
          in: path
          description: Identifier of the AF
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AnalyticsRequest'
      responses:
        '200':
          description: The requested information was returned successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsData'
        '204':
          description: No Content (The requested Analytics data does not exist)
        '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':
          description: >
            The request is rejected by the NEF and more details (not only the ProblemDetails)
            are returned.
          content:
            application/problem+json:
              schema:
                $ref: 'TS29520_Nnwdaf_AnalyticsInfo.yaml#/components/schemas/ProblemDetailsAnalyticsInfoRequest'
        '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: 
    AnalyticsExposureSubsc:
      description: Represents an analytics exposure subscription.
      type: object
      properties:
        analyEventsSubs:
          type: array
          items:
            $ref: '#/components/schemas/AnalyticsEventSubsc'
          minItems: 1
        analyRepInfo:
          $ref: 'TS29523_Npcf_EventExposure.yaml#/components/schemas/ReportingInformation'
        notifUri:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Uri'
        notifId:
          type: string
        eventNotifis:
          type: array
          items:
            $ref: '#/components/schemas/AnalyticsEventNotif'
          minItems: 1
        failEventReports:
          type: array
          items:
            $ref: '#/components/schemas/AnalyticsFailureEventInfo'
          minItems: 1
        suppFeat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
        self:
          $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'
      required:
        - analyEventsSubs
        - notifUri
        - notifId

    AnalyticsEventNotification:
      description: Represents an analytics event(s) notification.
      type: object
      properties:
        notifId:
          type: string
        analyEventNotifs:
          type: array
          items:
            $ref: '#/components/schemas/AnalyticsEventNotif'
          minItems: 1
        termCause:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/TermCause'
      required:
        - notifId
        - analyEventNotifs

    AnalyticsEventNotif:
      description: Represents an analytics event to be reported.
      type: object
      properties:
        analyEvent:
          $ref: '#/components/schemas/AnalyticsEvent'
        expiry:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime'
        timeStamp:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime'
        failNotifyCode:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/NwdafFailureCode'
        rvWaitTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec'
        ueMobilityInfos:
          type: array
          items:
            $ref: '#/components/schemas/UeMobilityExposure'
          minItems: 1
        ueCommInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/UeCommunication'
          minItems: 1
        abnormalInfos:
          type: array
          items:
            $ref: '#/components/schemas/AbnormalExposure'
          minItems: 1
        congestInfos:
          type: array
          items:
            $ref: '#/components/schemas/CongestInfo'
          minItems: 1
        dataVlTrnsTmIfs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/E2eDataVolTransTimeInfo'
          minItems: 1
        nwPerfInfos:
          type: array
          items:
            $ref: '#/components/schemas/NetworkPerfExposure'
          minItems: 1
        qosSustainInfos:
          type: array
          items:
            $ref: '#/components/schemas/QosSustainabilityExposure'
          minItems: 1
        disperInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/DispersionInfo'
          minItems: 1
        dnPerfInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/DnPerfInfo'
          minItems: 1
        svcExps:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/ServiceExperienceInfo'
          minItems: 1
        movBehavInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/MovBehavInfo'
          minItems: 1
        wlanInfos:
          type: array
          items:
            $ref: '#/components/schemas/WlanPerformInfo'
          minItems: 1
        relProxInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/RelProxInfo'
          minItems: 1
        start:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime'
        timeStampGen:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime'
        locArea:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G'
        pauseInd:
          type: boolean
          description: >
            Pause analytics consumption indication. Set to "true" to indicate the consumer to stop
            the consumption of the analytics. Default value is "false" if omitted.
        resumeInd:
          type: boolean
          description: >
            Resume analytics consumption indication. Set to "true" to indicate the consumer to
            resume the consumption of the analytics. Default value is "false" if omitted.
        accuInfo:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/AccuracyInfo'
        cancelAccuInd:
          type: boolean
          description: >
            Indicates cancelled subscription of the analytics accuracy information.
            Set to "true" indicates the NWDAF cancelled subscription of analytics accuracy
            information as the NWDAF does not support the accuracy checking capability.
            Otherwise set to "false". Default value is "false" if omitted.
        nsiLoadLevelData:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/NsiLoadLevelInfo'
          minItems: 1
        signalStorms:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/SignalStormInfo'
          minItems: 1
      required:
        - analyEvent
        - timeStamp

    AnalyticsEventSubsc:
      description: Represents a subscribed analytics event.
      type: object
      properties:
        analyEvent:
          $ref: '#/components/schemas/AnalyticsEvent'
        analyEventFilter:
          $ref: '#/components/schemas/AnalyticsEventFilterSubsc'
        tgtUe:
          $ref: '#/components/schemas/TargetUeId'
      required:
        - analyEvent

    AnalyticsEventFilterSubsc:
      description: Represents an analytics event filter.
      type: object
      properties:
        nwPerfReqs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/NetworkPerfRequirement'
          minItems: 1
        locArea:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G'
        fineGranAreas:
          type: array
          items:
            $ref: 'TS29522_AMPolicyAuthorization.yaml#/components/schemas/GeographicalArea'
          minItems: 1
          description: Indicates the fine granularity areas to which the subscription applies.
        temporalGranSize:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec'
        spatialGranSizeTa:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        spatialGranSizeCell:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        appIds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId'
          minItems: 1
        dnn:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
        dnns:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnn'
          minItems: 1
        dnais:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnai'
          minItems: 1
        dataVlTrnsTmRqs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/E2eDataVolTransTimeReq'
          minItems: 1
        excepRequs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/Exception'
          minItems: 1
        exptAnaType:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/ExpectedAnalyticsType'
        exptUeBehav:
          $ref: 'TS29503_Nudm_SDM.yaml#/components/schemas/ExpectedUeBehaviourData'
        matchingDir:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/MatchingDirection'
        reptThlds:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/ThresholdLevel'
          minItems: 1
        snssai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
        snssais:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
          minItems: 1
        nsiIdInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/NsiIdInfo'
          minItems: 1
        nsLevelThrds:
          type: object
          additionalProperties:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
          minProperties: 1
          description: >
            Contains the network slice load level related thresholds.
            The key of the map shall be set to the value of the S-NSSAI (among the ones provided
            within the nsiIdInfos attribute to which the provided thresholds within the map value
            apply.
            Each map value shall have a maximum value of 100.
        qosReq:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/QosRequirement'
        qosFlowRetThds:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/RetainabilityThreshold'
          minItems: 1
        ranUeThrouThds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
          minItems: 1
        e2eDelayThds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketDelBudget'
          minItems: 1
        deviations:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
          minItems: 1
        disperReqs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/DispersionRequirement'
          minItems: 1
        listOfAnaSubsets:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/AnalyticsSubset'
          minItems: 1
        dnPerfReqs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/DnPerformanceReq'
          minItems: 1
        bwRequs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/BwRequirement'
          minItems: 1
        ratFreqs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/RatFreqInformation'
          minItems: 1
        appServerAddrs:
          type: array
          items:
            $ref: 'TS29517_Naf_EventExposure.yaml#/components/schemas/AddrFqdn'
          minItems: 1
        wlanReqs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/WlanPerformanceReq'
          minItems: 1
        extraReportReq:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/EventReportingRequirement'
        maxNumOfTopAppUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        maxNumOfTopAppDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        visitedLocAreas:
          type: array
          items:
            $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G'
          minItems: 1
        pduSesInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/PduSessionInfo'
          minItems: 1
        ueCommReqs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/UeCommReq'
          minItems: 1
        userDataConOrderCri:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/UserDataConOrderCrit'
        locGranularity:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/LocInfoGranularity'
        locOrientation:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/LocationOrientation'
        ueMobilityReqs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/UeMobilityReq'
          minItems: 1
        movBehavReqs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/MovBehavReq'
          minItems: 1
        relProxReqs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/RelProxReq'
          minItems: 1
        useCaseCxt:
          type: string
          description: >
            Indicates the context of usage of the analytics. The value and format of this parameter
            are not standardized.
        pauseFlg:
          type: boolean
          description: >
            Pause analytics consumption flag. Set to "true" to indicate the NWDAF to stop sending
            the notifications of analytics. Default value is "false" if omitted.
        resumeFlg:
          type: boolean
          description: >
            Resume analytics consumption flag. Set to "true" to indicate the NWDAF to resume sending
            the notifications of analytics. Default value is "false" if omitted.
        accuReq:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/AccuracyReq'
        feedback:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/AnalyticsFeedbackInfo'
        sigStormReqs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/SignalStormReq'
          minItems: 1
        nfInstanceIds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/NfInstanceId'
          minItems: 1
        nfSetIds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/NfSetId'
          minItems: 1
        lastUeLocs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/TimestampedLocation'
          minItems: 1
          description: Contains the last known location of target UE(s).

    TargetUeId:
      description: Represents the target UE(s) information.
      type: object
      properties:
        anyUeInd:
          type: boolean
        gpsi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
        exterGroupId:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/ExternalGroupId'

    UeMobilityExposure:
      description: Represents a UE mobility information.
      type: object
      properties:
        ts:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime'
        recurringTime:
          $ref: 'TS29122_CpProvisioning.yaml#/components/schemas/ScheduledCommunicationTime'
        duration:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/DurationSec'
        durationVariance:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Float'
        locInfo:
          type: array
          items:
            $ref: '#/components/schemas/UeLocationInfo'
          minItems: 1
        directionInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/DirectionInfo'
          minItems: 1
      required:
        - duration
        - locInfo

    UeLocationInfo:
      description: Represents a UE location information.
      type: object
      properties:
        loc:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G'
        geoLoc:
          $ref: 'TS29522_AMPolicyAuthorization.yaml#/components/schemas/GeographicalArea'
        ratio:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SamplingRatio'
        confidence:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        geoDistrInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/GeoDistributionInfo'
          minItems: 1
      required:
        - loc

    AnalyticsRequest:
      description: Represents the parameters to request to retrieve analytics information.
      type: object
      properties:
        analyEvent:
          $ref: '#/components/schemas/AnalyticsEvent'
        analyEventFilter:
          $ref: '#/components/schemas/AnalyticsEventFilter'
        analyRep:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/EventReportingRequirement'
        tgtUe:
          $ref: '#/components/schemas/TargetUeId'
        suppFeat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - analyEvent
        - suppFeat

    AnalyticsEventFilter:
      description: Represents analytics event filter information.
      type: object
      properties:
        locArea:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G'
        fineGranAreas

# --- truncated at 32 KB (51 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/3gpp/refs/heads/main/openapi/3gpp-ts29522-analyticsexposure.yml