ETSI MEC 030 V2X Information Services API

The V2X Information Service defined in ETSI GS MEC 030, providing predicted quality of service, provisioning information and multi-operator V2X message distribution for connected-vehicle applications running at the edge.

OpenAPI Specification

MEC030_V2XInformationServices.yaml Raw ↑
openapi: 3.1.0
info:
  title: 'ETSI GS MEC 030 V2X Information Services API'
  version: 3.1.1
  description: 'ETSI GS MEC 030 V2X Information Services API described using OpenAPI.'
  contact:
    name: ETSI Forge
    email: cti_support@etsi.org
    url: https://forge.etsi.org/rep/mec/gs030-vis-api
  license:
    name: BSD-3-Clause
    url: 'https://forge.etsi.org/legal-matters'
externalDocs:
  description: 'ETSI GS MEC 030 V2X Information Services API, v3.1.1'
  url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/030/03.01.01_60/gs_mec030v030101p.pdf'
servers:
  - url: 'https://localhost/vis/v2'
tags:
  - name: queries
    description: Queries
  - name: subscription
    description: Subscription
  - name: QoS
  - name: V2X_msg

paths:
  /queries/uu_unicast_provisioning_info:
    get:
      tags:
        - 'queries'
      summary: 'Used to query provisioning information for V2X communication over Uu unicast.'
      description: 'Used to query provisioning information for V2X communication over Uu unicast.'
      operationId: prov_info_uu_unicastGET
      parameters:
        - in: query
          name: location_info
          schema:
            type: string
          required: true
          description: 'Comma separated list of locations to identify a cell of a base station or a particular geographical area'

      responses:
        '200':
          description: 'A response body containing the Uu unicast provisioning information. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UuUnicastProvisioningInfo'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'

  /queries/uu_mbms_provisioning_info:
    get:
      tags:
        - 'queries'
      summary: 'retrieve information required for V2X communication over Uu MBMS.'
      description: 'retrieve information required for V2X communication over Uu MBMS.'
      operationId: prov_info_uu_mbmsGET
      parameters:
        - in: query
          name: location_info
          schema:
            type: string
          required: true
          description: 'omma separated list of locations to identify a cell of a base station or a particular geographical area'

      responses:
        '200':
          description: 'A response body containing the Uu unicast provisioning information. '
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UuMbmsProvisioningInfo'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'

  /queries/pc5_provisioning_info:
    get:
      tags:
        - 'queries'
      summary: 'Query provisioning information for V2X communication over PC5.'
      description: 'Query provisioning information for V2X communication over PC5.'
      operationId: prov_infoGET
      parameters:
        - in: query
          name: location_info
          schema:
            type: string
          required: true
          description: 'Comma separated list of locations to identify a cell of a base station or a particular geographical area'
      responses:
        '200':
          description: 'A response body containing the PC5 provisioning information is returned.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Pc5ProvisioningInfo'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'

  /provide_v2x_msg_distribution_server_info:
    post:
      tags:
        - 'V2X_msg'
      summary: 'Request the information about available V2X Message Distribution Servers that can be supported by the service consumer.'
      description: 'Request the information about available V2X Message Distribution Servers that can be supported by the service consumer (e.g. a MEC application).'
      operationId: v2xMsg_distributionServerPost
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2xMsgDistributionServerInfo'
      responses:
        '200':
          description: 'The response body shall contain the connection information of the V2X Message Distribution Servers that the service consumer can use for direct connection.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/V2xMsgDistributionServerInfo'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'

  /provide_predicted_qos:
    post:
      tags:
        - 'QoS'
      summary: 'Request the predicted QoS correspondent to potential routes of a vehicular UE.'
      description: 'Request the predicted QoS correspondent to potential routes of a vehicular UE.'
      operationId: predicted_qosPOST
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PredictedQos'
      responses:
        '200':
          description: 'The response body shall contain the predicted QoS corresponding to potential routes of a vehicular UE'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PredictedQos'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'

  /publish_v2x_message:
    post:
      tags:
        - 'V2X_msg'
      summary: 'Used to publish a V2X message.'
      description: 'Used to publish a V2X message.'
      operationId: v2x_messagePOST
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/V2xMsgPublication'
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'

  /subscriptions:
    get:
      tags:
        - 'subscription'
      summary: 'Request information about the subscriptions for this requestor.'
      description: 'Request information about the subscriptions for this requestor.'
      operationId: subGET
      parameters:
        - in: query
          name: subscription_type
          description: 'Query parameter to filter on a specific subscription type. Permitted values:  prov_chg_uu_uni: provisioning information change for V2X communication over Uuunicast. prov_chg_uu_mbms: provisioning information change for V2X communication over Uu MBMS. prov_chg_uu_pc5: provisioning information change for V2X communication over PC5. v2x_msg: V2X interoperability message. pred_qos: information on the predicted QoS'
          schema:
            type: string
          required: false
      responses:
        '200':
          description: 'A response body containing the list of links to requestor subscriptions is returned.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubscriptionLinkList'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'
    post:
      tags:
        - 'subscription'
      summary: ' create a new subscription to VIS notifications.'
      description: ' create a new subscription to VIS notifications.'
      operationId: subPOST
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/ProvChgUuUniSubscription'
                - $ref: '#/components/schemas/ProvChgUuMbmsSubscription'
                - $ref: '#/components/schemas/ProvChgPc5Subscription'
                - $ref: '#/components/schemas/V2xMsgSubscription'
      responses:
        '201':
          description: 'In the returned NotificationSubscription structure, the created subscription is described using the appropriate data type.'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ProvChgUuUniSubscription'
                  - $ref: '#/components/schemas/ProvChgUuMbmsSubscription'
                  - $ref: '#/components/schemas/ProvChgPc5Subscription'
                  - $ref: '#/components/schemas/V2xMsgSubscription'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '415':
          $ref: '#/components/responses/415'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'

      callbacks:
        notification:
          '{$request.body#/callbackReference}':
            post:
              summary: 'Callback POST used to send a notification'
              description: 'A notification from VIS.'
              operationId: notificationPOST
              requestBody:
                description: Subscription notification
                required: true
                content:
                  application/json:
                    schema:
                      oneOf:
                        - $ref: '#/components/schemas/ProvChgUuUniNotification'
                        - $ref: '#/components/schemas/ProvChgUuMbmsNotification'
                        - $ref: '#/components/schemas/ProvChgPc5Notification'
                        - $ref: '#/components/schemas/V2xMsgNotification'
              responses:
                '204':
                  $ref: '#/components/responses/204'

  /subscriptions/{subscriptionId}:
    parameters:
      - in: path
        name: subscriptionId
        description: 'Refers to created subscription, where the VIS API allocates a unique resource name for this subscription'
        schema:
          type: string
        required: true

    get:
      tags:
        - 'subscription'
      summary: 'Retrieve information about this subscription.'
      description: 'Retrieve information about this subscription.'
      operationId: individualSubscriptionGET

      responses:
        '200':
          description: 'A response body containing the data type describing the specific RNI event subscription is returned'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ProvChgUuUniSubscription'
                  - $ref: '#/components/schemas/ProvChgUuMbmsSubscription'
                  - $ref: '#/components/schemas/ProvChgPc5Subscription'
                  - $ref: '#/components/schemas/V2xMsgSubscription'
                  - $ref: '#/components/schemas/PredQosSubscription'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '406':
          $ref: '#/components/responses/406'
        '429':
          $ref: '#/components/responses/429'

    put:
      tags:
        - 'subscription'
      summary: 'Used to update the existing subscription.'
      description: 'Used to update the existing subscription.'
      operationId: individualSubscriptionPUT
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/ProvChgUuUniSubscription'
                - $ref: '#/components/schemas/ProvChgUuMbmsSubscription'
                - $ref: '#/components/schemas/ProvChgPc5Subscription'
                - $ref: '#/components/schemas/V2xMsgSubscription'
                - $ref: '#/components/schemas/PredQosSubscription'
      responses:
        '200':
          description: 'A response body containing data type describing the updated subscription is returned'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ProvChgUuUniSubscription'
                  - $ref: '#/components/schemas/ProvChgUuMbmsSubscription'
                  - $ref: '#/components/schemas/ProvChgPc5Subscription'
                  - $ref: '#/components/schemas/V2xMsgSubscription'
                  - $ref: '#/components/schemas/PredQosSubscription'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'

        '403':
          $ref: '#/components/responses/403'

        '404':
          $ref: '#/components/responses/404'

        '406':
          $ref: '#/components/responses/406'

        '412':
          $ref: '#/components/responses/412'

        '422':
          $ref: '#/components/responses/422'

        '429':
          $ref: '#/components/responses/429'

    delete:
      tags:
        - 'subscription'
      summary: 'Used to cancel the existing subscription.'
      description: 'Used to cancel the existing subscription.'
      operationId: individualSubscriptionDELETE
      responses:
        '204':
          $ref: '#/components/responses/204'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'

    # /notifitication_end_point_provided_by_client
    #post:

components:
  schemas:
    CellId:
      properties:
        cellId:
          description: E-UTRAN Cell Identity as a bit string (size (28)).
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
      required:
        - cellId
      type: object
      x-etsi-ref: 6.6.2

    Earfcn:
      properties:
        earfcn:
          description: E-UTRA Absolute Radio Frequency Channel Number, range (0... 65535)
          type: integer
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Integer
      required:
        - earfcn
      type: object
      x-etsi-ref: 6.6.3

    Ecgi:
      properties:
        cellId:
          # description': The E-UTRAN Cell Identity.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': CellId
          $ref: '#/components/schemas/CellId'
        plmn:
          # description': Public Land Mobile Network Identity.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': Plmn
          $ref: '#/components/schemas/Plmn'
      required:
        - plmn
        - cellId
      type: object
      x-etsi-ref: 6.5.5

    FddInfo:
      properties:
        dlEarfcn:
          # description': ''
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': Earfcn
          $ref: '#/components/schemas/Earfcn'
        dlTransmissionBandwidth:
          # description': ''
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': TransmissionBandwidth
          $ref: '#/components/schemas/TransmissionBandwidth'
        ulEarfcn:
          # description': ''
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': Earfcn
          $ref: '#/components/schemas/Earfcn'
        ulTransmissionBandwidth:
          # description': ''
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': TransmissionBandwidth
          $ref: '#/components/schemas/TransmissionBandwidth'
      required:
        - ulEarfcn
        - dlEarfcn
        - ulTransmissionBandwidth
        - dlTransmissionBandwidth
      type: object
      x-etsi-ref: 6.5.6

    links:
      description: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.
      properties:
        self:
          # description': Self-referring URI. The URI shall be unique within the V2X API as it acts as an ID for the subscription.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': LinkType
          $ref: '#/components/schemas/LinkType'
      required:
        - self
      type: object
      x-etsi-mec-cardinality: 0..1
      x-etsi-mec-origin-type: Structure (inlined)

    LinkType:
      properties:
        href:
          description: URI referring to a resource
          format: uri
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Uri
      required:
        - href
      type: object
      x-etsi-ref: 6.5.13

    LocationInfo:
      properties:
        ecgi:
          # description': E-UTRAN CelI Global Identifier of the serving cell.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': Ecgi
          $ref: '#/components/schemas/Ecgi'
        geoArea:
          $ref: '#/components/schemas/LocationInfo.geoArea'
      type: object
      x-etsi-notes: "NOTE:\tEither ecgi or geoArea shall be present, but not both."
      x-etsi-ref: 6.5.3

    LocationInfo.geoArea:
      description: Information of a geographical area.
      properties:
        latitude:
          description: 'Latitude (DATUM = WGS84) -90 to 90 in decimal degree format DDD.ddd'
          format: float
          type: number
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Float
        longitude:
          description: 'Longitude (DATUM = WGS84) -180 to 180 in decimal degree format DDD.ddd'
          format: float
          type: number
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Float
      required:
        - latitude
        - longitude
      type: object
      x-etsi-mec-cardinality: 0..1
      x-etsi-mec-origin-type: Structure (inlined)

    Pc5NeighbourCellInfo:
      properties:
        ecgi:
          # description': E-UTRAN CelI Global Identifier.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': Ecgi
          $ref: '#/components/schemas/Ecgi'
        plmn:
          # description': Public Land Mobile Network Identity.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': Plmn
          $ref: '#/components/schemas/Plmn'
        siV2xConfig:
          # description': V2X sidelink communication configuration, as defined in ETSI TS 136 331 [i.11].
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': SystemInformationBlockType21 (as defined in ETSI TS 136 331 [i.11])
          $ref: '#/components/schemas/SystemInformationBlockType21'
      required:
        - plmn
        - ecgi
        - siV2xConfig
      type: object
      x-etsi-ref: 6.5.12

    Pc5ProvisioningInfo:
      properties:
        proInfoPc5:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/Pc5ProvisioningInfo.proInfoPc5'
        timeStamp:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
          $ref: '#/components/schemas/TimeStamp'
      required:
        - proInfoPc5
      type: object
      x-etsi-ref: 6.2.4

    Pc5ProvisioningInfo.proInfoPc5:
      description: The provisioning information per location as defined below.
      type: object
      properties:
        dstLayer2Id:
          description: "For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS\_136\_321 [i.12].\nPLMN operators coordinate to make sure Destination Layer2 ID(s) for different V2X services are configured in a consistent manner."
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        locationInfo:
          # description': Location information to identify a cell of a base station or a particular geographical area.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': LocationInfo
          $ref: '#/components/schemas/LocationInfo'
        neighbourCellInfo:
          description: The information of the neighbour cells in a visiting PLMN that support V2X communication over PC5.
          items:
            $ref: '#/components/schemas/Pc5NeighbourCellInfo'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: Pc5NeighbourCellInfo
      required:
        - locationInfo
        - dstLayer2Id
      x-etsi-mec-cardinality: 1..N
      x-etsi-mec-origin-type: Structure (inlined)
    Plmn:
      properties:
        mcc:
          description: The Mobile Country Code part of PLMN Identity.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        mnc:
          description: The Mobile Network Code part of PLMN Identity.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
      required:
        - mcc
        - mnc
      type: object
      x-etsi-ref: 6.5.4

    PredictedQos:
      properties:
        locationGranularity:
          description: Granularity of visited location. Measured in meters.
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        noticePeriod:
          # description': Information on when the predicted QoS is needed at the service consumer interface. The value of the notice period depends on the application reaction that has to be triggered by the service consumer. The value of the notice period shall be equal or a multiple of the timeGranularity, if it is present. If present, it shall only be included in the request.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
          $ref: '#/components/schemas/TimeStamp'
        predictionArea:
          $ref: '#/components/schemas/PredictionArea'
        predictionTarget:
          description: "Indicates target of QoS prediction. Valid values:\n\n1.\tSINGLE_UE_PREDICTION: \nThe predicted QoS is to be intended as journey-specific for a requesting vehicular UE.\n\n2.\tE2E_APPLICATION_INSTANCE_PREDICTION:\nThe E2E user plane link between two V2X application instances, where one instance relates to a single vehicular UE and the other instance to an application instance within another network, i.e. either another vehicular UE as in the V2N2V case, or an infrastructure element as in the V2N2I case.\n\nShall only be included in the request.\n\n"
          enum:
          - SEE_DESCRIPTION
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: Enum_inlined
        qos:
          $ref: '#/components/schemas/Qos'
        routes:
          items:
            $ref: '#/components/schemas/Routes'
          type: array
        timeGranularity:
          # description': Time granularity of visiting a location.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
          $ref: '#/components/schemas/TimeStamp'
      required:
      - predictionTarget
      - locationGranularity
      - qos
      type: object
      x-etsi-notes: "NOTE:\tThe data type of locationGranularity is a string which indicates the granularity of a visited location by means of latitudinal and longitudinal margins."
      x-etsi-ref: 6.2.6

    PredictedQos.routes:
      properties:
        routeInfo:
          description: 'Information relating to a specific route.

            The first structure shall relate to the route origin and the last to the route destination. Intermediate waypoint locations may also be provided.'
          items:
            $ref: '#/components/schemas/PredictedQos.routes.routeInfo'
          required:
            - location
          minItems: 2
          type: array
          x-etsi-mec-cardinality: 2..N
          x-etsi-mec-origin-type: Structure (inlined)
      type: object
      minItems: 1

    PredictedQos.routes.routeInfo:
      type: object
      properties:
        location:
          # description': Vehicular UE location.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': LocationInfo
          $ref: '#/components/schemas/LocationInfo'
        rsrp:
          description:
            'Reference Signal Received Power as defined in ETSI TS 136 214 [i.13].

            Shall only be included in the response.'
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint8
        rsrq:
          description:
            'Reference Signal Received Quality as defined in ETSI TS 136 214 [i.13].

            Shall only be included in the response.'
          format: uint8
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint8
        time:
          # description': Estimated time at the location.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
          $ref: '#/components/schemas/TimeStamp'

    ProblemDetails:
      properties:
        detail:
          description: A human-readable explanation specific to this occurrence of the problem
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        instance:
          description: A URI reference that identifies the specific occurrence of the problem
          format: uri
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: URI
        status:
          description: The HTTP status code for this occurrence of the problem
          format: uint32
          type: integer
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uint32
        title:
          description: A short, human-readable summary of the problem type
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        type:
          description: A URI reference according to IETF RFC 3986 that identifies the problem type
          format: uri
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: URI
      type: object

    ProvChgPc5Notification:
      properties:
        dstLayer2Id:
          description: For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS 136 321 [i.12].
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: String
        locationInfo:
          # description': Location information to identify a cell of a base station or a particular geographical area.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': LocationInfo
          $ref: '#/components/schemas/LocationInfo'
        neighbourCellInfo:
          description: The information of the neighbour cells in a visiting PLMN that support V2X communication over PC5.
          items:
            $ref: '#/components/schemas/Pc5NeighbourCellInfo'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: Pc5NeighbourCellInfo
        notificationType:
          description: Shall be set to "ProvChgPc5Notification".
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        timeStamp:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
          $ref: '#/components/schemas/TimeStamp'
      required:
        - notificationType
        - locationInfo
      type: object
      x-etsi-ref: 6.4.4

    ProvChgPc5Subscription:
      properties:
        _links:
          $ref: '#/components/schemas/links'
        callbackReference:
          description: URI exposed by the client on which to receive notifications via HTTP. See note.
          format: uri
          type: string
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Uri
        expiryDeadline:
          # description': Time stamp.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': TimeStamp
          $ref: '#/components/schemas/TimeStamp'
        filterCriteria:
          $ref: '#/components/schemas/ProvChgPc5Subscription.filterCriteria'
        requestTestNotification:
          description: "Shall be set to TRUE by the service consumer to request a test notification via HTTP on the callbackReference URI, as described in ETSI GS\_MEC\_009 [i.1], clause 6.12a.\nDefault: FALSE."
          type: boolean
          x-etsi-mec-cardinality: 0..1
          x-etsi-mec-origin-type: Boolean
        subscriptionType:
          description: Shall be set to "ProvChgPc5Subscription".
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        websockNotifConfig:
          # description': Provides details to negotiate and signal the use of a Websocket connection between VIS and the service consumer for notifications. See note.
          # x-etsi-mec-cardinality': 0..1
          # x-etsi-mec-origin-type': WebsockNotifConfig
          $ref: '#/components/schemas/WebsockNotifConfig'
      required:
        - subscriptionType
        - filterCriteria
      type: object
      anyOf:
        - oneOf:
            - required:
                - callbackReference
            - required:
                - websockNotifConfig
      x-etsi-notes: 'NOTE:   At least one of callbackReference and websockNotifConfig shall be provided by the service consumer. If both are provided, it is up to VIS to choose an alternative and return only that alternative in the response, as described in ETSI GS MEC 009 [i.1], clause 6.12a.'
      x-etsi-ref: 6.3.4

    ProvChgPc5Subscription.filterCriteria:
      description: List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response.
      properties:
        dstLayer2Id:
          description: For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID, see ETSI TS 136 321 [i.12].
          type: string
          x-etsi-mec-cardinality: '1'
          x-etsi-mec-origin-type: String
        locationInfo:
          # description': Location information to identify a cell of a base station or a particular geographical area.
          # x-etsi-mec-cardinality': '1'
          # x-etsi-mec-origin-type': LocationInfo
          $ref: '#/components/schemas/LocationInfo'
        neighbourCellInfo:
          description: The information of the neighbour cells in a visiting PLMN that support V2X communication over PC5.
          items:
            $ref: '#/components/schemas/Pc5NeighbourCellInfo'
          minItems: 0
          type: array
          x-etsi-mec-cardinality: 0..N
          x-etsi-mec-origin-type: Pc5NeighbourCellInfo
      required:
        - locationInfo
        - dstLayer2Id
      type: object
      x-etsi-mec-cardinality: '1'
      x-etsi-mec-origin-type: Structure (inlined)

  

# --- truncated at 32 KB (82 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/etsi/refs/heads/main/openapi/mec/MEC030_V2XInformationServices.yaml