openapi: 3.0.0
info:
  version: 1.2.0-alpha.3
  title: Nnwdaf_AnalyticsInfo
  description: |
    Nnwdaf_AnalyticsInfo Service API.
    © 2021, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
    All rights reserved.
externalDocs:
  description: 3GPP TS 29.520 V17.3.0; 5G System; Network Data Analytics Services.
  url: 'http://www.3gpp.org/ftp/Specs/archive/29_series/29.520/'
security:
  - {}
  - oAuth2ClientCredentials:
    - nnwdaf-analyticsinfo
servers:
  - url: '{apiRoot}/nnwdaf-analyticsinfo/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in subclause 4.4 of 3GPP TS 29.501.
paths:
  /analytics:
    get:
      summary: Read a NWDAF Analytics
      operationId: GetNWDAFAnalytics
      tags:
        - NWDAF Analytics (Document)
      parameters:
        - name: event-id
          in: query
          description: Identify the analytics.
          required: true
          schema:
            $ref: '#/components/schemas/EventId'
        - name: ana-req
          in: query
          description: Identifies the analytics reporting requirement information.
          required: false
          content:
            application/json:
              schema:
                $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/EventReportingRequirement'
        - name: event-filter
          in: query
          description: Identify the analytics.
          required: false
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventFilter'
        - name: supported-features
          in: query
          description: To filter irrelevant responses related to unsupported features
          schema:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
        - name: tgt-ue
          in: query
          description: Identify the target UE information.
          required: false
          content:
            application/json:
              schema:
                $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/TargetUeInformation'
      responses:
        '200':
          description: Containing the analytics with parameters as relevant for the requesting NF service consumer.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AnalyticsData'
        '204':
          description: No Content (The request NWDAF Analytics data does not exist)
        '400':
          $ref: 'TS29571_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29571_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29571_CommonData.yaml#/components/responses/403'
        '404':
          description: Indicates that the NWDAF Analytics resource does not exist.
          content:
            application/problem+json:
              schema:
                $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
        '406':
          $ref: 'TS29571_CommonData.yaml#/components/responses/406'
        '414':
          $ref: 'TS29571_CommonData.yaml#/components/responses/414'
        '429':
          $ref: 'TS29571_CommonData.yaml#/components/responses/429'
        '500':
          description: The request is rejected by the NWDAF and more details (not only the ProblemDetails) are returned.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsAnalyticsInfoRequest'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'
components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: '{nrfApiRoot}/oauth2/token'
          scopes:
            nnwdaf-analyticsinfo: Access to the Nnwdaf_AnalyticsInfo API
  schemas:
    AnalyticsData:
      description: Represents the description of analytics with parameters as relevant for the requesting NF service consumer.
      type: object
      properties:
        start:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        expiry:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        timeStampGen:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        sliceLoadLevelInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/SliceLoadLevelInformation'
          minItems: 1
          description: The slices and their load level information.
        nsiLoadLevelInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/NsiLoadLevelInfo'
          minItems: 1
        nfLoadLevelInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/NfLoadLevelInformation'
          minItems: 1
        nwPerfs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/NetworkPerfInfo'
          minItems: 1
        svcExps:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/ServiceExperienceInfo'
          minItems: 1
        qosSustainInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/QosSustainabilityInfo'
          minItems: 1
        ueMobs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/UeMobility'
          minItems: 1
        ueComms:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/UeCommunication'
          minItems: 1
        userDataCongInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/UserDataCongestionInfo'
          minItems: 1
        abnorBehavrs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/AbnormalBehaviour'
          minItems: 1
        suppFeat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
    EventFilter:
      description: Represents the event filters used to identify the requested analytics.
      type: object
      properties:
        anySlice:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/AnySlice'
        snssais:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Snssai'
          minItems: 1
          description: Identification(s) of network slice to which the subscription belongs.
        appIds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId'
          minItems: 1
        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
        networkArea:
          $ref: 'TS29554_Npcf_BDTPolicyControl.yaml#/components/schemas/NetworkAreaInfo'
        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
        nfTypes:
          type: array
          items:
            $ref: 'TS29510_Nnrf_NFManagement.yaml#/components/schemas/NFType'
          minItems: 1
        nsiIdInfos:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/NsiIdInfo'
          minItems: 1
        qosRequ:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/QosRequirement'
        nwPerfTypes:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/NetworkPerfType'
          minItems: 1
        bwRequs:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/BwRequirement'
          minItems: 1
        excepIds:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/ExceptionId'
          minItems: 1
        exptAnaType:
          $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/ExpectedAnalyticsType'
        exptUeBehav:
          $ref: 'TS29503_Nudm_SDM.yaml#/components/schemas/ExpectedUeBehaviourData'
      not:
        required: [anySlice, snssais]
    ProblemDetailsAnalyticsInfoRequest:
      description: Extends ProblemDetails to indicate more details why the analytics request is rejected.
      allOf:
        - $ref: 'TS29571_CommonData.yaml#/components/schemas/ProblemDetails'
        - $ref: '#/components/schemas/AdditionInfoAnalyticsInfoRequest'
    AdditionInfoAnalyticsInfoRequest:
      description: Indicates additional information why the analytics request is rejected.
      type: object
      properties:
        rvWaitTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec'
    EventId:
      anyOf:
      - type: string
        enum:
          - LOAD_LEVEL_INFORMATION
          - NETWORK_PERFORMANCE
          - NF_LOAD
          - SERVICE_EXPERIENCE
          - UE_MOBILITY
          - UE_COMMUNICATION
          - QOS_SUSTAINABILITY
          - ABNORMAL_BEHAVIOUR
          - USER_DATA_CONGESTION
          - NSI_LOAD_LEVEL
      - 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: >
        Possible values are
        - LOAD_LEVEL_INFORMATION: Represent the analytics of load level information of corresponding network slice.
        - NETWORK_PERFORMANCE: Represent the analytics of network performance information.
        - NF_LOAD: Indicates that the event subscribed is NF Load.
        - SERVICE_EXPERIENCE: Represent the analytics of service experience information of the specific applications.
        - UE_MOBILITY: Represent the analytics of UE mobility.
        - UE_COMMUNICATION: Represent the analytics of UE communication.
        - QOS_SUSTAINABILITY: Represent the analytics of QoS sustainability information in the certain area. 
        - ABNORMAL_BEHAVIOUR: Indicates that the event subscribed is abnormal behaviour information.
        - USER_DATA_CONGESTION: Represent the analytics of the user data congestion in the certain area.
        - NSI_LOAD_LEVEL: Represent the analytics of Network Slice and the optionally associated Network Slice Instance.
