openapi: 3.0.0

info:
  title: SS_Events
  description: |
    API for SEAL Events management.  
    © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).  
    All rights reserved.
  version: "1.3.0-alpha.1"

externalDocs:
  description: >
    3GPP TS 29.549 V19.0.0 Service Enabler Architecture Layer for Verticals (SEAL);
    Application Programming Interface (API) specification; Stage 3.
  url: https://www.3gpp.org/ftp/Specs/archive/29_series/29.549/

security:
  - {}
  - oAuth2ClientCredentials: []

servers:
  - url: '{apiRoot}/ss-events/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in clause 6.5 of 3GPP TS 29.549

paths:
  /subscriptions:
    post:
      description: Creates a new individual SEAL Event Subscription.
      operationId: CreateSealEventSubsc
      tags:
        - SEAL Events Subscriptions (Collection)
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SEALEventSubscription'
      callbacks:
        notificationDestination:
          '{$request.body#/notificationDestination}':
            post:
              requestBody:  # contents of the callback message
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/SEALEventNotification'
              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: SEAL Events subscription resource created successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SEALEventSubscription'
          headers:
            Location:
              description: Contains the URI of the newly created resource.
              required: true
              schema:
                type: string
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29122_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29122_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29122_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'

  /subscriptions/{subscriptionId}:
    delete:
      description: Deletes an individual SEAL Event Subscription.
      operationId: DeleteIndSealEventSubsc
      tags:
        - Individual SEAL Events Subscription (Document)
      parameters:
        - name: subscriptionId
          in: path
          description: Identifier of an individual Events Subscription
          required: true
          schema:
            type: string
      responses:
        '204':
          description: >
            The individual SEAL Events Subscription matching the subscriptionId is deleted.
        '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'
    patch:
      description: Modify an existing SEAL Event Subscription.
      operationId: ModifyIndSealEventSubsc
      tags:
        - Individual SEAL Events Subscription (Document)
      parameters:
        - name: subscriptionId
          in: path
          description: Identifier of an individual Events Subscription
          required: true
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/SEALEventSubscriptionPatch'
      responses:
        '200':
          description: >
            The definition SEAL event subscription is modified successfully and
            a representation of the updated service API is returned in the request body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SEALEventSubscription'
        '204':
          description: No Content. The SEAL Event Subscription is modified successfully.
        '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'
    put:
      description: Replace an existing SEAl event subscription.
      operationId: UpdateIndSealEventSubsc
      tags:
        - Individual SEAL Events Subscription (Document)
      parameters:
        - name: subscriptionId
          in: path
          description: Identifier of an individual Events Subscription
          required: true
          schema:
            type: string
      requestBody:
        description: Individual SEAL events subscription to be replaced.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SEALEventSubscription'
      responses:
        '200':
          description: SEAL Event subscription updated successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SEALEventSubscription'
        '204':
          description: No Content. Individual SEAL event subscription was updated successfully.
        '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'

components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: '{tokenUrl}'
          scopes: {}

  schemas:
    SEALEventSubscription:
      description: Represents an individual SEAL Event Subscription resource.
      type: object
      properties:
        subscriberId:
          type: string
          description: String identifying the subscriber of the event.
        eventSubs:
          type: array
          items:
            $ref: '#/components/schemas/EventSubscription'
          minItems: 1
          description: Subscribed events.
        eventReq:
          $ref: 'TS29523_Npcf_EventExposure.yaml#/components/schemas/ReportingInformation'
        notificationDestination:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Uri'
        requestTestNotification:
          type: boolean
          description: >
            Set to true by Subscriber to request the SEAL server to send a test notification.
            Set to false or omitted otherwise.
        websockNotifConfig:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/WebsockNotifConfig'
        eventDetails:
          type: array
          items:
            $ref: '#/components/schemas/SEALEventDetail'
          minItems: 1
        suppFeat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - subscriberId
        - eventSubs
        - eventReq
        - notificationDestination

    SEALEventSubscriptionPatch:
      description: Represents the partial update of individual SEAL Event Subscription resource.
      type: object
      properties:
        eventSubs:
          type: array
          items:
            $ref: '#/components/schemas/EventSubscription'
          minItems: 1
          description: Subscribed events.
        eventReq:
          $ref: 'TS29523_Npcf_EventExposure.yaml#/components/schemas/ReportingInformation'
        notificationDestination:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Uri'

    SEALEventNotification:
      description: Represents notification information of a SEAL Event.
      type: object
      properties:
        subscriptionId:
          type: string
          description: Identifier of the subscription resource.
        eventDetails:
          type: array
          items:
            $ref: '#/components/schemas/SEALEventDetail'
          minItems: 1
          description: Detailed notifications of individual events.
      required:
        - subscriptionId
        - eventDetails

    EventSubscription:
      description: Represents the subscription to a single SEAL event.
      type: object
      properties:
        eventId:
          $ref: '#/components/schemas/SEALEvent'
        valGroups:
          type: array
          items:
            $ref: '#/components/schemas/VALGroupFilter'
          minItems: 1
          description: >
            Each element of the array represents the VAL group identifier(s) of a VAL service
            that the subscriber wants to know in the interested event.
        identities:
          type: array
          items:
            $ref: '#/components/schemas/IdentityFilter'
          minItems: 1
          description: >
            Each element of the array represents the VAL User / UE IDs of a VAL service
            that the event subscriber wants to know in the interested event.
        monFltr:
          type: array
          items:
            $ref: '#/components/schemas/MonitorFilter'
          minItems: 1
          description: >
            List of event monitoring details that the subscriber wishes to mmonitor the VAL UEs,
            VAL group and/or VAL service.
        areaInt:
          type: array
          items:
            $ref: '#/components/schemas/MonitorLocationInterestFilter'
          minItems: 1
          description: >
            Represents the list of VAL User / UE IDs and the area of interest information
            which the subscriber wishes to monitor the location deviation of VAL User / UEs.
        locAreaMon:
          type: array
          items:
            $ref: '#/components/schemas/MonLocAreaInterestFltr'
          minItems: 1
          description: >
            Each element represents the location area monitoring details to monitor the
            VA UEs moving in and out of the provided location area.
        partialFailRep:
          $ref: '#/components/schemas/PartialEventSubscFailRep'
      required:
        - eventId

    SEALEventDetail:
      description: Represents the SEAL event details.
      type: object
      properties:
        eventId:
          $ref: '#/components/schemas/SEALEvent'
        lmInfos:
          type: array
          items:
            $ref: '#/components/schemas/LMInformation'
          minItems: 1      
        valGroupDocuments:
          type: array
          items:
            $ref: 'TS29549_SS_GroupManagement.yaml#/components/schemas/VALGroupDocument'
          minItems: 1
          description: >
            The VAL groups documents with modified membership and configuration information.
        profileDocs:
          type: array
          items:
            $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ProfileDoc'
          minItems: 1
          description: Updated profile information associated with VAL Users or VAL UEs.
        msgFltrs:
          type: array
          items:
            $ref: '#/components/schemas/MessageFilter'
          minItems: 1
          description: >
            The message filter information for various member VAL User or UEs of the VAL group.
        monRep:
          type: array
          items:
            $ref: '#/components/schemas/MonitorEventsReport'
          minItems: 1
          description: The events reports with details of the events related to the VAL UE(s).
        locAdhr:
          type: array
          items:
            $ref: '#/components/schemas/LocationDevMonReport'
          minItems: 1
          description: >
            The location deviation information for the interested VAL User ID or UE IDs
            in a given location.
        tempGroupInfo:
          $ref: '#/components/schemas/TempGroupInfo'
        locAreaMonRep:
          type: array
          items:
            $ref: '#/components/schemas/LocationAreaMonReport'
          minItems: 1
          description: The location area monitoring of the given area of interest.
        valGroupIds:
          type: array
          items:
            type: string
          minItems: 1
          description: Contains the identifier(s) of the deleted VAL Group(s).
      required:
        - eventId

    VALGroupFilter:
      description: Represents a filter of VAL group identifiers belonging to a VAL service.
      type: object
      properties:
        valSvcId:
          type: string
          description: Identity of the VAL service
        valGrpIds:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            VAL group identifiers that event subscriber wants to know in the interested event.
      required:
        - valGrpIds

    IdentityFilter:
      description: Represents a filter of VAL User / UE identities belonging to a VAL service.
      type: object
      properties:
        valSvcId:
          type: string
          description: Identity of the VAL service
        valTgtUes:
          type: array
          items:
            $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ValTargetUe'
          minItems: 1
          description: >
            VAL User IDs or VAL UE IDs that the event subscriber wants to know
            in the interested event.
        suppLoc:
          type: boolean
          description: Set to true by Subscriber to request the supplementary location information.
        locQoS:
          $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/LocationQoS'

    LMInformation:
      description: Represents the location information for a VAL User ID or a VAL UE ID.
      type: object
      properties:
        valTgtUe:
            $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ValTargetUe'
        locInfo:
          $ref: 'TS29122_MonitoringEvent.yaml#/components/schemas/LocationInfo'
        timeStamp:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/DateTime'
        valSvcId:
          type: string
          description: Identity of the VAL service
      required:
        - locInfo
        - valTgtUe

    MessageFilter:
      description: Represents the message filters applicable to a VAL User ID or VAL UE ID.
      type: object
      properties:
        reqUe:
            $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ValTargetUe'
        tgtUe:
          type: array
          items:
            $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ValTargetUe'
          minItems: 1
          description: List of VAL User or UE IDs whose message to be sent.
        maxMsgs:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        scheds:
          type: array
          items:
            $ref: 'TS29122_CpProvisioning.yaml#/components/schemas/ScheduledCommunicationTime'
          minItems: 1
          description: Time frame associated with total number of messages.
        msgTypes:
          type: array
          items:
            type: string
          minItems: 1
          description: List of message types to be sent to VAL UE.
      required:
        - reqUe

    MonitorFilter:
      description: Represents the event monitoring filters applicable to a VAL User ID or VAL UE ID.
      type: object
      properties:
        idnts:
          type: array
          items:
            $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ValTargetUe'
          minItems: 1
          description: List of VAL User or UE IDs whose events monitoring is requested.
        valSvcId:
          type: string
          description: Identity of the VAL service.
        valGrpId:
          type: string
          description: Identity of the group of the target UEs.
        profId:
          type: string
          description: The monitoring profile ID identifying a list of monitoring, analytics events.
        valCnds:
          type: array
          items:
            $ref: '#/components/schemas/ValidityConditions'
          minItems: 1
          description: The temporal,spatial conditions for the events to be considered valid.
        evntDets:
          type: array
          items:
            $ref: '#/components/schemas/MonitorEvents'
          minItems: 1
          description: List of monitoring, analytics events to be monitored.

    MonitorEvents:
      description: List of event types to be monitored in the context of events monitoring service.
      type: object
      properties:
        cnEvnts:
          type: array
          items:
            $ref: 'TS29122_MonitoringEvent.yaml#/components/schemas/MonitoringType'
          minItems: 1
          description: List of monitoring events related to VAL UE.
        anlEvnts:
          type: array
          items:
            $ref: 'TS29522_AnalyticsExposure.yaml#/components/schemas/AnalyticsEvent'
          minItems: 1
          description: List of analytics events related to VAL UE.

    MonitorEventsReport:
      description: List of monitoring and/or analytics events related to VAL UE.
      type: object
      properties:
        tgtUe:
          $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ValTargetUe'
        evnts:
          type: array
          items:
            $ref: '#/components/schemas/MonitorEvents'
          minItems: 1
          description: List of monitoring and analytics events related to VAL UE.
      required:
        - tgtUe
        - evnts

    ValidityConditions:
      description: List of monitoring and/or analytics events related to VAL UE.
      type: object
      properties:
        locArea:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/LocationArea5G'
        tmWdws:
          type: array
          items:
            $ref: 'TS29122_CommonData.yaml#/components/schemas/TimeWindow'
          minItems: 1
          description: Time window validity conditions.

    MonitorLocationInterestFilter:
      description: Represents the location monitoring filter information.
      type: object
      properties:
        tgtUes:
          type: array
          items:
            $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ValTargetUe'
          minItems: 1
          description: List of VAL Users or UE IDs for which location monitoring is requested.
        locInt:
          $ref: 'TS29122_MonitoringEvent.yaml#/components/schemas/LocationInfo'
        valSvcId:
          $ref: 'TS29549_SS_VALServiceAreaConfiguration.yaml#/components/schemas/ValSvcAreaId'
        notInt:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec'
      required:
        - tgtUes
        - notInt
      oneOf:
        - required: [locInt]
        - required: [valSvcId]

    LocationDevMonReport:
      description: Location deviation monitoring report.
      type: object
      properties:
        tgtUes:
          type: array
          items:
            $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ValTargetUe'
          minItems: 1
          description: List of VAL Users or UE IDs for which report is related to.
        locInfo:
          $ref: 'TS29122_MonitoringEvent.yaml#/components/schemas/LocationInfo'
        notifType:
          $ref: '#/components/schemas/LocDevNotification'
      required:
        - tgtUes
        - locInfo
        - notifType

    TempGroupInfo:
      description: Represents the created temporary VAL group information.
      type: object
      properties:
        valGrpIds:
          type: array
          items:
            type: string
          minItems: 1
        tempValGrpId:
          type: string
        valServIds:
          type: array
          items:
            type: string
          minItems: 1
      required:
        - valGrpIds
        - tempValGrpId

    MonLocAreaInterestFltr:
      description: Filter information indicate the area of interest and triggering events.
      type: object
      properties:
        locInfoCri:
          $ref: '#/components/schemas/LocationInfoCriteria'
        trigEvnts:
          type: array
          items:
            $ref: '#/components/schemas/MonLocTriggerEvent'
          minItems: 1
          description: Triggering events when to send information.
      required:
        - locInfoCri

    LocationInfoCriteria:
      description: >
        Geographic location and reference UE details, where the UEs moving in and out
        to be monitored.
      type: object
      properties:
        geoArea:
          $ref: 'TS29572_Nlmf_Location.yaml#/components/schemas/GeographicArea'
        refUe:
          $ref: '#/components/schemas/ReferenceUEDetail'
        valSvcAreaId:
          $ref: 'TS29549_SS_VALServiceAreaConfiguration.yaml#/components/schemas/ValSvcAreaId'
      oneOf:
        - required: [geoArea]
        - required: [refUe]

    ReferenceUEDetail:
      description: Reference UE details, where the UEs moving in and out to be monitored.
      type: object
      properties:
        valTgtUe:
          $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ValTargetUe'
        proxRange:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
        proxRangeFrac:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Float'
      required:
        - valTgtUe
        - proxRange

    LocationAreaMonReport:
      description: Event report to notify the VAL UEs moving in or out from a given location.
      type: object
      properties:
        curPreUEs:
          type: array
          items:
            $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ValTargetUe'
          minItems: 1
          description: List of identities of all VAL UEs present in the given location area.
        moveInOutUEs:
          $ref: '#/components/schemas/MoveInOutUEDetails'
        trigEvnt:
          $ref: '#/components/schemas/MonLocTriggerEvent'

    MoveInOutUEDetails:
      description: List of UEs moved in and out.
      type: object
      properties:
        moveInUEs:
          type: array
          items:
            $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ValTargetUe'
          minItems: 1
          description: >
            List of identities of VAL UEs who moved in to given location area
            since previous notification.
        moveOutUEs:
          type: array
          items:
            $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ValTargetUe'
          minItems: 1
          description: >
            List of identities of VAL UEs who moved out of the given location area
            since previous notification.

    PartialEventSubscFailRep:
      description: Represents the partial failure report during the subscription creation or update.
      type: object
      properties:
        valTgtUes:
          type: array
          items:
            $ref: 'TS29549_SS_UserProfileRetrieval.yaml#/components/schemas/ValTargetUe'
          minItems: 1
          description: >
            List of VAL user(s) / VAL UE(s) whose identifier(s) is not found.
        valGrpIds:
          type: array
          items:
            type: string
          minItems: 1
          description: >
            List of VAL group(s) whose identifier(s) is not found.
      oneOf:
        - required: [valTgtUes]
        - required: [valGrpIds]

# Simple data types and Enumerations

    SEALEvent:
      anyOf:
      - type: string
        enum:
          - LM_LOCATION_INFO_CHANGE
          - GM_GROUP_INFO_CHANGE
          - CM_USER_PROFILE_CHANGE
          - GM_GROUP_CREATE
          - NRM_MONITOR_UE_USER_EVENTS
          - LM_LOCATION_DEVIATION_MONITOR
          - GM_TEMP_GROUP_FORMATION
          - LM_LOCATION_AREA_MONITOR
          - GM_GROUP_DELETION
      - type: string
        description: >
          This string provides forward-compatibility with future
          extensions to the enumeration but is not used to encode
          content defined in the present version of this API.
      description: |
        Represents the type of SEAL events that can be subscribed.  
        Possible values are:
        - LM_LOCATION_INFO_CHANGE: Events related to the location information of VAL Users or
          VAL UEs from the Location Management Server.
        - GM_GROUP_INFO_CHANGE: Events related to the modification of VAL group membership
          and configuration information from the Group Management Server.
        - CM_USER_PROFILE_CHANGE: Events related to update of user profile information from
          the Configuration Management Server.
        - GM_GROUP_CREATE: Events related to creation of new VAL groups from the Group
          Mananagement Server.
        - NRM_MONITOR_UE_USER_EVENTS: Monitoring and analytic events related to VAL UEs, 
          users or VAL group, from the Network Resource Management Server.
        - LM_LOCATION_DEVIATION_MONITOR: Events from Location Management server,
          related to the deviation of the VAL User(s) / UE(s) location from an area of interest.
        - GM_TEMP_GROUP_FORMATION: Events related to the formation of new temporary VAL groups
          from the Group Management Server.
        - LM_LOCATION_AREA_MONITOR: Events from Location Management server, related to the list
          of UEs moving in or moving out of the specific location.
        - GM_GROUP_DELETION: Events related to deletion of existing VAL Group(s) from the GM Server.

    LocDevNotification:
      anyOf:
      - type: string
        enum:
          - NOTIFY_MISMATCH_LOCATION
          - NOTIFY_ABSENCE
          - NOTIFY_PRESENCE
      - 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: 
        Enumeration of location deviation notification reports.  
        - NOTIFY_MISMATCH_LOCATION: This value indicates that the location information of
          the VAL UE(s) from the SEAL LM client and the core network are not matching.
        - NOTIFY_ABSENCE: This value indicates that the current location information of
          the VAL UE(s)is deviating from the VAL server's area of interest.
        - NOTIFY_PRESENCE: This value indicates that the current location information of
          the VAL UE(s) is within the VAL server's area of interest.

    MonLocTriggerEvent:
      anyOf:
      - type: string
        enum:
          - DISTANCE_TRAVELLED
      - 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: |
        Identifies the triggering event in the location area monitor filtering.  
        Possible values are:
        - DISTANCE_TRAVELLED: This value indicates the trigger event for the location area
          monitoring based on the distance travelled by the reference UE.
