module MeoPkgm_TypesAndValues { // JSON import from JSON all; // LibCommon import from LibCommon_BasicTypesAndValues all; type record AppPkg { JSON.String appPkgName, JSON.String appPkgVersion, JSON.String checksum, JSON.String appPkgPath } type record AppPkgWithError { JSON.String appPkgVersion, JSON.String checksum, JSON.String appPkgPath } type record of OnboardedAppPkgInfo OnboardedAppPkgInfoList; type record OnboardedAppPkgInfo { JSON.String appPkgId, JSON.String appName, JSON.String appDVersion, JSON.String checksum, OperationalState operationalState, UsageState usageState } type enumerated AppPkgOperation { DISABLE, ENABLE, ABORT } type enumerated OperationalState { ENABLED, DISABLED, DELETION_PENDING } type enumerated UsageState { IN_USE, NOT_IN_USE } type enumerated SubscriptionType { ON_BOARDING, OP_CHANGE } type enumerated SubscriptionTypeWithError { ONBOARDING, OP_CHANGE } type record of AppPkgSubscriptionInfo AppPkgSubscriptionInfoList; type record AppPkgSubscriptionInfo { JSON.String subscriptionId, SubscriptionType subscriptionType, JSON.AnyURI callbackUri } type record AppPkgSubscription { JSON.AnyURI callbackUri, SubscriptionType subscriptionType } type record AppPkgSubscriptionWithError { JSON.AnyURI callbackUri, SubscriptionTypeWithError subscriptionType } type enumerated NotificationType { ON_BOARDING, OP_CHANGE } type record AppPkgNotification { NotificationType notificationType, JSON.String subscriptionId, //@TODO: links should be named _links but getting error. //@TODO: links shuld be a record, but cannot contain self cause self is a key for ttnc JSON.AnyURI links } // // //type record of AppMobilityServiceInfo AppMobilityServiceInfos; //type record AppMobilityServiceInfo { // RegistrationInfos registeredAppMobilityService , // String appMobilityServiceId //} // //type record of RegistrationInfo RegistrationInfos; //type record RegistrationInfo { // ServiceConsumerId serviceConsumerId, // DeviceInformations deviceInformation optional, // UInt32 expiryTime optional //} // // // // // //type record of ServiceConsumerId ServiceConsumerIds; //type record ServiceConsumerId { // String appInstanceId optional, // String mepId optional //} // //// Erroneous parameter: appInstance should be appInstanceId //type record of ServiceConsumer ServiceConsumers; //type record ServiceConsumer { // String appInstance optional, // String mepId optional //} // //type record of DeviceInformation DeviceInformations; //type record DeviceInformation { // String associateId //} // // //type JSON.AnyURI links; // //type enumerated SubscriptionType { // MobilityProcedureSubscription, // AdjacentAppInfoSubscription //} // //type record Subscription { // JSON.AnyURI href, // SubscriptionType subscriptionType //} // // //type record of AmsSubscriptionLinkList AmsSubscriptionLinkLists; //type record AmsSubscriptionLinkList { // JSON.AnyURI links, // Subscription subscription //} // // //type record MobilityProcedureSubscriptionError { // SubscriptionType subscriptionType, // JSON.AnyURI callbackReference, // JSON.AnyURI links optional, // FilterCriteria filterCriteria, // TimeStamp expiryDeadline optional //} // // // // //type record of MobilityProcedureSubscription MobilityProcedureSubscriptions; //type record MobilityProcedureSubscription { // SubscriptionType subscriptionType, // JSON.AnyURI callbackReference, // JSON.AnyURI links optional, // FilterCriteria filterCriteria, // TimeStamp expiryDeadline optional //} // //type enumerated MobilityStatusType { // INTERHOST_MOVEOUT_TRIGGERED, // TARGET_APPINST_CONFIRMED, // TARGET_TRAFFIC_RULE_ACTIVATED, // INTERHOST_MOVEOUT_COMPLETED, // INTERHOST_MOVEOUT_FAILED //} // //type record AssociateIdList { // String associateId //} // //type record of FilterCriteria FilterCriterias; //type record FilterCriteria { // String appInstanceId optional, // AssociateIdList associateId optional, // MobilityStatusType mobilityStatus //} // // // //type record AdjacentFilterCriteria { // String appInstanceId optional //} // // //type record of ExpiryNotification ExpiryNotifications; //type record ExpiryNotification { // TimeStamp timeStamp, // JSON.AnyURI links optional, // TimeStamp expiryDeadline //} // //type record of AdjacentAppInfoSubscription AdjacentAppInfoSubscriptions; //type record AdjacentAppInfoSubscription { // SubscriptionType subscriptionType, // JSON.AnyURI callbackReference, // JSON.AnyURI links optional, // AdjacentFilterCriteria filterCriteria, // TimeStamp expiryDeadline optional //} /** * @desc * @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 */ type record TimeStamp { Seconds seconds, NanoSeconds nanoSeconds } /** * @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 Problem Details for HTTP APIs * @member type_ A URI reference according to IETF RFC 3986 that identifies the problem type * @member title A short, human-readable summary of the problem type * @member status The HTTP status code for this occurrence of the problem * @member detail A human-readable explanation specific to this occurrence of the problem * @member instance A URI reference that identifies the specific occurrence of the problem * @see IETF RFC 7807 Clause 3. The Problem Details JSON Object */ type record ProblemDetails { JSON.String type_, JSON.String title, UInt32 status, JSON.String detail, JSON.String instance } with { variant (type_) "name as 'type'"; } } with { encode "JSON" }