V2XInformationServiceAPI_TypesAndValues.ttcn 26.6 KB
Newer Older
/**
 *  @author     ETSI / TTF T012
 *  @version    $Url$
 *              $Id$
 *  @desc       Types ANd Values for ETSI GS MEC 030 V2.1.1 (2020-04)
 *  @copyright   ETSI Copyright Notification
 *               No part may be reproduced except as authorized by written permission.
 *               The copyright and the foregoing restriction extend to reproduction in all media.
 *               All rights reserved.
 */
module V2XInformationServiceAPI_TypesAndValues {

  // JSON
  import from JSON all;

  // LibCommon
  import from LibCommon_BasicTypesAndValues all;

  /**
   * @desc E-UTRAN Cell Identity as a bit string (size (28))
   * @see ETSI TS 136 413
   */
YannGarcia's avatar
YannGarcia committed
  type record CellId {
    JSON.String cellId
  }

   /**
   * @desc E-UTRA Absolute Radio Frequency Channel Number, range (0... 65535)
   * @see ETSI TS 136 413
   */
  type UInt16 Earfcn;

  /**
   * @desc Transmission Bandwidth, which is used to indicate the UL or DL transmission bandwidth expressed in units of resource blocks
   * @see ETSI TS 136 413
   */
  type enumerated TransmissionBandwidth {
    bw6   (1),
    bw15  (2),
    bw25  (3),
    bw50  (4),
    bw75  (6),
    bw100 (7)
  } with {
    variant "JSON: as number"
  }

  /**
   * @desc E-UTRAN Cell Global Identifier
   * @member cellId The E-UTRAN Cell Identity
   * @member plmn Public Land Mobile Network Identity
   * @see ETSI TS 136 413
   */
  type record Ecgi {
    CellId cellId,
    Plmn   plmn
  }

  /**
   * @desc FDD information
   * @member dlEarfcn Downlink E-UTRA Absolute Radio Frequency Channel Number
   * @member dlTransmissionBandwidth Downlink Transmission Bandwidth
   * @member ulEarfcn Uplink E-UTRA Absolute Radio Frequency Channel Number
   * @member ulTransmissionBandwidth Uplink Transmission Bandwidth
   * @see ETSI TS 136 413
   */
  type record FddInfo {
    Earfcn                dlEarfcn,
    TransmissionBandwidth dlTransmissionBandwidth,
    Earfcn                ulEarfcn,
    TransmissionBandwidth ulTransmissionBandwidth
  }

  /**
   * @desc The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
   */
  type UInt32 Seconds;

  /**
   * @desc The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
   */
  type UInt32 NanoSeconds;

  /**
   * @desc Time stamp description
   * @member seconds The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
   * @member nanoSeconds The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC
   * @see MEC030 Clause 6.5.2 Type: TimeStamp
   */
  type record TimeStamp {
    Seconds seconds,
    NanoSeconds nanoSeconds
  }

  /**
   * @desc Information of a geographical area
   * @member latitude Latitude (DATUM = WGS84) -90 to 90 in decimal degree format DDD.ddd
   * @member longitude Longitude (DATUM = WGS84)-180 to 180 in decimal degree format DDD.ddd
   * @see MEC030 Clause 6.5.3 Type: LocationInfo
   */
  type record LocationInfoGeoArea {
    JSON.Number latitude,
    JSON.Number longitude
  }

  /**
   * @desc Location information
   * @member ecgi E-UTRAN CelI Global Identifier of the serving cell
   * @member geoArea Information of a geographical area
   * @see MEC030 Clause 6.5.3 Type: LocationInfo
   */
  type record LocationInfo {
    Ecgi                ecgi,
    LocationInfoGeoArea geoArea optional
  }
  type record of LocationInfo LocationInfoList;

  /**
   * @desc Location information
   * @member ecgi E-UTRAN CelI Global Identifier
   * @member plmn Public Land Mobile Network Identity
   * @member siV2xConfig V2X sidelink communication configuration, as defined in ETSI TS 136 331
   * @see MEC030 Clause 6.5.12 Type: Pc5NeighbourCellInfo
   */
  type record Pc5NeighbourCellInfo {
    Ecgi        ecgi,
    Plmn        plmn,
    JSON.String siV2xConfig
  }
  type record of Pc5NeighbourCellInfo Pc5NeighbourCellInfoList;

  /**
   * @desc The provisioning information per location
   * @member dstLayer2Id For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID
   * @member locationInfo Location information to identify a cell of a base station or a particular geographical area
   * @member neighbourCellInfo The information of the neighbour cells in a visiting PLMN that support V2X communication over PC5
   * @see MEC030 Clause 6.2.4 Type: Pc5ProvisioningInfo
   */
  type record Pc5ProvisioningInfoProInfoPc5 {
    JSON.String              dstLayer2Id,
YannGarcia's avatar
YannGarcia committed
    LocationInfo             locationInfo,
    Pc5NeighbourCellInfoList neighbourCellInfo optional
  }
  type record of Pc5ProvisioningInfoProInfoPc5 Pc5ProvisioningInfoProInfoPc5List;

  /**
   * @desc Provisioning information required for V2X communication over PC5
   * @member proInfoPc5 The provisioning information per location
   * @member timeStamp Time stamp
   * @see MEC030 Clause 6.5.12 Type: Pc5NeighbourCellInfo
   */
  type record Pc5ProvisioningInfo {
    Pc5ProvisioningInfoProInfoPc5List proInfoPc5,
    TimeStamp                         timeStamp optional
  }

  /**
   * @desc PLMN Identity
   * @member mcc The Mobile Country Code part of PLMN Identity
   * @member mnc The Mobile Network Code part of PLMN Identity
   * @see MEC030 Clause 6.5.4 Type: Plmn
   */
  type record Plmn {
    JSON.String mcc,
    JSON.String mnc
  }

  /**
   * @desc Information relating to a specific route
   * @member location Vehicular UE location
   * @member time Estimated time at the location
   * @member rsrp Reference Signal Received Quality as defined in ETSI TS 136 214
   * @member rsrq Reference Signal Received Quality as defined in ETSI TS 136 214 [i.13]. Shall only be included in the response
   * @see MEC030 Clause 6.2.5 Type: PredictedQos
   */
  type record RouteInfo {
    LocationInfo location,
    TimeStamp    time optional,
    UInt8        rsrp optional,
    UInt8        rsrq optional
  }
  type record of RouteInfo RouteInfoList;

  /**
   * @desc Information relating to the potential routes of a vehicular UE
   * @member routeinfo Information relating to a specific route
   * @see MEC030 Clause 6.2.5 Type: PredictedQos
   */
  type record PredictedQosRoutes {
    RouteInfoList routeinfo
  }
  type record of PredictedQosRoutes PredictedQosRoutesList;

  /**
   * @desc Predicted QoS of a vehicular UE
   * @member timeGranularity Granularity of visited location. Measured in meters
   * @member locationGranularity Granularity of visited location. Measured in meters
   * @member routes Information relating to the potential routes of a vehicular UE
   * @see MEC030 Clause 6.2.5 Type: PredictedQos
   */
  type record PredictedQos {
    TimeStamp              timeGranularity optional,
    JSON.String            locationGranularity,
    PredictedQosRoutesList routes
  }

  /**
   * @desc Notification from VIS with regards to the provisioning information changes for V2X communication over PC5
   * @member dstLayer2Id For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID
   * @member locationInfo Location information to identify a cell of a base station or a particular geographical area
   * @member neighbourCellInfo The information of the neighbour cells in a visiting PLMN that support V2X communication over PC5
   * @member notificationType Shall be set to "ProvChgPc5Notification"
   * @see MEC030 Clause 6.4.4 Type: ProvChgPc5Notification
   */
  type record ProvChgPc5Notification {
    JSON.String              dstLayer2Id optional,
    LocationInfo             locationInfo,
    Pc5NeighbourCellInfoList neighbourCellInfo optional,
    JSON.String              notificationType,
    TimeStamp                timeStamp optional
  }

  /**
   * @desc Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests
   * @member self_ Self-referring URI. The URI shall be unique within the VIS API as it acts as an ID for the subscription
   * @see MEC030 Clause 6.3.4 Type: ProvChgPc5Subscription
   */
  type record LinkType {
    JSON.AnyURI self_
  } with {
    variant (self_) "name as 'self'";
  }

  /**
   * @desc 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
   * @member dstLayer2Id For sidelink communication, the Destination Layer-2 ID is set to the ProSe Layer-2 Group ID or Prose UE ID
   * @member locationInfo Location information to identify a cell of a base station or a particular geographical area
   * @member neighbourCellInfo The information of the neighbour cells in a visiting PLMN that support V2X communication over PC5
   * @see MEC030 Clause 6.3.4 Type: ProvChgPc5Subscription
   */
  type record FilterCriteria {
    JSON.String              dstLayer2Id,
    LocationInfo             locationInfo,
    Pc5NeighbourCellInfoList neighbourCellInfo optional
  }

  /**
   * @desc Subscription to the notifications from VIS about the provisioning information changes for V2X communication over PC5
   * @member links URI selected by the service consumer to receive notifications on the subscribed VIS information. This shall be included both in the request and in response
   * @member callbackReference URI selected by the service consumer to receive notifications on the subscribed VIS information. This shall be included both in the request and in response
   * @member expiryDeadline Time stamp
   * @member filterCriteria List of filtering criteria for the subscription
   * @member subscriptionType Shall be set to "ProvChgPc5Subscription"
   * @see MEC030 Clause 6.3.4 Type: ProvChgPc5Subscription
   */
  type record ProvChgPc5Subscription {
    LinkType       links optional,
    JSON.AnyURI    callbackReference,
    TimeStamp      expiryDeadline optional,
    FilterCriteria filterCriteria,
    JSON.String    subscriptionType
  } with {
    variant (links) "name as '_links'";
  }

  /**
   * @desc Notification from VIS with regards to the provisioning information changes for V2X communication over Uu MBMS
   * @member locationInfo Location information to identify a cell of a base station or a particular geographical area
   * @member The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu MBMS
   * @member notificationType Shall be set to "ProvChgUuMbmsNotification"
   * @member timeStamp_ Time stamp
   * @member v2xServerUsd User Service Description for V2X Application Server is used to configure the UE for receiving local V2X Application Server information when it is provided over MBMS
   * @see MEC030 Clause 6.4.3 Type: ProvChgUuMbmsNotification
   */
  type record ProvChgUuMbmsNotification {
    LocationInfo locationInfo,
    UuMbmsNeighbourCellInfoList neighbourCellInfo optional,
    JSON.String notificationType,
    TimeStamp timeStamp optional,
    V2xServerUsd v2xServerUsd optional
  }

  /**
   * @desc List of filtering criteria for the subscription
   * @member locationInfo Location information to identify a cell of a base station or a particular geographical area
   * @member neighbourCellInfo The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu MBMS
   * @member v2xServerUsd User Service Description for V2X Application Server is used to configure the UE for receiving local V2X Application Server information when it is provided over MBMS
   * @see MEC030 Clause 6.3.3 Type: ProvChgUuMbmsSubscription
   */
  type record ProvChgUuMbmsSubscriptionFilterCriteria {
    LocationInfo                locationInfo,
    UuMbmsNeighbourCellInfoList neighbourCellInfo optional,
    V2xServerUsd                v2xServerUsd
  }

  /**
   * @desc Subscription to the notifications from VIS about the provisioning information changes for V2X communication over Uu MBMS
   * @member links URI selected by the service consumer to receive notifications on the subscribed VIS information. This shall be included both in the request and in response
   * @member callbackReferenceURI selected by the service consumer to receive notifications on the subscribed VIS information. This shall be included both in the request and in response
   * @member expiryDeadline Time stamp
   * @member filterCriteria List of filtering criteria for the subscription
   * @member subscriptionType Shall be set to "ProvChgUuMbmsSubscription"
   * @see MEC030 Clause 6.3.3 Type: ProvChgUuMbmsSubscription
   */
  type record ProvChgUuMbmsSubscription {
    LinkType                                links optional,
    JSON.AnyURI                             callbackReference,
    TimeStamp                               expiryDeadline optional,
    ProvChgUuMbmsSubscriptionFilterCriteria filterCriteria,
    JSON.String                             subscriptionType
  } with {
    variant (links) "name as '_links'";
  }

  /**
   * @desc Notification from VIS with regards to the provisioning information changes for V2X communication over Uu unicast
   * @member locationInfo Location information to identify a cell of a base station or a particular geographical area
   * @member neighbourCellInfo The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu unicast
   * @member notificationType Shall be set to "ProvChgUuUniNotification"
   * @member timeStamp_  Time stamp
   * @member v2xApplicationServer V2X Application Server address (consisting of IP address and UDP port) for unicast
   * @see MEC030 Clause 6.4.2 Type: ProvChgUuUniNotification
   */
  type record ProvChgUuUniNotification {
    LocationInfo               locationInfo,
    UuUniNeighbourCellInfoList neighbourCellInfo optional,
    JSON.String                notificationType,
    TimeStamp                  timeStamp optional,
    V2xApplicationServer       v2xApplicationServer optional
  }

  /**
   * @desc 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
   * @member locationInfo Location information to identify a cell of a base station or a particular geographical area
   * @member neighbourCellInfo The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu MBMS
   * @member v2xApplicationServer V2X Application Server address (consisting of IP address and UDP port) for unicast
   * @see MEC030 Clause 6.3.3 Type: ProvChgUuMbmsSubscription
   */
  type record ProvChgUuUniSubscriptionFilterCriteria {
    LocationInfo                locationInfo,
    UuMbmsNeighbourCellInfoList neighbourCellInfo optional,
    V2xApplicationServer        v2xApplicationServer
  }

  /**
   * @desc Subscription to the notifications from VIS about the provisioning information changes for V2X communication over Uu unicast
   * @member links URI selected by the service consumer to receive notifications on the subscribed VIS information. This shall be included both in the request and in response
   * @member callbackReferenceURI selected by the service consumer to receive notifications on the subscribed VIS information. This shall be included both in the request and in response
   * @member expiryDeadline Time stamp
   * @member filterCriteria List of filtering criteria for the subscription
   * @member subscriptionType Shall be set to "ProvChgUuUniSubscription"
   * @see MEC030 Clause 6.3.2 Type: ProvChgUuUniSubscription
   */
  type record ProvChgUuUniSubscription {
    LinkType                               links optional,
    JSON.AnyURI                            callbackReference,
    TimeStamp                              expiryDeadline optional,
    ProvChgUuUniSubscriptionFilterCriteria filterCriteria,
    JSON.String                            subscriptionType
  } with {
    variant (links) "name as '_links'";
  }

  /**
   * @desc The service consumers subscriptions
   * @member href The URI referring to the subscription
   * @member subscriptionType Type of the subscription. The values are as defined in the \"subscriptionType\" attribute for each different V2X information event subscription data type
   * @see MEC030 Clause 6.3.6 Type: SubscriptionLinkList
   */
  type record SubscriptionsLink_ {
    JSON.AnyURI href,
    JSON.String subscriptionType
  }
  type record of SubscriptionsLink_ SubscriptionLinkList_;

  /**
   * @desc List of hyperlinks related to the resource
   * @member self_ URI of this resource
   * @member subscriptions The service consumer’s subscriptions
   * @see MEC030 Clause 6.3.6 Type: SubscriptionLinkList
   */
  type record SubscriptionLinkList {
    LinkType               self_,
    SubscriptionLinkList_  subscriptions
  } with {
    variant (self_) "name as 'self'";
  }

  /**
   * @desc TDD information
   * @member earfcn E-UTRA Absolute Radio Frequency Channel Number
   * @member subframeAssignment Uplink-downlink subframe configuration information
   * @member transmissionBandwidth Transmission Bandwidth
   * @see MEC030 Clause 6.5.7 Type: TddInfo
   */
  type record TddInfo {
    Earfcn                earfcn,
    JSON.String           subframeAssignment,
    TransmissionBandwidth transmissionBandwidth
  }

  /**
   * @desc Neighbour cell information in a visiting PLMN that supports V2X communication over Uu MBMS
   * @member ecgi E-UTRAN CelI Global Identifier
   * @member fddInfo Information for FDD operation
   * @member mbmsServiceAreaIdentity Supported MBMS Service Area Identities in the cell
   * @member pci Physical Cell Identifier
   * @member plmn Public Land Mobile Network Identity
   * @member tddInfo Information for TDD operation
   * @see MEC030 Clause 6.5.11 Type: UuMbmsNeighbourCellInfo
   */
  type record UuMbmsNeighbourCellInfo {
    Ecgi                        ecgi,
    FddInfo                     fddInfo,
    MbmsServiceAreaIdentityList mbmsServiceAreaIdentity,
    integer                     pci,
    Plmn                        plmn,
    TddInfo                     tddInfo
  }
  type record of JSON.String MbmsServiceAreaIdentityList;
  type record of UuMbmsNeighbourCellInfo UuMbmsNeighbourCellInfoList;

  /**
   * @desc The provisioning information per location
   * @member locationInfo Location information to identify a cell of a base station or a particular geographical area
   * @member neighbourCellInfo The information of the neighbour cells in a visiting PLMN that support V2X communication over Uu MBMS
   */
  type record ProInfoUuMbms {
    LocationInfo                locationInfo,
    UuMbmsNeighbourCellInfoList neighbourCellInfo optional,
    V2xServerUsd v2xServerUsd
  }
  type record of ProInfoUuMbms ProInfoUuMbmsList;

  /**
   * @desc Provisioning information required for V2X communication over Uu MBMS
   * @member proInfoUuMbms The provisioning information per location as defined below
   * @member timeStamp_ TimeStamp
   * @see MEC030 Clause 6.2.3 Type: UuMbmsProvisioningInfo
   */
  type record UuMbmsProvisioningInfo {
    ProInfoUuMbmsList proInfoUuMbms,
YannGarcia's avatar
YannGarcia committed
    TimeStamp         timeStamp optional
  }

  /**
   * @desc Neighbour cell information in a visiting PLMN that supports V2X communication over Uu unicast
   * @member ecgi E-UTRAN CelI Global Identifier
   * @member fddInfo Information for FDD operation
   * @member pci Physical Cell Identifier
   * @member plmn Public Land Mobile Network Identity
   * @member tddInfo Information for TDD operation
   * @see MEC030 Clause 6.5.9 Type: UuUniNeighbourCellInfo
   */
  type record UuUniNeighbourCellInfo {
    Ecgi    ecgi,
    FddInfo fddInfo,
    integer pci,
    Plmn    plmn,
    TddInfo tddInfo
  }
  type record of UuUniNeighbourCellInfo UuUniNeighbourCellInfoList;

  /**
   * @desc The provisioning information per location as defined below
   * @member locationInfo Location information to identify a cell of a base station or a particular geographical area
   * @member neighbourCellInfoThe information of the neighbour cells in a visiting PLMN that support V2X communication over Uu unicast
   * @member v2xApplicationServer V2X Application Server address (consisting of IP address and UDP port) for unicast
   * @see MEC030 Clause 6.2.2 Type: UuUnicastProvisioningInfo
   */
  type record ProInfoUuUnicast {
    LocationInfo               locationInfo,
YannGarcia's avatar
YannGarcia committed
    V2xApplicationServer       v2xApplicationServer,
    UuUniNeighbourCellInfoList neighbourCellInfo optional
  }
  type record of ProInfoUuUnicast ProInfoUuUnicastList;

  /**
   * @desc Provisioning information required for V2X communication over Uu unicast
   * @member proInfoUuUnicast The provisioning information per location
   * @member timeStamp_ Time stamp
   * @see MEC030 Clause 6.2.2 Type: UuUnicastProvisioningInfo
   */
  type record UuUnicastProvisioningInfo {
    ProInfoUuUnicastList proInfoUuUnicast,
    TimeStamp timeStamp optional
  }

  /**
   * @desc V2X Application Server address (consisting of IP address and UDP port) for unicast
   * @member ipAddress
   * @member udpPort
   * @see MEC030 Clause 6.5.8 Type: V2xApplicationServer
   */
  type record V2xApplicationServer {
    JSON.String ipAddress,
    JSON.String udpPort
  }

  /**
   * @desc Published V2X message type. Its value is defined by the standardization organization
   */
  type enumerated MsgType {
    denm  (1),
    cam   (2),
    poi   (3),
    spat  (4),
    map_  (5),
    ivi   (6),
    ev_rsr(7)
  } with {
    variant "JSON: as number"
  }
  type record of MsgType MsgTypeList;

  /**
   * @desc Standardization organization which defines the published V2X message type
   */
  type enumerated StdOrganization {
    ETSI
  }

  /**
   * @desc V2X message that a service consumer publishes to VIS
   * @member msgContent Published V2X message content. Its format is defined by the standardization organization indicated by the attribute stdOrganization
   * @member msgEncodeFormat The encode format of the V2X message, for example base64
   * @member msgType Published V2X message type. Its value is defined by the standardization organization indicated by the attribute stdOrganization
   * @member stdOrganization Standardization organization which defines the published V2X message type
   * @see MEC030 Clause 6.2.6 Type: V2xMsgPublication
   */
  type record V2xMsgPublication {
    JSON.String     msgContent,
    JSON.String     msgEncodeFormat,
    MsgType         msgType,
    StdOrganization stdOrganization
  }

  /**
   * @desc 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
   * @member msgType Subscribed V2X message type. Its value is defined by the standardization organization indicated by the attribute stdOrganization
   * @member stdOrganization Standardization organization which defines the published V2X message type
   * @see MEC030 Clause 6.3.5 Type: V2xMsgSubscription
   */
  type record V2xMsgSubscriptionFilterCriteria {
    MsgTypeList      msgType optional,
    StdOrganization stdOrganization
  }

/**
   * @desc Subscription to notification of V2X message
   * @member links Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests 
   * @member callbackReference URI selected by the service consumer to receive notifications on the subscribed V2X message. This shall be included both in the request and in response
   * @member expiryDeadline Time stamp
   * @member filterCriteria List of filtering criteria for the subscription
   * @member subscriptionType Shall be set to "V2xMsgSubscription"
   * @see MEC030 Clause 6.3.5 Type: V2xMsgSubscription
   */
  type record V2xMsgSubscription {
    LinkType                         links optional,
    JSON.AnyURI                      callbackReference,
    TimeStamp                        expiryDeadline optional,
    V2xMsgSubscriptionFilterCriteria filterCriteria,
    JSON.String                      subscriptionType
  } with {
    variant (links) "name as '_links'";
  }

  /**
   * @desc Link to resources related to this notification
   * @member subscription Self-referring URI. The URI shall be unique within the VIS API as it acts as an ID for the subscription
   * @see MEC030 Clause 6.4.5 Type: V2xMsgNotification
   */
  type record V2xMsgNotificationLinks {
    LinkType subscription
  }

  /**
   * @desc Notification for informing the subscribers about the V2X message
   * @member notificationType Shall be set to "V2xMsgNotification"
   * @member timeStamp_ Time stamp
   * @member stdOrganization Standardization organization which defines the published V2X message type ETSI: European Telecommunications Standards Institute
   * @member msgType Published V2X message type. Its value is defined by the standardization organization
   * @member msgEncodeFormat The encode format of the V2X message, for example base64
   * @member msgContent Published V2X message content. The format of the string is defined by the standardization organization
   * @member links Link to resources related to this notification
   * @see MEC030 Clause 6.4.5 Type: V2xMsgNotification
   */
  type record V2xMsgNotification {
    JSON.String             notificationType,
    TimeStamp               timeStamp,
    StdOrganization         stdOrganization,
    MsgType                 msgType,
    JSON.String             msgEncodeFormat,
    JSON.String             msgContent,
    V2xMsgNotificationLinks links
  } with {
    variant (links) "name as '_links'";
  }

  /**
   * @desc SDP with IP multicast address and port number used for V2X communication via MBMS
   * @member ipMulticastAddress
   * @member portNumber 
   * @see MEC030 Clause 6.5.10 Type: V2xServerUsd
   */
  type record SdpInfo {
    JSON.String ipMulticastAddress,
    JSON.String portNumber
  }
  type record of SdpInfo SdpInfoList;

  /**
   * @desc Temporary Mobile Group Identity (TMGI), which is used within MBMS to uniquely identify Multicast and Broadcast bearer services
   * @member mbmsServiceId MBMS Service ID consisting of three octets
   * @member mcc The Mobile Country Code part of PLMN Identity
   * @member mnc The Mobile Network Code part of PLMN Identity
   * @see MEC030 Clause 6.5.10 Type: V2xServerUsd
   */
  type record Tmgi {
    JSON.String mbmsServiceId,
    JSON.String mcc,
    JSON.String mnc
  }

  /**
   * @desc Temporary Mobile Group Identity (TMGI), which is used within MBMS to uniquely identify Multicast and Broadcast bearer services
   * @member serviceAreaIdentifier A list of service area identifier for the applicable MBMS broadcast area
   * @member sdpInfo SDP with IP multicast address and port number used for V2X communication via MBMS
   * @member tmgi Temporary Mobile Group Identity (TMGI), which is used within MBMS to uniquely identify Multicast and Broadcast bearer services
   * @see MEC030 Clause 6.5.10 Type: V2xServerUsd
   */
  type record V2xServerUsd {
    ServiceAreaIdentifier serviceAreaIdentifier,
YannGarcia's avatar
YannGarcia committed
    SdpInfo               sdpInfo,
    Tmgi                  tmgi
  }
  type record of JSON.String ServiceAreaIdentifier;

} with {
  encode "JSON"
} // End of module V2XInformationServiceAPI_TypesAndValues