V2XInformationServiceAPI_Templates.ttcn 27.9 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_Templates {

  // JSON
  import from JSON all;

  // LibCommon
  import from LibCommon_BasicTypesAndValues all;

  // LibMec/V2XInformationServiceAPI
  import from V2XInformationServiceAPI_TypesAndValues all;
  import from V2XInformationServiceAPI_Pixits all;

  template (omit) UuUnicastProvisioningInfo m_uu_unicast_provisioning_info(
                                                                            in template (value) ProInfoUuUnicastList p_proInfoUuUnicast,
                                                                            in template (omit) TimeStamp p_timeStamp := omit
                                                                            ) := {
    proInfoUuUnicast := p_proInfoUuUnicast,
    timeStamp        := p_timeStamp
  } // End of template m_uu_unicast_provisioning_info

  template (present) UuUnicastProvisioningInfo mw_uu_unicast_provisioning_info(
                                                                               template (present) ProInfoUuUnicastList p_proInfoUuUnicast := ?,
                                                                               template TimeStamp p_timeStamp := *
                                                                               ) := {
    proInfoUuUnicast := p_proInfoUuUnicast,
    timeStamp        := p_timeStamp
  } // End of template mw_uu_unicast_provisioning_info

YannGarcia's avatar
YannGarcia committed
  template (omit) UuMbmsProvisioningInfo m_uu_mbms_provisioning_info(
YannGarcia's avatar
YannGarcia committed
                                                                     in template (value) ProInfoUuMbmsList p_proInfoUuMbms,
                                                                     in template (omit) TimeStamp p_timeStamp := omit
                                                                     ) := {
YannGarcia's avatar
YannGarcia committed
    proInfoUuMbms := p_proInfoUuMbms,
    timeStamp     := p_timeStamp
  } // End of template m_uu_mbms_provisioning_info

  template (present) UuMbmsProvisioningInfo mw_uu_mbms_provisioning_info(
YannGarcia's avatar
YannGarcia committed
                                                                         template (present) ProInfoUuMbmsList p_proInfoUuMbms := ?,
                                                                         template TimeStamp p_timeStamp := *
                                                                         ) := {
YannGarcia's avatar
YannGarcia committed
    proInfoUuMbms := p_proInfoUuMbms,
    timeStamp     := p_timeStamp
  } // End of template mw_uu_mbms_provisioning_info

  template (omit) Pc5ProvisioningInfo m_pc5_provisioning_info(
                                                              in template (value) Pc5ProvisioningInfoProInfoPc5List p_proInfoPc5,
                                                              in template (omit) TimeStamp p_timeStamp := omit
                                                              ) := {
    proInfoPc5 := p_proInfoPc5,
    timeStamp  := p_timeStamp
  } // End of template m_pc5_provisioning_info

  template (present) Pc5ProvisioningInfo mw_pc5_provisioning_info(
                                                                  template (present) Pc5ProvisioningInfoProInfoPc5List p_proInfoPc5 := ?,
                                                                  template TimeStamp p_timeStamp := *
                                                                  ) := {
    proInfoPc5 := p_proInfoPc5,
    timeStamp  := p_timeStamp
  } // End of template mw_pc5_provisioning_info

YannGarcia's avatar
YannGarcia committed
  template (omit) PredictedQos m_predicted_qos(
                                               in template (value) JSON.String p_locationGranularity,
                                               in template (value) PredictedQosRoutesList p_routes,
                                               in template (omit) TimeStamp p_timeGranularity := omit
                                               ) := {
    timeGranularity     := p_timeGranularity,
    locationGranularity := p_locationGranularity,
    routes              := p_routes
  } // End of template m_predicted_qos

  template PredictedQos mw_predicted_qos(
                                         template (present) JSON.String p_locationGranularity := ?,
                                         template (present) PredictedQosRoutesList p_routes := ?,
                                         template TimeStamp p_timeGranularity := *
                                               ) := {
    timeGranularity     := p_timeGranularity,
    locationGranularity := p_locationGranularity,
    routes              := p_routes
  } // End of template mw_predicted_qos

  template (value) PredictedQosRoutes m_predicted_qos_routes(
                                                             in template (value) RouteInfoList p_routeinfo
                                                             ) := {
    routeinfo := p_routeinfo
  } // End of template m_predicted_qos_routes

  template (present) PredictedQosRoutes mw_predicted_qos_routes(
                                                                template (present) RouteInfoList p_routeinfo := ?
                                                                ) := {
    routeinfo := p_routeinfo
  } // End of template mw_predicted_qos_routes

  template (omit) RouteInfo m_route_info(
                                          in template (value) LocationInfo p_location,
                                          in template (omit) TimeStamp p_time := omit,
                                          in template (omit) UInt8 p_rsrp := omit,
                                          in template (omit) UInt8 p_rsrq := omit
                                          ) := {
    location := p_location,
    time     := p_time,
    rsrp     := p_rsrp,
    rsrq     := p_rsrq
  } // End of template m_route_info

  template RouteInfo mw_route_info(
                                  template (present) LocationInfo p_location := ?,
                                  template TimeStamp p_time := *,
                                  template UInt8 p_rsrp := *,
                                  template UInt8 p_rsrq := *
                                  ) := {
    location := p_location,
    time     := p_time,
    rsrp     := p_rsrp,
    rsrq     := p_rsrq
  } // End of template mw_route_info

  template (omit) LocationInfo m_location_info(
                                               in template (value) Ecgi p_ecgi,
                                               in template (omit) LocationInfoGeoArea p_geoArea := omit
                                               ) := {
    ecgi := p_ecgi,
    geoArea := p_geoArea
  } // End of template m_location_info

  template LocationInfo mw_location_info(
                                         template (present) Ecgi p_ecgi := ?,
                                         template LocationInfoGeoArea p_geoArea := *
                                         ) := {
    ecgi := p_ecgi,
    geoArea := p_geoArea
  } // End of template mw_location_info

  template (value) LocationInfoGeoArea m_location_info_geo_area(
                                                                in JSON.Number p_latitude,
                                                                in JSON.Number p_longitude
                                                                ) := {
    latitude  := p_latitude,
    longitude := p_longitude
  } // End of m_location_info_geo_area

  template (present) LocationInfoGeoArea mw_location_info_geo_area(
                                                                   template (present) JSON.Number p_latitude := ?,
                                                                   template (present) JSON.Number p_longitude := ?
                                                                   ) := {
    latitude  := p_latitude,
    longitude := p_longitude
  } // End of mw_location_info_geo_area

  template (value) Ecgi m_ecgi(
                               in JSON.String p_cellId,
                               in template (value) Plmn p_plmn
                               ) := {
    cellId := {
               cellId := p_cellId
              },
    plmn := p_plmn
  } // End of template m_ecgi

  template (present) Ecgi mw_ecgi(
                                  template (present) JSON.String p_cellId := ?,
                                  template (present) Plmn p_plmn := ?
                                  ) := {
    cellId := {
               cellId := p_cellId
              },
    plmn := p_plmn
  } // End of template mw_ecgi

  template (value) Plmn m_plmn(
                               in JSON.String p_mcc,
                               in JSON.String p_mnc
                               ) := {
    mcc := p_mcc,
    mnc := p_mnc
  } // End of template m_plmn

  template (present) Plmn mw_plmn(
                                  template (present) JSON.String p_mcc := ?,
                                  template (present) JSON.String p_mnc := ?
                                  ) := {
    mcc := p_mcc,
    mnc := p_mnc
  } // End of template mw_plmn

  template (value) V2xMsgPublication m_v2x_message(
                                                   in JSON.String p_msgContent := "AgIAEPQ9JwVAWXGJVq3AIK5gAgAgADDUHgAAASAWhAMQpQcz/+H/+gAQAA==",
                                                   in JSON.String p_msgEncodeFormat := "base64",
                                                   in MsgType p_msgType := cam,
                                                   in StdOrganization p_stdOrganization := ETSI
                                                   ) := {
    msgContent := p_msgContent,
    msgEncodeFormat := p_msgEncodeFormat,
    msgType := p_msgType,
    stdOrganization := p_stdOrganization
  } // End of template m_v2x_message

  template (present) V2xMsgPublication mw_v2x_message(
                                                      template (present) JSON.String p_msgContent := ?,
                                                      template (present) JSON.String p_msgEncodeFormat := "base64",
                                                      template (present) MsgType p_msgType := ?,
                                                      template (present) StdOrganization p_stdOrganization := ETSI
                                                      ) := {
    msgContent := p_msgContent,
    msgEncodeFormat := p_msgEncodeFormat,
    msgType := p_msgType,
    stdOrganization := p_stdOrganization
  } // End of template mw_v2x_message

  template (omit) ProvChgUuUniSubscription m_prov_chg_uu_uni_subscription(
                                                                          in template (value) JSON.AnyURI p_callbackReference,
                                                                          in template (value) ProvChgUuUniSubscriptionFilterCriteria p_filterCriteria,
                                                                          in template (omit) LinkType p_links := omit,
                                                                          in template (omit) TimeStamp p_expiryDeadline := omit
                                                                          ) := {
    links             := p_links,
    callbackReference := p_callbackReference,
    expiryDeadline    := p_expiryDeadline,
    filterCriteria    := p_filterCriteria,
    subscriptionType  := "ProvChgUuUniSubscription"
  } // End of template m_prov_chg_uu_uni_subscription

  template (omit) ProvChgUuUniSubscription m_prov_chg_uu_uni_subscription_invalid(
                                                                                  in template (value) JSON.AnyURI p_callbackReference,
                                                                                  in template (value) ProvChgUuUniSubscriptionFilterCriteria p_filterCriteria,
                                                                                  in template (omit) LinkType p_links := omit,
                                                                                  in template (omit) TimeStamp p_expiryDeadline := omit
                                                                                  ) := {
    links             := p_links,
    callbackReference := p_callbackReference,
    expiryDeadline    := p_expiryDeadline,
    filterCriteria    := p_filterCriteria,
    subscriptionType  := "InvalidProvChgUuUniSubscription"
  } // End of template m_prov_chg_uu_uni_subscription

  template ProvChgUuUniSubscription mw_prov_chg_uu_uni_subscription(
                                                                    template (present) JSON.AnyURI p_callbackReference := ?,
                                                                    template (present) ProvChgUuUniSubscriptionFilterCriteria p_filterCriteria := ?,
                                                                    template LinkType p_links := *,
                                                                    template TimeStamp p_expiryDeadline := *
                                                                    ) := {
    links             := p_links,
    callbackReference := p_callbackReference,
    expiryDeadline    := p_expiryDeadline,
    filterCriteria    := p_filterCriteria,
    subscriptionType  := "ProvChgUuUniSubscription"
  } // End of template mw_prov_chg_uu_uni_subscription

  template (omit) ProvChgUuUniSubscriptionFilterCriteria m_prov_chg_uu_uni_filter_criteria(
                                                                                           in template (value) LocationInfo p_location_info,
                                                                                           in template (value) V2xApplicationServer p_v2xApplicationServer,
                                                                                           in template (omit) UuMbmsNeighbourCellInfoList p_neighbourCellInfo := omit
                                                                                           ) := {
    locationInfo         := p_location_info,
    neighbourCellInfo    := p_neighbourCellInfo,
    v2xApplicationServer := p_v2xApplicationServer
  } // End of template m_prov_chg_uu_uni_filter_criteria

  template ProvChgUuUniSubscriptionFilterCriteria mw_prov_chg_uu_uni_filter_criteria(
                                                                                     template (present) LocationInfo p_location_info := ?,
                                                                                     template (present) V2xApplicationServer p_v2xApplicationServer := ?,
                                                                                     template UuMbmsNeighbourCellInfoList p_neighbourCellInfo := *
                                                                                     ) := {
    locationInfo         := p_location_info,
    neighbourCellInfo    := p_neighbourCellInfo,
    v2xApplicationServer := p_v2xApplicationServer
  } // End of template mw_prov_chg_uu_uni_filter_criteria

  template (value) V2xApplicationServer m_v2x_application_server(
                                                                 in JSON.String p_ip_address,
                                                                 in JSON.String p_udp_port
                                                                 ) := {
    ipAddress := p_ip_address,
    udpPort := p_udp_port
  } // End of template m_v2x_application_server

  template (present) V2xApplicationServer mw_v2x_application_server(
                                                                    template (present) JSON.String p_ip_address := ?,
                                                                    template (present) JSON.String p_udp_port := ?
                                                                    ) := {
    ipAddress := p_ip_address,
    udpPort := p_udp_port
  } // End of template mw_v2x_application_server

  template (omit) ProvChgUuMbmsSubscription m_prov_chg_uu_mbms_subscription(
                                                                            in template (value) JSON.AnyURI p_callbackReference,
                                                                            in template (value) ProvChgUuMbmsSubscriptionFilterCriteria p_filterCriteria,
                                                                            in template (omit) LinkType p_links := omit,
                                                                            in template (omit) TimeStamp p_expiryDeadline := omit
                                                                            ) := {
    links             := p_links,
    callbackReference := p_callbackReference,
    expiryDeadline    := p_expiryDeadline,
    filterCriteria    := p_filterCriteria,
    subscriptionType  := "ProvChgUuMbmsSubscription"
  } // End of template m_prov_chg_uu_mbms_subscription

  template ProvChgUuMbmsSubscription mw_prov_chg_uu_mbms_subscription(
                                                                      template (present) JSON.AnyURI p_callbackReference := ?,
                                                                      template (present) ProvChgUuMbmsSubscriptionFilterCriteria p_filterCriteria := ?,
                                                                      template LinkType p_links := *,
                                                                      template TimeStamp p_expiryDeadline := *
                                                                    ) := {
    links             := p_links,
    callbackReference := p_callbackReference,
    expiryDeadline    := p_expiryDeadline,
    filterCriteria    := p_filterCriteria,
    subscriptionType  := "ProvChgUuMbmsSubscription"
  } // End of template mw_prov_chg_uu_mbms_subscription

  template (omit) ProvChgUuMbmsSubscriptionFilterCriteria m_prov_chg_uu_mbms_filter_criteria(
                                                                                             in template (value) LocationInfo p_locationInfo,
                                                                                             in template (value) V2xServerUsd p_v2xServerUsd,
                                                                                             template (omit) UuMbmsNeighbourCellInfoList p_neighbourCellInfo := omit
                                                                                             ) := {
    locationInfo      := p_locationInfo,
    neighbourCellInfo := p_neighbourCellInfo,
    v2xServerUsd      := p_v2xServerUsd
  } // End of template m_prov_chg_uu_mbms_filter_criteria

  template (present) ProvChgUuMbmsSubscriptionFilterCriteria mw_prov_chg_uu_mbms_filter_criteria(
                                                                                                 template (present) LocationInfo p_locationInfo := ?,
                                                                                                 template (present) V2xServerUsd p_v2xServerUsd := ?,
                                                                                                 template UuMbmsNeighbourCellInfoList p_neighbourCellInfo := *
                                                                                                 ) := {
    locationInfo      := p_locationInfo,
    neighbourCellInfo := p_neighbourCellInfo,
    v2xServerUsd      := p_v2xServerUsd
  } // End of template mw_prov_chg_uu_mbms_filter_criteria

  template (value) V2xServerUsd m_v2x_server_usd(
                                                 in template (value) ServiceAreaIdentifier p_serviceAreaIdentifier,
                                                 in template (value) SdpInfo p_sdpInfo,
                                                 in template (value) Tmgi p_tmgi
                                                 ) := {
    serviceAreaIdentifier := p_serviceAreaIdentifier,
    sdpInfo               := p_sdpInfo,
    tmgi                  := p_tmgi
  } // End of template m_v2x_server_usd

  template (present) V2xServerUsd mw_v2x_server_usd(
                                                    template (present) ServiceAreaIdentifier p_serviceAreaIdentifier := ?,
                                                    template (present) SdpInfo p_sdpInfo := ?,
                                                    template (present) Tmgi p_tmgi := ?
                                                    ) := {
    serviceAreaIdentifier := p_serviceAreaIdentifier,
    sdpInfo               := p_sdpInfo,
    tmgi                  := p_tmgi
  } // End of template mw_v2x_server_usd

  template (value) SdpInfo m_sdp_info(
                                      in JSON.String p_ipMulticastAddress,
                                      in JSON.String p_portNumber
                                      ) := {
    ipMulticastAddress := p_ipMulticastAddress,
    portNumber         := p_portNumber
  } // End of template m_sdp_info

  template (present) SdpInfo mw_sdp_info(
                                         template (present) JSON.String p_ipMulticastAddress := ?,
                                         template (present) JSON.String p_portNumber := ?
                                      ) := {
    ipMulticastAddress := p_ipMulticastAddress,
    portNumber         := p_portNumber
  } // End of template mw_sdp_info

  template (value) Tmgi m_tmgi(
                               in JSON.String p_mbmsServiceId,
                               in JSON.String p_mcc,
                               in JSON.String p_mnc
                               ) := {
    mbmsServiceId := p_mbmsServiceId,
    mcc           := p_mcc,
    mnc           := p_mnc
  } // End of template m_tmgi

  template (present) Tmgi mw_tmgi(
                                  template (present) JSON.String p_mbmsServiceId := ?,
                                  template (present) JSON.String p_mcc := ?,
                                  template (present) JSON.String p_mnc := ?
                                  ) := {
    mbmsServiceId := p_mbmsServiceId,
    mcc           := p_mcc,
    mnc           := p_mnc
  } // End of template mw_tmgi

  template (omit) ProvChgPc5Subscription m_prov_chg_pc5_subscription(
                                                                     in template (value) JSON.AnyURI p_callbackReference,
                                                                     in template (value) FilterCriteria p_filterCriteria,
                                                                     in template (omit) LinkType p_links := omit,
                                                                     in template (omit) TimeStamp p_expiryDeadline := omit
                                                                     ) := {
    links             := p_links,
    callbackReference := p_callbackReference,
    expiryDeadline    := p_expiryDeadline,
    filterCriteria    := p_filterCriteria,
    subscriptionType  := "ProvChgPc5Subscription"
  } // End of template m_prov_chg_pc5_subscription

  template (present) ProvChgPc5Subscription mw_prov_chg_pc5_subscription(
                                                                         template (present) JSON.AnyURI p_callbackReference := ?,
                                                                         template (present) FilterCriteria p_filterCriteria := ?,
                                                                         template LinkType p_links := *,
                                                                         template TimeStamp p_expiryDeadline := *
                                                                         ) := {
    links             := p_links,
    callbackReference := p_callbackReference,
    expiryDeadline    := p_expiryDeadline,
    filterCriteria    := p_filterCriteria,
    subscriptionType  := "ProvChgPc5Subscription"
  } // End of template mw_prov_chg_pc5_subscription

  template (omit) FilterCriteria m_filter_criteria(
                                                   in template (value) JSON.String p_dstLayer2Id,
                                                   in template (value) LocationInfo p_locationInfo,
                                                   in template (omit) Pc5NeighbourCellInfoList p_neighbourCellInfo := omit
                                                   ) := {
    dstLayer2Id       := p_dstLayer2Id,
    locationInfo      := p_locationInfo,
    neighbourCellInfo := p_neighbourCellInfo
  } // End of template m_filter_criteria

  template (present) FilterCriteria mw_filter_criteria(
                                                       template (present) JSON.String p_dstLayer2Id := ?,
                                                       template (present) LocationInfo p_locationInfo := ?,
                                                       template Pc5NeighbourCellInfoList p_neighbourCellInfo := *
                                                       ) := {
    dstLayer2Id       := p_dstLayer2Id,
    locationInfo      := p_locationInfo,
    neighbourCellInfo := p_neighbourCellInfo
  } // End of template mw_filter_criteria

  template (omit) V2xMsgSubscription m_v2x_msg_subscription(
                                                            in template (value) JSON.AnyURI p_callbackReference,
                                                            in template (value) V2xMsgSubscriptionFilterCriteria p_filterCriteria,
                                                            in template (omit) LinkType p_links := omit,
                                                            in template (omit) TimeStamp p_expiryDeadline := omit
                                                            ) := {
    links := p_links,
    callbackReference := p_callbackReference,
    expiryDeadline := p_expiryDeadline,
    filterCriteria := p_filterCriteria,
    subscriptionType := "V2xMsgSubscription"
  } // End of template m_v2x_msg_subscription

  template (present) V2xMsgSubscription mw_v2x_msg_subscription(
                                                                template (present) JSON.AnyURI p_callbackReference := ?,
                                                                template (present) V2xMsgSubscriptionFilterCriteria p_filterCriteria := ?,
                                                                template LinkType p_links := *,
                                                                template TimeStamp p_expiryDeadline := *
                                                                ) := {
    links := p_links,
    callbackReference := p_callbackReference,
    expiryDeadline := p_expiryDeadline,
    filterCriteria := p_filterCriteria,
    subscriptionType := "V2xMsgSubscription"
  } // End of template mw_v2x_msg_subscription

  template (omit) V2xMsgSubscriptionFilterCriteria m_v2x_msg_subscription_filter_criteria(
                                                                                          in StdOrganization p_stdOrganization := ETSI,
                                                                                          in template (omit) MsgTypeList p_msgType := { cam, denm }
                                                                                          ) := {
    msgType         := p_msgType,
    stdOrganization := p_stdOrganization
  } // End of template m_v2x_msg_subscription_filter_criteria

  template (present) V2xMsgSubscriptionFilterCriteria mw_v2x_msg_subscription_filter_criteria(
                                                                                              template (present) StdOrganization p_stdOrganization := ETSI,
                                                                                              template MsgTypeList p_msgType := *
                                                                                              ) := {
    msgType         := p_msgType,
    stdOrganization := p_stdOrganization
  } // End of template mw_v2x_msg_subscription_filter_criteria

} // End of module V2XInformationServiceAPI_Templates