openapi: 3.0.0
info:
  version: 1.2.0
  title: Naf_EventExposure
  description: |
    AF Event Exposure Service.  
    © 2022, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).  
    All rights reserved.

externalDocs:
  description: >
    3GPP TS 29.517 V17.7.0; 5G System; Application Function Event Exposure Service; Stage 3.
  url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.517/

servers:
  - url: '{apiRoot}/naf-eventexposure/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in clause 4.4 of 3GPP TS 29.501
        
security:
  - {}
  - oAuth2ClientCredentials: []


paths:
  /subscriptions:
    post:
      summary: Creates a new Individual Application Event Exposure Subscription resource
      operationId: PostAfEventExposureSubsc
      tags:
        - Application Event Subscription (Collection)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AfEventExposureSubsc'
      responses:
        '201':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AfEventExposureSubsc'
          headers:
            Location:
              description: >
                Contains the URI of the created individual application event subscription resource
              required: true
              schema:
                type: string
        '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':
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29571_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29571_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29571_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29571_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'
      callbacks:
        AfEventExposureNotif:
          '{$request.body#/notifUri}': 
            post:
              requestBody:
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/AfEventExposureNotif'
              responses:
                '204':
                  description: No Content, Notification was successful
                '307':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/307'
                '308':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/308'
                '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':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/404'
                '411':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/411'
                '413':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/413'
                '415':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/415'
                '429':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/429'
                '500':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/500'
                '503':
                  $ref: 'TS29571_CommonData.yaml#/components/responses/503'
                default:
                  $ref: 'TS29571_CommonData.yaml#/components/responses/default'
  /subscriptions/{subscriptionId}:
    get:
      summary: "Reads an existing Individual Application Event Subscription"
      operationId: GetAfEventExposureSubsc
      tags:
        - Individual Application Event Subscription (Document)
      parameters:
        - name: subscriptionId
          in: path
          description: Application Event Subscription ID
          required: true
          schema:
            type: string
        - name: supp-feat
          in: query
          description: Features supported by the NF service consumer
          required: false
          schema:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      responses:
        '200':
          description: OK. Resource representation is returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AfEventExposureSubsc'
        '307':
          $ref: 'TS29571_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29571_CommonData.yaml#/components/responses/308'
        '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':
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '406':
          $ref: 'TS29571_CommonData.yaml#/components/responses/406'
        '429':
          $ref: 'TS29571_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'
    put:
      summary: "Modifies an existing Individual Application Event Subscription "
      operationId: PutAfEventExposureSubsc
      tags:
        - Individual Application Event Subscription (Document)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AfEventExposureSubsc'
      parameters:
        - name: subscriptionId
          in: path
          description: Application Event Subscription ID
          required: true
          schema:
            type: string
      responses:
        '200':
          description: OK. Resource was successfully modified and representation is returned
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AfEventExposureSubsc'
        '204':
          description: No Content. Resource was successfully modified
        '307':
          $ref: 'TS29571_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29571_CommonData.yaml#/components/responses/308'
        '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':
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29571_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29571_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29571_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29571_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'
    delete:
      summary: "Cancels an existing Individual Application Event Subscription "
      operationId: DeleteAfEventExposureSubsc
      tags:
        - Individual Application Event Subscription (Document)
      parameters:
        - name: subscriptionId
          in: path
          description: Application Event Subscription ID
          required: true
          schema:
            type: string
      responses:
        '204':
          description: No Content. Resource was successfully deleted
        '307':
          $ref: 'TS29571_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29571_CommonData.yaml#/components/responses/308'
        '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':
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
        '429':
          $ref: 'TS29571_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29571_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29571_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29571_CommonData.yaml#/components/responses/default'

components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: '{tokenUri}'
          scopes: {}
      description: >
        For trusted AF, the 'naf-eventexposure' shall be used as 'scopes' and
        '{nrfApiRoot}/oauth2/token' shall be used as 'tokenUri'.

  schemas:
    AfEventExposureNotif:
      description: >
        Represents notifications on application event(s) that occurred for an Individual Application
        Event Subscription resource.
      type: object
      properties:
        notifId:
          type: string
        eventNotifs:
          type: array
          items:
            $ref: '#/components/schemas/AfEventNotification'
          minItems: 1
      required:
        - notifId
        - eventNotifs
    AfEventExposureSubsc:
      description: Represents an Individual Application Event Subscription resource.
      type: object
      properties:
        dataAccProfId:
          type: string
        eventsSubs:
          type: array
          items:
            $ref: '#/components/schemas/EventsSubs'
          minItems: 1
        eventsRepInfo:
          $ref: 'TS29523_Npcf_EventExposure.yaml#/components/schemas/ReportingInformation'
        notifUri:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        notifId:
          type: string
        eventNotifs:
          type: array
          items:
            $ref: '#/components/schemas/AfEventNotification'
          minItems: 1
        suppFeat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - eventsSubs
        - eventsRepInfo
        - notifId
        - notifUri
    AfEventNotification:
      description: Represents information related to an event to be reported.
      type: object
      properties:
        event:
          $ref: '#/components/schemas/AfEvent'
        timeStamp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        svcExprcInfos:
          type: array
          items:
            $ref: '#/components/schemas/ServiceExperienceInfoPerApp'
          minItems: 1
        ueMobilityInfos:
          type: array
          items:
            $ref: '#/components/schemas/UeMobilityCollection'
          minItems: 1
        ueCommInfos:
          type: array
          items:
            $ref: '#/components/schemas/UeCommunicationCollection'
          minItems: 1
        excepInfos:
          type: array
          items:
            $ref: '#/components/schemas/ExceptionInfo'
          minItems: 1
        congestionInfos:
          type: array
          items:
            $ref: '#/components/schemas/UserDataCongestionCollection'
          minItems: 1
        perfDataInfos:
          type: array
          items:
            $ref: '#/components/schemas/PerformanceDataCollection'
          minItems: 1
        dispersionInfos:
          type: array
          items:
            $ref: '#/components/schemas/DispersionCollection'
          minItems: 1
        collBhvrInfs:
          type: array
          items:
            $ref: '#/components/schemas/CollectiveBehaviourInfo'
          minItems: 1
        msQoeMetrInfos:
          type: array
          items:
            $ref: '#/components/schemas/MsQoeMetricsCollection'
          minItems: 1
        msConsumpInfos:
          type: array
          items:
            $ref: '#/components/schemas/MsConsumptionCollection'
          minItems: 1
        msNetAssInvInfos:
          type: array
          items:
            $ref: '#/components/schemas/MsNetAssInvocationCollection'
          minItems: 1
        msDynPlyInvInfos:
          type: array
          items:
            $ref: '#/components/schemas/MsDynPolicyInvocationCollection'
          minItems: 1
        msAccActInfos:
          type: array
          items:
            $ref: '#/components/schemas/MSAccessActivityCollection'
          minItems: 1
      required:
        - event
        - timeStamp
    EventsSubs:
      description: Represents an event to be subscribed and the related event filter information.
      type: object
      properties:
        event:
          $ref: '#/components/schemas/AfEvent'
        eventFilter:
          $ref: '#/components/schemas/EventFilter'
      required:
        - event
        - eventFilter
    EventFilter:
      description: Represents event filter information for an event.
      type: object
      properties:
        gpsis:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
          minItems: 1
        supis:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi'
          minItems: 1
        exterGroupIds:
          type: array
          items:
            $ref: 'TS29503_Nudm_SDM.yaml#/components/schemas/ExtGroupId'
          minItems: 1
        interGroupIds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/GroupId'
        anyUeInd:
          type: boolean
        appIds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId'
          minItems: 1
        locArea:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G'
        collAttrs:
          type: array
          items:
            $ref: '#/components/schemas/CollectiveBehaviourFilter'
          minItems: 1
    ServiceExperienceInfoPerApp:
      description: Contains service experience information associated with an application.
      type: object
      properties:
        appId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId'
        appServerIns:
          $ref: '#/components/schemas/AddrFqdn'
        svcExpPerFlows:
          type: array
          items:
            $ref: '#/components/schemas/ServiceExperienceInfoPerFlow'
          minItems: 1
        gpsis:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
          minItems: 1
        supis:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi'
          minItems: 1
      required:
        - svcExpPerFlows
    ServiceExperienceInfoPerFlow:
      description: Contains service experience information associated with a service flow.
      type: object
      properties:
        svcExprc:
          $ref: '#/components/schemas/SvcExperience'
        timeIntev:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/TimeWindow'
        dnai:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnai'
        ipTrafficFilter:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/FlowInfo'
        ethTrafficFilter:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/EthFlowDescription'
    SvcExperience:
      description: Contains a mean opinion score with the customized range.
      type: object
      properties:
        mos:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Float'
        upperRange:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Float'
        lowerRange:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Float'
    UeMobilityCollection:
      description: Contains UE mobility information associated with an application.
      type: object
      properties:
        gpsi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
        supi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi'
        appId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId'
        ueTrajs:
          type: array
          items:
            $ref: '#/components/schemas/UeTrajectoryCollection'
          minItems: 1
      required:
        - appId
        - ueTrajs
    UeCommunicationCollection:
      description: Contains UE communication information associated with an application.
      type: object
      properties:
        gpsi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
        supi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi'
        exterGroupId:
          $ref: 'TS29503_Nudm_SDM.yaml#/components/schemas/ExtGroupId'
        interGroupId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/GroupId'
        appId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId'
        comms:
          type: array
          items:
            $ref: '#/components/schemas/CommunicationCollection'
          minItems: 1
      required:
        - appId
        - comms
    UeTrajectoryCollection:
      description: Contains UE trajectory information associated with an application.
      type: object
      properties:
        ts:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        locArea:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G'
      required:
        - ts
        - locArea
    CommunicationCollection:
      description: Contains communication information.
      type: object
      properties:
        startTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        endTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        ulVol:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Volume'
        dlVol:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Volume'
      required:
        - startTime
        - endTime
        - ulVol
        - dlVol
    ExceptionInfo:
      description: Represents the exceptions information provided by the AF.
      type: object
      properties:
        ipTrafficFilter:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/FlowInfo'
        ethTrafficFilter:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/EthFlowDescription'
        exceps:
          type: array
          items:
            $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/Exception'
          minItems: 1
      required:
        - exceps
      oneOf:
        - required: [ipTrafficFilter]
        - required: [ethTrafficFilter]
    UserDataCongestionCollection:
      description: Contains User Data Congestion Analytics related information collection.
      type: object
      properties:
        appId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId'
        ipTrafficFilter:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/FlowInfo'
        timeInterv:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/TimeWindow'
        thrputUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        thrputDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        thrputPkUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        thrputPkDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
      oneOf:
        - required: [appId]
        - required: [ipTrafficFilter]
    PerformanceDataCollection:
      description: Contains Performance Data Analytics related information collection.
      type: object
      properties:
        appId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId'
        ueIpAddr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/IpAddr'
        ipTrafficFilter:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/FlowInfo'
        ueLoc:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G'
        appLocs:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnai'
          minItems: 1
        asAddr:
          $ref: '#/components/schemas/AddrFqdn'
        perfData:
          $ref: '#/components/schemas/PerformanceData'
        timeStamp:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
      required:
        - perfData
        - timeStamp
    PerformanceData:
      description: Contains Performance Data.
      type: object
      properties:
        pdb:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketDelBudget'
        plr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/PacketLossRate'
        thrputUl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        thrputDl:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
    AddrFqdn:
      description: IP address and/or FQDN.
      type: object
      properties:
        ipAddr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/IpAddr'
        fqdn:
          type: string
          description: Indicates an FQDN.
    DispersionCollection:
      description: Contains the dispersion information collected for an AF.
      type: object
      properties:
        gpsi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
        supi:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi'
        ueAddr:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/IpAddr'
        dataUsage:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/UsageThreshold'
        flowDesp:
          $ref: 'TS29514_Npcf_PolicyAuthorization.yaml#/components/schemas/FlowDescription'
        appId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId'
        dnais:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Dnai'
          minItems: 1
        appDur:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec'
      required:
        - dataUsage
      oneOf:
        - required: [gpsi]
        - required: [supi]
        - required: [ueAddr]
    CollectiveBehaviourFilter:
      description: Contains the collective behaviour filter information to be collected from UE.
      type: object
      properties:
        type:
          $ref: '#/components/schemas/CollectiveBehaviourFilterType'
        value:
          type: string
          description: Value of the parameter type as in the type attribute.
        listOfUeInd:
          type: boolean
          description: >
            Indicates whether request list of UE IDs that fulfill a collective behaviour within the
            area of interest. This attribute shall set to "true" if request the list of UE IDs,
            otherwise, set to "false". May only be present and sets to "true" if "AfEvent" sets to
            "COLLECTIVE_BEHAVIOUR".
      required:
        - type
        - value
    CollectiveBehaviourInfo:
      description: Contains the collective behaviour information to be reported to the subscriber.
      type: object
      properties:
        colAttrib:
          type: array
          items:
            $ref: '#/components/schemas/PerUeAttribute'
          minItems: 1
        noOfUes:
          type: integer
          description: Total number of UEs that fulfil a collective within the area of interest.
        appIds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/ApplicationId'
          minItems: 1
        extUeIds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Gpsi'
          minItems: 1
        ueIds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Supi'
          minItems: 1
      required:
        - colAttrib
      oneOf:
        - required: [extUeIds]
        - required: [ueIds]
    PerUeAttribute:
      description: UE application data collected per UE.
      type: object
      properties:
        ueDest:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G'
        route:
          type: string
        avgSpeed:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/BitRate'
        timeOfArrival:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
    MsQoeMetricsCollection:
      description: >
        Contains the Media Streaming QoE metrics information collected for an UE Application via AF.
      type: object
      properties:
        msQoeMetrics:
          type: array
          items:
            type: string
          minItems: 1
      required:
        - msQoeMetrics
    MsConsumptionCollection:
      description: >
        Contains the Media Streaming Consumption information collected for an UE Application via AF.
      type: object
      properties:
        msConsumps:
          type: array
          items:
            type: string
            description: >
              Represents the Media Streaming Consumption reports with formatting as specified in 
              clause 11.3.3 of 3GPP TS 26.512 [30], if required for Media Streaming UE Application.
          minItems: 1
      required:
        - msConsumps
    MsNetAssInvocationCollection:
      description: >
        Contains the Media Streaming Network Assistance invocation collected for an UE Application 
        via AF.
      type: object
      properties:
        msNetAssInvocs:
          type: array
          items:
            $ref: 'TS26512_M5_NetworkAssistance.yaml#/components/schemas/NetworkAssistanceSession'
          minItems: 1
      required:
        - msNetAssInvocs
    MsDynPolicyInvocationCollection:
      description: >
        Contains the Media Streaming Dynamic Policy invocation collected for an UE
        Application via AF.
      type: object
      properties:
        msDynPlyInvocs:
          type: array
          items:
            $ref: 'TS26512_M5_DynamicPolicies.yaml#/components/schemas/DynamicPolicy'
          minItems: 1
      required:
        - msDynPlyInvocs
    MSAccessActivityCollection:
      description: Contains Media Streaming access activity collected for an UE Application via AF.
      type: object
      properties:
        msAccActs:
          type: array
          items:
            $ref: 'TS26512_R4_DataReporting.yaml#/components/schemas/MediaStreamingAccessRecord'
          minItems: 1
      required:
        - msAccActs

# Simple data types and Enumerations

    AfEvent:
      description: Represents Application Events.
      anyOf:
      - type: string
        enum:
          - SVC_EXPERIENCE
          - UE_MOBILITY
          - UE_COMM
          - EXCEPTIONS
          - USER_DATA_CONGESTION
          - PERF_DATA
          - DISPERSION
          - COLLECTIVE_BEHAVIOUR
          - MS_QOE_METRICS
          - MS_CONSUMPTION
          - MS_NET_ASSIST_INVOCATION
          - MS_DYN_POLICY_INVOCATION
          - MS_ACCESS_ACTIVITY
      - 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.
    CollectiveBehaviourFilterType:
      description: Represents collective behaviour parameter type.
      anyOf:
      - type: string
        enum:
          - COLLECTIVE_ATTRIBUTE
          - DATA_PROCESSING
      - 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.
