AppEnablementAPI_Templates.ttcn 17.9 KB
Newer Older
YannGarcia's avatar
YannGarcia committed
/**
 * @desc The ETSI MEC ISG MEC011 Application Enablement API described using OpenAPI
 * @see http://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/01.01.01_60/gs_mec011v010101p.pdf
 */
module AppEnablementAPI_Templates {

  // JSON
  import from JSON all;
 
  // LibCommon
  import from LibCommon_BasicTypesAndValues all;

  // LibMec/AppEna
  import from AppEnablementAPI_TypesAndValues all;
YannGarcia's avatar
YannGarcia committed
  import from AppEnablementAPI_Pixits all;
YannGarcia's avatar
YannGarcia committed

  template (value) SecurityInfo m_security_info(
                                                in GrantTypesList p_grantTypes := { OAUTH2_CLIENT_CREDENTIALS },
                                                in TokenEndpoint p_tokenEndpoint := "/mecSerMgmtApi/security/MyTokenEndPoint"
                                                ) := {
    oAuth2Info := {
      grantTypes := p_grantTypes,
      tokenEndpoint := p_tokenEndpoint
    }
  } // End of template m_security_info

  template (present) SecurityInfo mw_security_info(
                                                   template (present) GrantTypesList p_grantTypes := ?,
                                                   template (present) TokenEndpoint p_tokenEndpoint := ?
                                                   ) := {
    oAuth2Info := {
      grantTypes := p_grantTypes,
      tokenEndpoint := p_tokenEndpoint
    }
  } // End of template mw_security_info

  template (value) TransportInfo_Endpoint m_end_point_uris(
                                                           in template (value) EndPointInfo_UriList p_uris
                                                           ) := {
    uris := p_uris
  } // End of template m_end_point_uris

  template (present) TransportInfo_Endpoint mw_end_point_uris(
                                                              template (present) EndPointInfo_UriList p_uris := ?
                                                              ) := {
    uris := p_uris
  } // End of template mw_end_point_uris
YannGarcia's avatar
YannGarcia committed

YannGarcia's avatar
YannGarcia committed
  template (omit) ServiceInfo m_service_info(
                                             in SerName p_serName,
                                             in ServiceInfo_Version p_version := PX_SERVICE_INFO_VERSION,
                                             in ServiceInfo_State p_state := PX_SERVICE_INFO_STATE,
                                             in SerializerTypes p_serializer := PX_SERIALIZER,
                                             in template (omit) SerInstanceId p_serInstanceId := omit,
                                             in template (omit) TransportId p_transportId := omit,
                                             in template (omit) TransportInfo p_transportInfo := omit,
                                             in template (omit) CategoryRef p_serCategory := omit
  ) := {
    serInstanceId     := p_serInstanceId,
    serName           := p_serName,
    serCategory       := p_serCategory,
    version           := p_version,
    state             := p_state,
    transportId       := p_transportId,
    transportInfo     := p_transportInfo,
    serializer        := p_serializer,
    scopeOfLocality   := omit,
    consumedLocalOnly := omit,
    isLocal           := omit
  } // End of template m_service_info

  template ServiceInfo mw_service_info(
                                       template (present) SerName p_serName := ?,
                                       template (present) ServiceInfo_Version p_version := ?,
                                       template (present) ServiceInfo_State p_state := ?,
                                       template (present) SerializerTypes p_serializer := ?,
                                       template SerInstanceId p_serInstanceId := *,
                                       template TransportId p_transportId := *,
                                       template TransportInfo p_transportInfo := *,
                                       template CategoryRef p_serCategory := *
  ) := {
    serInstanceId     := p_serInstanceId,
    serName           := p_serName,
    serCategory       := p_serCategory,
    version           := p_version,
    state             := p_state,
    transportId       := p_transportId,
    transportInfo     := p_transportInfo,
    serializer        := p_serializer,
    scopeOfLocality   := *,
    consumedLocalOnly := *,
    isLocal           := *
  } // End of template mw_service_info

Yann Garcia's avatar
Yann Garcia committed
  template (value) SubscriptionLinkList m_subscription_link_list(
                                                                 in template (value) Links p_links
YannGarcia's avatar
YannGarcia committed
  ) := {
Yann Garcia's avatar
Yann Garcia committed
    links := p_links
YannGarcia's avatar
YannGarcia committed
  } // End of template m_subscription_link_list

Yann Garcia's avatar
Yann Garcia committed
  template (present) SubscriptionLinkList mw_subscription_link_list(
                                                                    template (present) Links p_links := ?
YannGarcia's avatar
YannGarcia committed
  ) := {
Yann Garcia's avatar
Yann Garcia committed
    links := p_links
YannGarcia's avatar
YannGarcia committed
  } // End of template mw_subscription_link_list

  template (value) Self m_self(
                              in template (value) LinkType p_self_,
                              in template (value) JSON.Bool p_readOnly := false
  ) := {
    self_    := p_self_,
    readOnly := p_readOnly
  } // End of template m_self

  template (value) AppTerminationNotificationSubscription m_app_termination_notif_subscription(
                                                                                               in template (value) AppTerminationNotificationSubscription_CallbackReference p_callbackReference,
                                                                                               in template (value) Self p_links,
                                                                                               in template (value) AppInstanceId p_appInstanceId
  ) := {
    subscriptionType  := "AppTerminationNotificationSubscription",
    callbackReference := p_callbackReference,
    links             := p_links,
    appInstanceId     := p_appInstanceId
  } // End of template m_app_termination_notif_subscription

YannGarcia's avatar
YannGarcia committed
  template (value) AppTerminationNotificationSubscription m_app_termination_notif_subscription_invalid(
                                                                                                       in template (value) AppTerminationNotificationSubscription_CallbackReference p_callbackReference,
                                                                                                       in template (value) Self p_links,
                                                                                                       in template (value) AppInstanceId p_appInstanceId
                                                                                                       ) modifies m_app_termination_notif_subscription := {
    subscriptionType  := "InvalidAppTerminationNotificationSubscription"
  } // End of template m_app_termination_notif_subscription_invalid

YannGarcia's avatar
YannGarcia committed
  template (present) AppTerminationNotificationSubscription mw_app_termination_notif_subscription(
                                                                                                  template (present) AppTerminationNotificationSubscription_CallbackReference p_callbackReference := ?,
                                                                                                  template (present) Self p_links := ?,
                                                                                                  template (present) AppInstanceId p_appInstanceId := ?
  ) := {
    subscriptionType  := "AppTerminationNotificationSubscription",
    callbackReference := p_callbackReference,
    links             := p_links,
    appInstanceId     := p_appInstanceId
  } // End of template mw_app_termination_notif_subscription

YannGarcia's avatar
YannGarcia committed
  template (value) TransportInfo m_transport_info(
                                                  in TransportInfo_Id p_id,
                                                  in TransportInfo_Name p_name,
                                                  in TransportTypes p_type_,
                                                  in TransportInfo_Protocol p_protocol,
                                                  in TransportInfo_Version p_version,
                                                  in template (value) TransportInfo_Endpoint p_endpoint,
                                                  in template (value) SecurityInfo p_security
YannGarcia's avatar
YannGarcia committed
                                                  ) := {
    id               := p_id,
    name             := p_name,
    description      := omit,
    type_            := p_type_,
    protocol         := p_protocol,
    version          := p_version,
    endpoint         := p_endpoint,
    security         := p_security,
    implSpecificInfo := omit
  } // End of template m_transport_info
  
  template (present) TransportInfo mw_transport_info(
                                                     template (present) TransportInfo_Id p_id := ?,
                                                     template (present) TransportInfo_Name p_name := ?,
                                                     template (present) TransportTypes p_type_ := ?,
                                                     template (present) TransportInfo_Protocol p_protocol := ?,
                                                     template (present) TransportInfo_Version p_version := ?,
                                                     template (present) TransportInfo_Endpoint p_endpoint := ?,
                                                     template (present) SecurityInfo p_security := ?
                                                     ) := {
    id               := p_id,
    name             := p_name,
    description      := *,
    type_            := p_type_,
    protocol         := p_protocol,
    version          := p_version,
    endpoint         := p_endpoint,
    security         := p_security,
    implSpecificInfo := *
  } // End of template mw_transport_info
  
YannGarcia's avatar
YannGarcia committed
  template (value) DnsRule m_dns_rule(
YannGarcia's avatar
YannGarcia committed
                                      in DnsRule_Id p_dnsRuleId := PX_DNS_RULE_ID,
                                      in DomainName p_domainName := PX_DOMAIN_NAME,
                                      in DnsRule_IpAddressType p_ipAddressType := PX_IP_ADDRESS_TYPE,
                                      in DnsRule_IpAddress p_ipAddress := PX_IP_ADDRESS,
                                      in Ttl p_ttl := PX_TTL,
YannGarcia's avatar
YannGarcia committed
                                      in DnsRule_State p_state := ACTIVE
                                      ) := {
    dnsRuleId     := p_dnsRuleId,
    domainName    := p_domainName,
    ipAddressType := p_ipAddressType,
    ipAddress     := p_ipAddress,
    ttl           := p_ttl,
    state         := p_state
  } // End of template m_dns_rule

  template (present) DnsRule mw_dns_rule(
                                         template (present) DnsRule_Id p_dnsRuleId := ?,
                                         template (present) DomainName p_domainName := ?,
                                         template (present) DnsRule_IpAddressType p_ipAddressType := ?,
                                         template (present) DnsRule_IpAddress p_ipAddress := ?,
                                         template (present) Ttl p_ttl := ?,
                                         template (present) DnsRule_State p_state := ?
                                         ) := {
    dnsRuleId     := p_dnsRuleId,
    domainName    := p_domainName,
    ipAddressType := p_ipAddressType,
    ipAddress     := p_ipAddress,
    ttl           := p_ttl,
    state         := p_state
  } // End of template mw_dns_rule

YannGarcia's avatar
YannGarcia committed
  template (omit) SerAvailabilityNotificationSubscription m_srv_avail_notif_subscription(
                                                                                         in template (value) SerAvailabilityNotificationSubscription_CallbackReference p_callbackReference,
                                                                                         in template (omit) Self p_links := omit,
                                                                                         in template (omit) ServiceInfo p_filteringCriteria := omit
                                                                                         ) := {
    subscriptionType := "SerAvailabilityNotificationSubscription",
    callbackReference := p_callbackReference,
    links             := p_links,
    filteringCriteria := p_filteringCriteria
  } // End of template m_srv_avail_notif_subscription

  template (omit) SerAvailabilityNotificationSubscription m_srv_avail_notif_subscription_invalid(
                                                                                                 in template (value) SerAvailabilityNotificationSubscription_CallbackReference p_callbackReference,
                                                                                                 in template (omit) Self p_links := omit,
                                                                                                 in template (omit) ServiceInfo p_filteringCriteria := omit
                                                                                                 ) modifies m_srv_avail_notif_subscription := {
    subscriptionType := "InvalidSerAvailabilityNotificationSubscription"
  } // End of template m_srv_avail_notif_subscription_invalid

  template SerAvailabilityNotificationSubscription mw_srv_avail_notif_subscription(
                                                                                   template (present) SerAvailabilityNotificationSubscription_CallbackReference p_callbackReference := ?,
                                                                                   template Self p_links := *,
                                                                                   template  ServiceInfo p_filteringCriteria := *
                                                                                   ) := {
    subscriptionType := "SerAvailabilityNotificationSubscription",
    callbackReference := p_callbackReference,
    links             := p_links,
    filteringCriteria := p_filteringCriteria
  } // End of template mw_srv_avail_notif_subscription

  template (omit) TimingCaps m_timing_caps(
                                           in template (omit) TimeStamp p_timeStamp,
                                           in template (omit) NtpServersList p_ntpServers := omit,
                                           in template (omit) TimingCaps_PtpMastersList p_ptpMasters := omit
                                           ) := {
    timeStamp  := p_timeStamp,
    ntpServers := p_ntpServers,
    ptpMasters := p_ptpMasters
  } // End of template m_timing_caps

  template TimingCaps mw_timing_caps(
                                     template TimeStamp p_timeStamp := *,
                                     template NtpServersList p_ntpServers := *,
                                     template TimingCaps_PtpMastersList p_ptpMasters := *
                                     ) := {
    timeStamp  := p_timeStamp,
    ntpServers := p_ntpServers,
    ptpMasters := p_ptpMasters
  } // End of template mw_timing_caps

  template (value) CurrentTime m_current_time(
                                              in template (value) Seconds p_seconds,
                                              in template (value) NanoSeconds p_nanoSeconds,
                                              in template (value) TimeSourceStatus p_timeSourceStatus := TRACEABLE
                                              ) := {
    seconds          := p_seconds,
    nanoSeconds      := p_nanoSeconds,
    timeSourceStatus := p_timeSourceStatus
  } // End of template m_current_time

  template (present) CurrentTime mw_current_time(
                                                 template (present) Seconds p_seconds := ?,
                                                 template (present) NanoSeconds p_nanoSeconds := ?,
                                                 template (present) TimeSourceStatus p_timeSourceStatus := TRACEABLE
                                                 ) := {
    seconds          := p_seconds,
    nanoSeconds      := p_nanoSeconds,
    timeSourceStatus := p_timeSourceStatus
  } // End of template mw_current_time

YannGarcia's avatar
YannGarcia committed
  template (value) TrafficRule m_traffic_rule(
                                              in TrafficRule_Id p_trafficRuleId,
                                              in TrafficRule_FilterType p_filterType := FLOW,
                                              in TrafficRule_Priority p_priority := 1,
                                              in TrafficFilterList p_trafficFilter := {},
YannGarcia's avatar
YannGarcia committed
                                              in TrafficRule_Action p_action_ := FORWARD_AS_IS,
YannGarcia's avatar
YannGarcia committed
                                              in TrafficRule_State p_state := ACTIVE
                                              ) := {
    trafficRuleId := p_trafficRuleId,
    filterType    := p_filterType,
    priority      := p_priority,
    trafficFilter := p_trafficFilter,
    action_       := p_action_,
    dstInterface  := omit,
    state         := p_state
  } // End of template m_traffic_rule
YannGarcia's avatar
YannGarcia committed
  template (present) TrafficRule mw_traffic_rule(
                                                 template (present) TrafficRule_Id p_trafficRuleId := ?,
                                                 template (present) TrafficRule_FilterType p_filterType := ?,
                                                 template (present) TrafficRule_Priority p_priority := ?,
                                                 template (present) TrafficFilterList p_trafficFilter := ?,
                                                 template (present) TrafficRule_Action p_action_ := ?,
                                                 template (present) TrafficRule_State p_state := ?
                                                 ) := {
    trafficRuleId := p_trafficRuleId,
    filterType    := p_filterType,
    priority      := p_priority,
    trafficFilter := p_trafficFilter,
    action_       := p_action_,
    dstInterface  := *,
    state         := p_state
  } // End of template mw_traffic_rule
  
YannGarcia's avatar
YannGarcia committed
} // End of module AppEnablementAPI_Templates