From 2e7c2da77d9bb7a9b1d8f548f2bd0aa773896e34 Mon Sep 17 00:00:00 2001 From: Ayesha Ayub Date: Tue, 17 Jan 2023 10:23:40 +0500 Subject: [PATCH 01/17] update App Enablement OAS as per MEC011 v3.1.1 --- AppSupport/proto3/.openapi-generator-ignore | 23 + AppSupport/proto3/.openapi-generator/FILES | 61 + AppSupport/proto3/.openapi-generator/VERSION | 1 + AppSupport/proto3/README.md | 31 + AppSupport/proto3/models/app_info.proto | 58 + .../proto3/models/app_info_endpoint.proto | 41 + AppSupport/proto3/models/app_profile.proto | 62 + .../models/app_ready_confirmation.proto | 23 + .../models/app_termination_confirmation.proto | 23 + .../models/app_termination_notification.proto | 32 + .../app_termination_notification_links.proto | 26 + ...ermination_notification_subscription.proto | 32 + AppSupport/proto3/models/category_ref.proto | 32 + AppSupport/proto3/models/current_time.proto | 29 + .../proto3/models/destination_interface.proto | 35 + ...destination_interface_interface_type.proto | 22 + AppSupport/proto3/models/dns_rule.proto | 38 + .../models/dns_rule_ip_address_type.proto | 21 + AppSupport/proto3/models/dns_rule_state.proto | 21 + .../models/end_point_info_address.proto | 26 + .../proto3/models/feature_dependency.proto | 26 + AppSupport/proto3/models/link_type.proto | 23 + ..._app_supt_api_subscription_link_list.proto | 23 + ...upt_api_subscription_link_list_links.proto | 27 + ..._subscription_link_list_subscription.proto | 26 + .../proto3/models/operation_action_type.proto | 21 + .../proto3/models/problem_details.proto | 35 + AppSupport/proto3/models/security_info.proto | 23 + .../models/security_info_o_auth2_info.proto | 27 + ...ecurity_info_o_auth2_info_grant_type.proto | 23 + AppSupport/proto3/models/self.proto | 23 + .../proto3/models/serializer_type.proto | 22 + .../proto3/models/service_dependency.proto | 36 + .../proto3/models/time_source_status.proto | 21 + AppSupport/proto3/models/timing_caps.proto | 31 + .../models/timing_caps_ntp_servers.proto | 41 + ...ps_ntp_servers_authentication_option.proto | 22 + ...aps_ntp_servers_ntp_server_addr_type.proto | 21 + .../models/timing_caps_ptp_masters.proto | 29 + .../models/timing_caps_time_stamp.proto | 26 + AppSupport/proto3/models/traffic_filter.proto | 59 + AppSupport/proto3/models/traffic_rule.proto | 42 + .../proto3/models/traffic_rule_action.proto | 25 + .../models/traffic_rule_filter_type.proto | 21 + .../proto3/models/traffic_rule_state.proto | 21 + .../proto3/models/transport_dependency.proto | 30 + .../proto3/models/transport_descriptor.proto | 32 + AppSupport/proto3/models/transport_type.proto | 26 + AppSupport/proto3/models/tunnel_info.proto | 29 + .../models/tunnel_info_tunnel_type.proto | 21 + .../services/app_confirm_ready_service.proto | 34 + .../app_confirm_termination_service.proto | 34 + .../services/app_dns_rules_service.proto | 58 + .../services/app_registrations_service.proto | 58 + .../services/app_subscriptions_service.proto | 63 + .../services/app_traffic_rules_service.proto | 58 + .../proto3/services/timing_service.proto | 29 + MecAppSupportApi.json | 1365 ++++++++--- MecAppSupportApi.yaml | 2037 +++++++++++++---- MecServiceMgmtApi.json | 302 ++- MecServiceMgmtApi.yaml | 1482 +++++++----- README.md | 10 +- ServiceMgmt/proto3/.openapi-generator-ignore | 23 + ServiceMgmt/proto3/.openapi-generator/FILES | 36 + ServiceMgmt/proto3/.openapi-generator/VERSION | 1 + ServiceMgmt/proto3/README.md | 31 + ServiceMgmt/proto3/models/category_ref.proto | 32 + .../models/end_point_info_address.proto | 26 + .../models/end_point_info_addresses.proto | 24 + ServiceMgmt/proto3/models/link_type.proto | 23 + ServiceMgmt/proto3/models/locality_type.proto | 25 + ...vice_mgmt_api_subscription_link_list.proto | 23 + ...gmt_api_subscription_link_list_links.proto | 27 + ..._subscription_link_list_subscription.proto | 26 + .../proto3/models/problem_details.proto | 35 + ServiceMgmt/proto3/models/security_info.proto | 23 + .../models/security_info_o_auth2_info.proto | 27 + ...ecurity_info_o_auth2_info_grant_type.proto | 23 + ServiceMgmt/proto3/models/self.proto | 23 + ...ailability_notification_subscription.proto | 32 + ...tion_subscription_filtering_criteria.proto | 37 + .../proto3/models/serializer_type.proto | 22 + .../service_availability_notification.proto | 30 + ...vailability_notification_change_type.proto | 23 + ...lity_notification_service_references.proto | 35 + ServiceMgmt/proto3/models/service_info.proto | 58 + .../proto3/models/service_info_links.proto | 25 + .../proto3/models/service_liveness_info.proto | 29 + .../service_liveness_info_time_stamp.proto | 24 + .../models/service_liveness_update.proto | 23 + ServiceMgmt/proto3/models/service_state.proto | 22 + ServiceMgmt/proto3/models/subscription.proto | 23 + .../proto3/models/transport_info.proto | 48 + .../models/transport_info_endpoint.proto | 37 + .../proto3/models/transport_type.proto | 26 + .../services/app_services_service.proto | 92 + .../services/app_subscriptions_service.proto | 63 + .../individual_me_cservice_service.proto | 34 + .../proto3/services/services_service.proto | 55 + .../proto3/services/transports_service.proto | 30 + 100 files changed, 6685 insertions(+), 1510 deletions(-) create mode 100644 AppSupport/proto3/.openapi-generator-ignore create mode 100644 AppSupport/proto3/.openapi-generator/FILES create mode 100644 AppSupport/proto3/.openapi-generator/VERSION create mode 100644 AppSupport/proto3/README.md create mode 100644 AppSupport/proto3/models/app_info.proto create mode 100644 AppSupport/proto3/models/app_info_endpoint.proto create mode 100644 AppSupport/proto3/models/app_profile.proto create mode 100644 AppSupport/proto3/models/app_ready_confirmation.proto create mode 100644 AppSupport/proto3/models/app_termination_confirmation.proto create mode 100644 AppSupport/proto3/models/app_termination_notification.proto create mode 100644 AppSupport/proto3/models/app_termination_notification_links.proto create mode 100644 AppSupport/proto3/models/app_termination_notification_subscription.proto create mode 100644 AppSupport/proto3/models/category_ref.proto create mode 100644 AppSupport/proto3/models/current_time.proto create mode 100644 AppSupport/proto3/models/destination_interface.proto create mode 100644 AppSupport/proto3/models/destination_interface_interface_type.proto create mode 100644 AppSupport/proto3/models/dns_rule.proto create mode 100644 AppSupport/proto3/models/dns_rule_ip_address_type.proto create mode 100644 AppSupport/proto3/models/dns_rule_state.proto create mode 100644 AppSupport/proto3/models/end_point_info_address.proto create mode 100644 AppSupport/proto3/models/feature_dependency.proto create mode 100644 AppSupport/proto3/models/link_type.proto create mode 100644 AppSupport/proto3/models/mec_app_supt_api_subscription_link_list.proto create mode 100644 AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_links.proto create mode 100644 AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto create mode 100644 AppSupport/proto3/models/operation_action_type.proto create mode 100644 AppSupport/proto3/models/problem_details.proto create mode 100644 AppSupport/proto3/models/security_info.proto create mode 100644 AppSupport/proto3/models/security_info_o_auth2_info.proto create mode 100644 AppSupport/proto3/models/security_info_o_auth2_info_grant_type.proto create mode 100644 AppSupport/proto3/models/self.proto create mode 100644 AppSupport/proto3/models/serializer_type.proto create mode 100644 AppSupport/proto3/models/service_dependency.proto create mode 100644 AppSupport/proto3/models/time_source_status.proto create mode 100644 AppSupport/proto3/models/timing_caps.proto create mode 100644 AppSupport/proto3/models/timing_caps_ntp_servers.proto create mode 100644 AppSupport/proto3/models/timing_caps_ntp_servers_authentication_option.proto create mode 100644 AppSupport/proto3/models/timing_caps_ntp_servers_ntp_server_addr_type.proto create mode 100644 AppSupport/proto3/models/timing_caps_ptp_masters.proto create mode 100644 AppSupport/proto3/models/timing_caps_time_stamp.proto create mode 100644 AppSupport/proto3/models/traffic_filter.proto create mode 100644 AppSupport/proto3/models/traffic_rule.proto create mode 100644 AppSupport/proto3/models/traffic_rule_action.proto create mode 100644 AppSupport/proto3/models/traffic_rule_filter_type.proto create mode 100644 AppSupport/proto3/models/traffic_rule_state.proto create mode 100644 AppSupport/proto3/models/transport_dependency.proto create mode 100644 AppSupport/proto3/models/transport_descriptor.proto create mode 100644 AppSupport/proto3/models/transport_type.proto create mode 100644 AppSupport/proto3/models/tunnel_info.proto create mode 100644 AppSupport/proto3/models/tunnel_info_tunnel_type.proto create mode 100644 AppSupport/proto3/services/app_confirm_ready_service.proto create mode 100644 AppSupport/proto3/services/app_confirm_termination_service.proto create mode 100644 AppSupport/proto3/services/app_dns_rules_service.proto create mode 100644 AppSupport/proto3/services/app_registrations_service.proto create mode 100644 AppSupport/proto3/services/app_subscriptions_service.proto create mode 100644 AppSupport/proto3/services/app_traffic_rules_service.proto create mode 100644 AppSupport/proto3/services/timing_service.proto create mode 100644 ServiceMgmt/proto3/.openapi-generator-ignore create mode 100644 ServiceMgmt/proto3/.openapi-generator/FILES create mode 100644 ServiceMgmt/proto3/.openapi-generator/VERSION create mode 100644 ServiceMgmt/proto3/README.md create mode 100644 ServiceMgmt/proto3/models/category_ref.proto create mode 100644 ServiceMgmt/proto3/models/end_point_info_address.proto create mode 100644 ServiceMgmt/proto3/models/end_point_info_addresses.proto create mode 100644 ServiceMgmt/proto3/models/link_type.proto create mode 100644 ServiceMgmt/proto3/models/locality_type.proto create mode 100644 ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list.proto create mode 100644 ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto create mode 100644 ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto create mode 100644 ServiceMgmt/proto3/models/problem_details.proto create mode 100644 ServiceMgmt/proto3/models/security_info.proto create mode 100644 ServiceMgmt/proto3/models/security_info_o_auth2_info.proto create mode 100644 ServiceMgmt/proto3/models/security_info_o_auth2_info_grant_type.proto create mode 100644 ServiceMgmt/proto3/models/self.proto create mode 100644 ServiceMgmt/proto3/models/ser_availability_notification_subscription.proto create mode 100644 ServiceMgmt/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto create mode 100644 ServiceMgmt/proto3/models/serializer_type.proto create mode 100644 ServiceMgmt/proto3/models/service_availability_notification.proto create mode 100644 ServiceMgmt/proto3/models/service_availability_notification_change_type.proto create mode 100644 ServiceMgmt/proto3/models/service_availability_notification_service_references.proto create mode 100644 ServiceMgmt/proto3/models/service_info.proto create mode 100644 ServiceMgmt/proto3/models/service_info_links.proto create mode 100644 ServiceMgmt/proto3/models/service_liveness_info.proto create mode 100644 ServiceMgmt/proto3/models/service_liveness_info_time_stamp.proto create mode 100644 ServiceMgmt/proto3/models/service_liveness_update.proto create mode 100644 ServiceMgmt/proto3/models/service_state.proto create mode 100644 ServiceMgmt/proto3/models/subscription.proto create mode 100644 ServiceMgmt/proto3/models/transport_info.proto create mode 100644 ServiceMgmt/proto3/models/transport_info_endpoint.proto create mode 100644 ServiceMgmt/proto3/models/transport_type.proto create mode 100644 ServiceMgmt/proto3/services/app_services_service.proto create mode 100644 ServiceMgmt/proto3/services/app_subscriptions_service.proto create mode 100644 ServiceMgmt/proto3/services/individual_me_cservice_service.proto create mode 100644 ServiceMgmt/proto3/services/services_service.proto create mode 100644 ServiceMgmt/proto3/services/transports_service.proto diff --git a/AppSupport/proto3/.openapi-generator-ignore b/AppSupport/proto3/.openapi-generator-ignore new file mode 100644 index 0000000..7484ee5 --- /dev/null +++ b/AppSupport/proto3/.openapi-generator-ignore @@ -0,0 +1,23 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/AppSupport/proto3/.openapi-generator/FILES b/AppSupport/proto3/.openapi-generator/FILES new file mode 100644 index 0000000..ffc6a53 --- /dev/null +++ b/AppSupport/proto3/.openapi-generator/FILES @@ -0,0 +1,61 @@ +.openapi-generator-ignore +README.md +models/app_info.proto +models/app_info_endpoint.proto +models/app_profile.proto +models/app_profile_end_pt.proto +models/app_ready_confirmation.proto +models/app_termination_confirmation.proto +models/app_termination_notification.proto +models/app_termination_notification_links.proto +models/app_termination_notification_subscription.proto +models/category_ref.proto +models/current_time.proto +models/destination_interface.proto +models/destination_interface_interface_type.proto +models/dns_rule.proto +models/dns_rule_ip_address_type.proto +models/dns_rule_state.proto +models/end_point_info_address.proto +models/end_point_info_addresses.proto +models/end_point_info_alternative.proto +models/end_point_info_fqdn.proto +models/end_point_info_uris.proto +models/feature_dependency.proto +models/link_type.proto +models/link_type_confirm_termination.proto +models/mec_app_supt_api_subscription_link_list.proto +models/mec_app_supt_api_subscription_link_list_links.proto +models/mec_app_supt_api_subscription_link_list_subscription.proto +models/operation_action_type.proto +models/problem_details.proto +models/security_info.proto +models/security_info_o_auth2_info.proto +models/security_info_o_auth2_info_grant_type.proto +models/self.proto +models/serializer_type.proto +models/service_dependency.proto +models/time_source_status.proto +models/timing_caps.proto +models/timing_caps_ntp_servers.proto +models/timing_caps_ntp_servers_authentication_option.proto +models/timing_caps_ntp_servers_ntp_server_addr_type.proto +models/timing_caps_ptp_masters.proto +models/timing_caps_time_stamp.proto +models/traffic_filter.proto +models/traffic_rule.proto +models/traffic_rule_action.proto +models/traffic_rule_filter_type.proto +models/traffic_rule_state.proto +models/transport_dependency.proto +models/transport_descriptor.proto +models/transport_type.proto +models/tunnel_info.proto +models/tunnel_info_tunnel_type.proto +services/app_confirm_ready_service.proto +services/app_confirm_termination_service.proto +services/app_dns_rules_service.proto +services/app_registrations_service.proto +services/app_subscriptions_service.proto +services/app_traffic_rules_service.proto +services/timing_service.proto diff --git a/AppSupport/proto3/.openapi-generator/VERSION b/AppSupport/proto3/.openapi-generator/VERSION new file mode 100644 index 0000000..0df17dd --- /dev/null +++ b/AppSupport/proto3/.openapi-generator/VERSION @@ -0,0 +1 @@ +6.2.1 \ No newline at end of file diff --git a/AppSupport/proto3/README.md b/AppSupport/proto3/README.md new file mode 100644 index 0000000..a0b1c2d --- /dev/null +++ b/AppSupport/proto3/README.md @@ -0,0 +1,31 @@ +# gPRC for mec011 + +The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + +## Overview +These files were generated by the [OpenAPI Generator](https://openapi-generator.tech) project. + +- API version: 3.1.1 +- Package version: +- Build package: org.openapitools.codegen.languages.ProtobufSchemaCodegen + +## Usage + +Below are some usage examples for Go and Ruby. For other languages, please refer to https://grpc.io/docs/quickstart/. + +### Go +``` +# assuming `protoc-gen-go` has been installed with `go get -u github.com/golang/protobuf/protoc-gen-go` +mkdir /var/tmp/go/ +protoc --go_out=/var/tmp/go/ services/* +protoc --go_out=/var/tmp/go/ models/* +``` + +### Ruby +``` +# assuming `grpc_tools_ruby_protoc` has been installed via `gem install grpc-tools` +RUBY_OUTPUT_DIR="/var/tmp/ruby/mec011" +mkdir $RUBY_OUTPUT_DIR +grpc_tools_ruby_protoc --ruby_out=$RUBY_OUTPUT_DIR --grpc_out=$RUBY_OUTPUT_DIR/lib services/* +grpc_tools_ruby_protoc --ruby_out=$RUBY_OUTPUT_DIR --grpc_out=$RUBY_OUTPUT_DIR/lib models/* +``` diff --git a/AppSupport/proto3/models/app_info.proto b/AppSupport/proto3/models/app_info.proto new file mode 100644 index 0000000..64e3966 --- /dev/null +++ b/AppSupport/proto3/models/app_info.proto @@ -0,0 +1,58 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/app_info_endpoint.proto"; +import public "models/app_profile.proto"; +import public "models/category_ref.proto"; +import public "models/feature_dependency.proto"; +import public "models/service_dependency.proto"; + +message AppInfo { + + // Name of the application. It shall be consistent with the appName in the AppD, if an AppD is available. + string appName = 0; + + // Provider of the application. It shall be consistent with the appProvider in the AppD, if an AppD is available. See note 1. + string appProvider = 1; + + CategoryRef appCategory = 2; + + // The application descriptor identifier. It is managed by the application provider to identify the application descriptor in a globally unique way. Shall be present if the application instance is instantiated by the MEC Management. + string appDId = 3; + + // Identifier of the application instance. Shall be present if the application instance is instantiated by the MEC Management. + string appInstanceId = 4; + + AppInfoEndpoint endpoint = 5; + + // Describes services a MEC application requires to run. ServiceDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available. + repeated ServiceDependency appServiceRequired = 6; + + // Describes services a MEC application may use if available. ServiceDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available. + repeated ServiceDependency appServiceOptional = 7; + + // Describes features a MEC application requires to run. FeatureDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available. + repeated FeatureDependency appFeatureRequired = 8; + + // Describes features a MEC application may use if available. FeatureDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available. + repeated FeatureDependency appFeatureOptional = 9; + + // Indicate whether the application instance is instantiated by the MEC Management. Default to FALSE if absent. + bool isInsByMec = 10; + + AppProfile appProfile = 11; + +} diff --git a/AppSupport/proto3/models/app_info_endpoint.proto b/AppSupport/proto3/models/app_info_endpoint.proto new file mode 100644 index 0000000..2777804 --- /dev/null +++ b/AppSupport/proto3/models/app_info_endpoint.proto @@ -0,0 +1,41 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/end_point_info_address.proto"; +import public "models/end_point_info_addresses.proto"; +import public "models/end_point_info_alternative.proto"; +import public "models/end_point_info_fqdn.proto"; +import public "models/end_point_info_uris.proto"; +import public "models/todo_object_mapping.proto"; + +message AppInfoEndpoint { + +oneOf EndpointInfo { + + // Entry point information of the service as string, formatted according to URI syntax + repeated string uris = 0; + + // Fully Qualified Domain Name of the service. See note. + repeated string fqdn = 1; + + // Entry point information of the service as one or more pairs of IP address and port. See note. + repeated EndPointInfoAddress addresses = 2; + + // Entry point information of the service in a format defined by an implementation, or in an external specification. See note. + string alternative = 3; +} + +} diff --git a/AppSupport/proto3/models/app_profile.proto b/AppSupport/proto3/models/app_profile.proto new file mode 100644 index 0000000..946725f --- /dev/null +++ b/AppSupport/proto3/models/app_profile.proto @@ -0,0 +1,62 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/app_profile_end_pt.proto"; + +message AppProfile { + + // The identifier of the EAS + string easId = 0; + + AppInfoEndpoint endPt = 1; + + // Identities of the Application Clients that can be served by the EAS + repeated string acIds = 2; + + // Identifier of the ASP that provides the EAS. + string provId = 3; + + // The category or type of EAS. + string type = 4; + + // The availability schedule of the EAS. + repeated string scheds = 5; + + // The list of geographical and topological areas that the EAS serves. ACs in the UE that are outside the area will not be served. + string svcArea = 6; + + // Service characteristics provided by the EAS. + string svcKpi = 7; + + // level of service permissions supported by the EAS. + repeated string permLvl = 8; + + // Service features supported by the EAS. + repeated string easFeats = 9; + + // The ACR scenarios supported by the EAS for service continuity. + repeated string svcContSupp = 10; + + // List of DNAI(s) and the N6 traffic information associated with the EAS. + repeated string appLocs = 11; + + // The period indicating to the EES, how often the EES needs to check the EAS's availability after a successful registration. + int32 avlRep = 12; + + // EAS status information. + string status = 13; + +} diff --git a/AppSupport/proto3/models/app_ready_confirmation.proto b/AppSupport/proto3/models/app_ready_confirmation.proto new file mode 100644 index 0000000..a7cf30a --- /dev/null +++ b/AppSupport/proto3/models/app_ready_confirmation.proto @@ -0,0 +1,23 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message AppReadyConfirmation { + + // Indication about the MEC application instance. + string indication = 0; + +} diff --git a/AppSupport/proto3/models/app_termination_confirmation.proto b/AppSupport/proto3/models/app_termination_confirmation.proto new file mode 100644 index 0000000..4b5399d --- /dev/null +++ b/AppSupport/proto3/models/app_termination_confirmation.proto @@ -0,0 +1,23 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/operation_action_type.proto"; + +message AppTerminationConfirmation { + + OperationActionType operationAction = 0; + +} diff --git a/AppSupport/proto3/models/app_termination_notification.proto b/AppSupport/proto3/models/app_termination_notification.proto new file mode 100644 index 0000000..983e27a --- /dev/null +++ b/AppSupport/proto3/models/app_termination_notification.proto @@ -0,0 +1,32 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/app_termination_notification_links.proto"; +import public "models/operation_action_type.proto"; + +message AppTerminationNotification { + + // Shall be set to AppTerminationNotification. + string notificationType = 0; + + OperationActionType operationAction = 1; + + // Maximum timeout value in seconds for graceful termination or graceful stop of an application instance. + int32 maxGracefulTimeout = 2; + + AppTerminationNotificationLinks _links = 3; + +} diff --git a/AppSupport/proto3/models/app_termination_notification_links.proto b/AppSupport/proto3/models/app_termination_notification_links.proto new file mode 100644 index 0000000..1a98b75 --- /dev/null +++ b/AppSupport/proto3/models/app_termination_notification_links.proto @@ -0,0 +1,26 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/link_type.proto"; +import public "models/link_type_confirm_termination.proto"; + +message AppTerminationNotificationLinks { + + LinkType subscription = 0; + + LinkType confirmTermination = 1; + +} diff --git a/AppSupport/proto3/models/app_termination_notification_subscription.proto b/AppSupport/proto3/models/app_termination_notification_subscription.proto new file mode 100644 index 0000000..db7e068 --- /dev/null +++ b/AppSupport/proto3/models/app_termination_notification_subscription.proto @@ -0,0 +1,32 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/self.proto"; + +message AppTerminationNotificationSubscription { + + // Shall be set to AppTerminationNotificationSubscription. + string subscriptionType = 0; + + // URI selected by the MEC application instance to receive notifications on the subscribed MEC application instance management information. This shall be included in both the request and the response. + string callbackReference = 1; + + Self _links = 2; + + // It is used as the filtering criterion for the subscribed events. + string appInstanceId = 3; + +} diff --git a/AppSupport/proto3/models/category_ref.proto b/AppSupport/proto3/models/category_ref.proto new file mode 100644 index 0000000..3517fd1 --- /dev/null +++ b/AppSupport/proto3/models/category_ref.proto @@ -0,0 +1,32 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message CategoryRef { + + // Reference of the catalogue + string href = 0; + + // Unique identifier of the category + string id = 1; + + // Name of the category, example values include RNI, Location & Bandwidth Management + string name = 2; + + // Category version + string version = 3; + +} diff --git a/AppSupport/proto3/models/current_time.proto b/AppSupport/proto3/models/current_time.proto new file mode 100644 index 0000000..33e9f6e --- /dev/null +++ b/AppSupport/proto3/models/current_time.proto @@ -0,0 +1,29 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/time_source_status.proto"; + +message CurrentTime { + + // The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + int32 seconds = 0; + + // The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + int32 nanoSeconds = 1; + + TimeSourceStatus timeSourceStatus = 2; + +} diff --git a/AppSupport/proto3/models/destination_interface.proto b/AppSupport/proto3/models/destination_interface.proto new file mode 100644 index 0000000..b798312 --- /dev/null +++ b/AppSupport/proto3/models/destination_interface.proto @@ -0,0 +1,35 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/destination_interface_interface_type.proto"; +import public "models/tunnel_info.proto"; + +message DestinationInterface { + + DestinationInterfaceInterfaceType interfaceType = 0; + + TunnelInfo tunnelInfo = 1; + + // Source address identifies the MAC address of the interface + string srcMacAddress = 2; + + // Source address identifies the MAC address of the interface + string dstMacAddress = 3; + + // IP address of the remote destination + string dstIpAddress = 4; + +} diff --git a/AppSupport/proto3/models/destination_interface_interface_type.proto b/AppSupport/proto3/models/destination_interface_interface_type.proto new file mode 100644 index 0000000..41fb545 --- /dev/null +++ b/AppSupport/proto3/models/destination_interface_interface_type.proto @@ -0,0 +1,22 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum DestinationInterfaceInterfaceType { + DestinationInterfaceInterfaceType_TUNNEL = 0; + DestinationInterfaceInterfaceType_MAC = 1; + DestinationInterfaceInterfaceType_IP = 2; +} diff --git a/AppSupport/proto3/models/dns_rule.proto b/AppSupport/proto3/models/dns_rule.proto new file mode 100644 index 0000000..6bbd49e --- /dev/null +++ b/AppSupport/proto3/models/dns_rule.proto @@ -0,0 +1,38 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/dns_rule_ip_address_type.proto"; +import public "models/dns_rule_state.proto"; + +message DnsRule { + + // Identifies the DNS Rule + string dnsRuleId = 0; + + // FQDN resolved by the DNS rule + string domainName = 1; + + DnsRuleIpAddressType ipAddressType = 2; + + // IP address associated with the FQDN resolved by the DNS rule + string ipAddress = 3; + + // Time to live value + int32 ttl = 4; + + DnsRuleState state = 5; + +} diff --git a/AppSupport/proto3/models/dns_rule_ip_address_type.proto b/AppSupport/proto3/models/dns_rule_ip_address_type.proto new file mode 100644 index 0000000..842a2cd --- /dev/null +++ b/AppSupport/proto3/models/dns_rule_ip_address_type.proto @@ -0,0 +1,21 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum DnsRuleIpAddressType { + DnsRuleIpAddressType_V6 = 0; + DnsRuleIpAddressType_V4 = 1; +} diff --git a/AppSupport/proto3/models/dns_rule_state.proto b/AppSupport/proto3/models/dns_rule_state.proto new file mode 100644 index 0000000..28169ff --- /dev/null +++ b/AppSupport/proto3/models/dns_rule_state.proto @@ -0,0 +1,21 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum DnsRuleState { + DnsRuleState_ACTIVE = 0; + DnsRuleState_INACTIVE = 1; +} diff --git a/AppSupport/proto3/models/end_point_info_address.proto b/AppSupport/proto3/models/end_point_info_address.proto new file mode 100644 index 0000000..748de87 --- /dev/null +++ b/AppSupport/proto3/models/end_point_info_address.proto @@ -0,0 +1,26 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message EndPointInfoAddress { + + // Host portion of the address + string host = 0; + + // Port portion of the address + int32 port = 1; + +} diff --git a/AppSupport/proto3/models/feature_dependency.proto b/AppSupport/proto3/models/feature_dependency.proto new file mode 100644 index 0000000..f633e75 --- /dev/null +++ b/AppSupport/proto3/models/feature_dependency.proto @@ -0,0 +1,26 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message FeatureDependency { + + // The name of the feature, for example, UserApps, UEIdentity, etc. + string featureName = 0; + + // The version of the feature. + string version = 1; + +} diff --git a/AppSupport/proto3/models/link_type.proto b/AppSupport/proto3/models/link_type.proto new file mode 100644 index 0000000..f4c4bab --- /dev/null +++ b/AppSupport/proto3/models/link_type.proto @@ -0,0 +1,23 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message LinkType { + + // URI referring to a resource + string href = 0; + +} diff --git a/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list.proto b/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list.proto new file mode 100644 index 0000000..5be384f --- /dev/null +++ b/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list.proto @@ -0,0 +1,23 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/mec_app_supt_api_subscription_link_list_links.proto"; + +message MecAppSuptApiSubscriptionLinkList { + + MecAppSuptApiSubscriptionLinkListLinks _links = 0; + +} diff --git a/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_links.proto b/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_links.proto new file mode 100644 index 0000000..1ad36a0 --- /dev/null +++ b/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_links.proto @@ -0,0 +1,27 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/link_type.proto"; +import public "models/mec_app_supt_api_subscription_link_list_subscription.proto"; + +message MecAppSuptApiSubscriptionLinkListLinks { + + LinkType self = 0; + + // The MEC application instance's subscriptions + repeated MecAppSuptApiSubscriptionLinkListSubscription subscriptions = 1; + +} diff --git a/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto b/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto new file mode 100644 index 0000000..58fc21c --- /dev/null +++ b/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto @@ -0,0 +1,26 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message MecAppSuptApiSubscriptionLinkListSubscription { + + // URI referring to a resource + string href = 0; + + // The values shall be set to AppTerminationNotificationSubscription. + string subscriptionType = 1; + +} diff --git a/AppSupport/proto3/models/operation_action_type.proto b/AppSupport/proto3/models/operation_action_type.proto new file mode 100644 index 0000000..d5b5b75 --- /dev/null +++ b/AppSupport/proto3/models/operation_action_type.proto @@ -0,0 +1,21 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum OperationActionType { + OperationActionType_STOPPING = 0; + OperationActionType_TERMINATING = 1; +} diff --git a/AppSupport/proto3/models/problem_details.proto b/AppSupport/proto3/models/problem_details.proto new file mode 100644 index 0000000..b87ec4b --- /dev/null +++ b/AppSupport/proto3/models/problem_details.proto @@ -0,0 +1,35 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message ProblemDetails { + + // A URI reference according to IETF RFC 3986 that identifies the problem type + string type = 0; + + // A short, human-readable summary of the problem type + string title = 1; + + // The HTTP status code for this occurrence of the problem + int32 status = 2; + + // A human-readable explanation specific to this occurrence of the problem + string detail = 3; + + // A URI reference that identifies the specific occurrence of the problem + string instance = 4; + +} diff --git a/AppSupport/proto3/models/security_info.proto b/AppSupport/proto3/models/security_info.proto new file mode 100644 index 0000000..e903865 --- /dev/null +++ b/AppSupport/proto3/models/security_info.proto @@ -0,0 +1,23 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/security_info_o_auth2_info.proto"; + +message SecurityInfo { + + SecurityInfoOAuth2Info oAuth2Info = 0; + +} diff --git a/AppSupport/proto3/models/security_info_o_auth2_info.proto b/AppSupport/proto3/models/security_info_o_auth2_info.proto new file mode 100644 index 0000000..64aa211 --- /dev/null +++ b/AppSupport/proto3/models/security_info_o_auth2_info.proto @@ -0,0 +1,27 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/security_info_o_auth2_info_grant_type.proto"; + +message SecurityInfoOAuth2Info { + + // List of supported OAuth 2.0 grant types. + repeated SecurityInfoOAuth2InfoGrantType grantTypes = 0; + + // The token endpoint + string tokenEndpoint = 1; + +} diff --git a/AppSupport/proto3/models/security_info_o_auth2_info_grant_type.proto b/AppSupport/proto3/models/security_info_o_auth2_info_grant_type.proto new file mode 100644 index 0000000..df8e2ac --- /dev/null +++ b/AppSupport/proto3/models/security_info_o_auth2_info_grant_type.proto @@ -0,0 +1,23 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum SecurityInfoOAuth2InfoGrantType { + SecurityInfoOAuth2InfoGrantType_AUTHORIZATION_CODE = 0; + SecurityInfoOAuth2InfoGrantType_IMPLICIT_GRANT = 1; + SecurityInfoOAuth2InfoGrantType_RESOURCE_OWNER = 2; + SecurityInfoOAuth2InfoGrantType_CLIENT_CREDENTIALS = 3; +} diff --git a/AppSupport/proto3/models/self.proto b/AppSupport/proto3/models/self.proto new file mode 100644 index 0000000..5246935 --- /dev/null +++ b/AppSupport/proto3/models/self.proto @@ -0,0 +1,23 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/link_type.proto"; + +message Self { + + LinkType self = 0; + +} diff --git a/AppSupport/proto3/models/serializer_type.proto b/AppSupport/proto3/models/serializer_type.proto new file mode 100644 index 0000000..f1820dd --- /dev/null +++ b/AppSupport/proto3/models/serializer_type.proto @@ -0,0 +1,22 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum SerializerType { + SerializerType_JSON = 0; + SerializerType_XML = 1; + SerializerType_PROTOBUF3 = 2; +} diff --git a/AppSupport/proto3/models/service_dependency.proto b/AppSupport/proto3/models/service_dependency.proto new file mode 100644 index 0000000..1bd4051 --- /dev/null +++ b/AppSupport/proto3/models/service_dependency.proto @@ -0,0 +1,36 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/category_ref.proto"; +import public "models/transport_dependency.proto"; + +message ServiceDependency { + + // Requested permissions regarding the access of the application to the service. See clause 8.2 of ETSI GS MEC 009 [4]. The format of this attribute is left for the data model design stage. + repeated string requestedPermissions = 0; + + CategoryRef serCategory = 1; + + // The name of the service, for example, RNIS, LocationService, etc. + string serName = 2; + + // Indicates transport and serialization format dependencies of consuming the service. Defaults to REST + JSON if absent. See note. + repeated TransportDependency serTransportDependencies = 3; + + // The version of the service. + string version = 4; + +} diff --git a/AppSupport/proto3/models/time_source_status.proto b/AppSupport/proto3/models/time_source_status.proto new file mode 100644 index 0000000..3443628 --- /dev/null +++ b/AppSupport/proto3/models/time_source_status.proto @@ -0,0 +1,21 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum TimeSourceStatus { + TimeSourceStatus_TRACEABLE = 0; + TimeSourceStatus_NONTRACEABLE = 1; +} diff --git a/AppSupport/proto3/models/timing_caps.proto b/AppSupport/proto3/models/timing_caps.proto new file mode 100644 index 0000000..5dc9332 --- /dev/null +++ b/AppSupport/proto3/models/timing_caps.proto @@ -0,0 +1,31 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/timing_caps_ntp_servers.proto"; +import public "models/timing_caps_ptp_masters.proto"; +import public "models/timing_caps_time_stamp.proto"; + +message TimingCaps { + + TimingCapsTimeStamp timeStamp = 0; + + // Available NTP servers + repeated TimingCapsNtpServers ntpServers = 1; + + // Number of available PTP Servers (referred to as \"masters\" in IEEE 1588-2019) + repeated TimingCapsPtpMasters ptpMasters = 2; + +} diff --git a/AppSupport/proto3/models/timing_caps_ntp_servers.proto b/AppSupport/proto3/models/timing_caps_ntp_servers.proto new file mode 100644 index 0000000..0c8eec9 --- /dev/null +++ b/AppSupport/proto3/models/timing_caps_ntp_servers.proto @@ -0,0 +1,41 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/timing_caps_ntp_servers_authentication_option.proto"; +import public "models/timing_caps_ntp_servers_ntp_server_addr_type.proto"; + +message TimingCapsNtpServers { + + TimingCapsNtpServersNtpServerAddrType ntpServerAddrType = 0; + + // NTP server address + string ntpServerAddr = 1; + + // Minimum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17 + int32 minPollingInterval = 2; + + // Maximum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17 + int32 maxPollingInterval = 3; + + // NTP server local priority + int32 localPriority = 4; + + TimingCapsNtpServersAuthenticationOption authenticationOption = 5; + + // Authentication key number. This configuration is valid and shall be present if authenticationOption is set to SYMMETRIC_KEY + int32 authenticationKeyNum = 6; + +} diff --git a/AppSupport/proto3/models/timing_caps_ntp_servers_authentication_option.proto b/AppSupport/proto3/models/timing_caps_ntp_servers_authentication_option.proto new file mode 100644 index 0000000..64a4e04 --- /dev/null +++ b/AppSupport/proto3/models/timing_caps_ntp_servers_authentication_option.proto @@ -0,0 +1,22 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum TimingCapsNtpServersAuthenticationOption { + TimingCapsNtpServersAuthenticationOption_NONE = 0; + TimingCapsNtpServersAuthenticationOption_SYMMETRIC_KEY = 1; + TimingCapsNtpServersAuthenticationOption_AUTO_KEY = 2; +} diff --git a/AppSupport/proto3/models/timing_caps_ntp_servers_ntp_server_addr_type.proto b/AppSupport/proto3/models/timing_caps_ntp_servers_ntp_server_addr_type.proto new file mode 100644 index 0000000..2df1a75 --- /dev/null +++ b/AppSupport/proto3/models/timing_caps_ntp_servers_ntp_server_addr_type.proto @@ -0,0 +1,21 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum TimingCapsNtpServersNtpServerAddrType { + TimingCapsNtpServersNtpServerAddrType_IP_ADDRESS = 0; + TimingCapsNtpServersNtpServerAddrType_DNS_NAME = 1; +} diff --git a/AppSupport/proto3/models/timing_caps_ptp_masters.proto b/AppSupport/proto3/models/timing_caps_ptp_masters.proto new file mode 100644 index 0000000..72e32c6 --- /dev/null +++ b/AppSupport/proto3/models/timing_caps_ptp_masters.proto @@ -0,0 +1,29 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message TimingCapsPtpMasters { + + // PTP Server (referred to as \"master\" in IEEE 1588-2019) IP Address + string ptpMasterIpAddress = 0; + + // PTP Server (referred to as \"master\" in IEEE 1588-2019 ) local priority + int32 ptpMasterLocalPriority = 1; + + // Acceptable maximum rate of the Delay_Req messages in packets per second + int32 delayReqMaxRate = 2; + +} diff --git a/AppSupport/proto3/models/timing_caps_time_stamp.proto b/AppSupport/proto3/models/timing_caps_time_stamp.proto new file mode 100644 index 0000000..3203fb4 --- /dev/null +++ b/AppSupport/proto3/models/timing_caps_time_stamp.proto @@ -0,0 +1,26 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message TimingCapsTimeStamp { + + // The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + int32 seconds = 0; + + // The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + int32 nanoSeconds = 1; + +} diff --git a/AppSupport/proto3/models/traffic_filter.proto b/AppSupport/proto3/models/traffic_filter.proto new file mode 100644 index 0000000..d0613ec --- /dev/null +++ b/AppSupport/proto3/models/traffic_filter.proto @@ -0,0 +1,59 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message TrafficFilter { + + // An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes. + repeated string srcAddress = 0; + + // An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes. + repeated string dstAddress = 1; + + // A port or a range of ports + repeated string srcPort = 2; + + // A port or a range of ports + repeated string dstPort = 3; + + // Specify the protocol of the traffic filter + repeated string protocol = 4; + + // Used for token based traffic rule + repeated string tag = 5; + + // Used for GTP tunnel based traffic rule + repeated string srcTunnelAddress = 6; + + // Used for GTP tunnel based traffic rule + repeated string tgtTunnelAddress = 7; + + // Used for GTP tunnel based traffic rule + repeated string srcTunnelPort = 8; + + // Used for GTP tunnel based traffic rule + repeated string dstTunnelPort = 9; + + // Used to match all packets that have the same Quality Class Indicator (QCI). + int32 qCI = 10; + + // Used to match all IPv4 packets that have the same Differentiated Services Code Point (DSCP) + int32 dSCP = 11; + + // Used to match all IPv6 packets that have the same Traffic Class. + int32 tC = 12; + +} diff --git a/AppSupport/proto3/models/traffic_rule.proto b/AppSupport/proto3/models/traffic_rule.proto new file mode 100644 index 0000000..2eb9d61 --- /dev/null +++ b/AppSupport/proto3/models/traffic_rule.proto @@ -0,0 +1,42 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/destination_interface.proto"; +import public "models/traffic_filter.proto"; +import public "models/traffic_rule_action.proto"; +import public "models/traffic_rule_filter_type.proto"; +import public "models/traffic_rule_state.proto"; + +message TrafficRule { + + // Identify the traffic rule. + string trafficRuleId = 0; + + TrafficRuleFilterType filterType = 1; + + // Priority of this traffic rule within the range 0 to 255. If traffic rules conflict, the one with higher priority take precedence. Value indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest priority. + int32 priority = 2; + + // + repeated TrafficFilter trafficFilter = 3; + + TrafficRuleAction action = 4; + + repeated DestinationInterface dstInterface = 5; + + TrafficRuleState state = 6; + +} diff --git a/AppSupport/proto3/models/traffic_rule_action.proto b/AppSupport/proto3/models/traffic_rule_action.proto new file mode 100644 index 0000000..dbdc026 --- /dev/null +++ b/AppSupport/proto3/models/traffic_rule_action.proto @@ -0,0 +1,25 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum TrafficRuleAction { + TrafficRuleAction_DROP = 0; + TrafficRuleAction_FORWARD_DECAPSULATED = 1; + TrafficRuleAction_FORWARD_ENCAPSULATED = 2; + TrafficRuleAction_PASSTHROUGH = 3; + TrafficRuleAction_DUPLICATE_DECAPSULATED = 4; + TrafficRuleAction_DUPLICATE_ENCAPSULATED = 5; +} diff --git a/AppSupport/proto3/models/traffic_rule_filter_type.proto b/AppSupport/proto3/models/traffic_rule_filter_type.proto new file mode 100644 index 0000000..1d1055a --- /dev/null +++ b/AppSupport/proto3/models/traffic_rule_filter_type.proto @@ -0,0 +1,21 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum TrafficRuleFilterType { + TrafficRuleFilterType_FLOW = 0; + TrafficRuleFilterType_PACKET = 1; +} diff --git a/AppSupport/proto3/models/traffic_rule_state.proto b/AppSupport/proto3/models/traffic_rule_state.proto new file mode 100644 index 0000000..be4b004 --- /dev/null +++ b/AppSupport/proto3/models/traffic_rule_state.proto @@ -0,0 +1,21 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum TrafficRuleState { + TrafficRuleState_ACTIVE = 0; + TrafficRuleState_INACTIVE = 1; +} diff --git a/AppSupport/proto3/models/transport_dependency.proto b/AppSupport/proto3/models/transport_dependency.proto new file mode 100644 index 0000000..14366ed --- /dev/null +++ b/AppSupport/proto3/models/transport_dependency.proto @@ -0,0 +1,30 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/serializer_type.proto"; +import public "models/transport_descriptor.proto"; + +message TransportDependency { + + // Set of labels that allow to define groups of transport bindings. The mechanism of the grouping is defined below this table. + repeated string labels = 0; + + // Information about the serializers in this transport binding, as defined in the SerializerType type in ETSI GS MEC 011 [i.4]. Support for at least one of the entries is required in conjunction with the transport. + repeated SerializerType serializers = 1; + + TransportDescriptor transport = 2; + +} diff --git a/AppSupport/proto3/models/transport_descriptor.proto b/AppSupport/proto3/models/transport_descriptor.proto new file mode 100644 index 0000000..49471ba --- /dev/null +++ b/AppSupport/proto3/models/transport_descriptor.proto @@ -0,0 +1,32 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/security_info.proto"; +import public "models/transport_type.proto"; + +message TransportDescriptor { + + // The name of the protocol used. Shall be set to \"HTTP\" for a REST API. + string protocol = 0; + + SecurityInfo security = 1; + + TransportType type = 2; + + // The version of the protocol used. + string version = 3; + +} diff --git a/AppSupport/proto3/models/transport_type.proto b/AppSupport/proto3/models/transport_type.proto new file mode 100644 index 0000000..95508e3 --- /dev/null +++ b/AppSupport/proto3/models/transport_type.proto @@ -0,0 +1,26 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum TransportType { + TransportType_REST_HTTP = 0; + TransportType_MB_TOPIC_BASED = 1; + TransportType_MB_ROUTING = 2; + TransportType_MB_PUBSUB = 3; + TransportType_RPC = 4; + TransportType_RPC_STREAMING = 5; + TransportType_WEBSOCKET = 6; +} diff --git a/AppSupport/proto3/models/tunnel_info.proto b/AppSupport/proto3/models/tunnel_info.proto new file mode 100644 index 0000000..5e35392 --- /dev/null +++ b/AppSupport/proto3/models/tunnel_info.proto @@ -0,0 +1,29 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/tunnel_info_tunnel_type.proto"; + +message TunnelInfo { + + TunnelInfoTunnelType tunnelType = 0; + + // Destination address of the tunnel + string tunnelDstAddress = 1; + + // Source address of the tunnel + string tunnelSrcAddress = 2; + +} diff --git a/AppSupport/proto3/models/tunnel_info_tunnel_type.proto b/AppSupport/proto3/models/tunnel_info_tunnel_type.proto new file mode 100644 index 0000000..4ede5fb --- /dev/null +++ b/AppSupport/proto3/models/tunnel_info_tunnel_type.proto @@ -0,0 +1,21 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum TunnelInfoTunnelType { + TunnelInfoTunnelType_GTP_U = 0; + TunnelInfoTunnelType_GRE = 1; +} diff --git a/AppSupport/proto3/services/app_confirm_ready_service.proto b/AppSupport/proto3/services/app_confirm_ready_service.proto new file mode 100644 index 0000000..31a1e42 --- /dev/null +++ b/AppSupport/proto3/services/app_confirm_ready_service.proto @@ -0,0 +1,34 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011.services.appconfirmreadyservice; + +import "google/protobuf/empty.proto"; +import public "models/app_ready_confirmation.proto"; +import public "models/problem_details.proto"; +import public "models/todo_object_mapping.proto"; + +service AppConfirmReadyService { + rpc ApplicationsConfirmReadyPOST (ApplicationsConfirmReadyPOSTRequest) returns (google.protobuf.Empty); + +} + +message ApplicationsConfirmReadyPOSTRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Message content in the request contains the indication that the application instance is up and running. + AppReadyConfirmation appReadyConfirmation = 2; + +} + diff --git a/AppSupport/proto3/services/app_confirm_termination_service.proto b/AppSupport/proto3/services/app_confirm_termination_service.proto new file mode 100644 index 0000000..554b157 --- /dev/null +++ b/AppSupport/proto3/services/app_confirm_termination_service.proto @@ -0,0 +1,34 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011.services.appconfirmterminationservice; + +import "google/protobuf/empty.proto"; +import public "models/app_termination_confirmation.proto"; +import public "models/problem_details.proto"; +import public "models/todo_object_mapping.proto"; + +service AppConfirmTerminationService { + rpc ApplicationsConfirmTerminationPOST (ApplicationsConfirmTerminationPOSTRequest) returns (google.protobuf.Empty); + +} + +message ApplicationsConfirmTerminationPOSTRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Message content in the request contains the operational action the application instance is responding to. + AppTerminationConfirmation appTerminationConfirmation = 2; + +} + diff --git a/AppSupport/proto3/services/app_dns_rules_service.proto b/AppSupport/proto3/services/app_dns_rules_service.proto new file mode 100644 index 0000000..d18c045 --- /dev/null +++ b/AppSupport/proto3/services/app_dns_rules_service.proto @@ -0,0 +1,58 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011.services.appdnsrulesservice; + +import "google/protobuf/empty.proto"; +import public "models/dns_rule.proto"; +import public "models/problem_details.proto"; +import public "models/todo_object_mapping.proto"; + +service AppDnsRulesService { + rpc ApplicationsDnsRuleGET (ApplicationsDnsRuleGETRequest) returns (DnsRule); + + rpc ApplicationsDnsRulePUT (ApplicationsDnsRulePUTRequest) returns (DnsRule); + + rpc ApplicationsDnsRulesGET (ApplicationsDnsRulesGETRequest) returns (ApplicationsDnsRulesGETResponse); + +} + +message ApplicationsDnsRuleGETRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Represents a DNS rule. + string dnsRuleId = 2; + +} + +message ApplicationsDnsRulePUTRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Represents a DNS rule. + string dnsRuleId = 2; + // The updated \"state\" is included in the message content of the request. + DnsRule dnsRule = 3; + +} + +message ApplicationsDnsRulesGETRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + +} + +message ApplicationsDnsRulesGETResponse { + repeated DnsRule data = 1; +} + diff --git a/AppSupport/proto3/services/app_registrations_service.proto b/AppSupport/proto3/services/app_registrations_service.proto new file mode 100644 index 0000000..b5eed62 --- /dev/null +++ b/AppSupport/proto3/services/app_registrations_service.proto @@ -0,0 +1,58 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011.services.appregistrationsservice; + +import "google/protobuf/empty.proto"; +import public "models/app_info.proto"; +import public "models/problem_details.proto"; +import public "models/todo_object_mapping.proto"; + +service AppRegistrationsService { + rpc ApplicationsRegistrationDELETE (ApplicationsRegistrationDELETERequest) returns (google.protobuf.Empty); + + rpc ApplicationsRegistrationGET (ApplicationsRegistrationGETRequest) returns (AppInfo); + + rpc ApplicationsRegistrationPUT (ApplicationsRegistrationPUTRequest) returns (google.protobuf.Empty); + + rpc ApplicationsRegistrationsPOST (ApplicationsRegistrationsPOSTRequest) returns (AppInfo); + +} + +message ApplicationsRegistrationDELETERequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + +} + +message ApplicationsRegistrationGETRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + +} + +message ApplicationsRegistrationPUTRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Message content in the request contains the profile of the application, calling the MEC platform to update the existing MEC application instance registration. + AppInfo appInfo = 2; + +} + +message ApplicationsRegistrationsPOSTRequest { + // The message content in the request contains the profile of the MEC application instance, calling the MEC platform to register the MEC application instance. + AppInfo appInfo = 1; + +} + diff --git a/AppSupport/proto3/services/app_subscriptions_service.proto b/AppSupport/proto3/services/app_subscriptions_service.proto new file mode 100644 index 0000000..d3a6a00 --- /dev/null +++ b/AppSupport/proto3/services/app_subscriptions_service.proto @@ -0,0 +1,63 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011.services.appsubscriptionsservice; + +import "google/protobuf/empty.proto"; +import public "models/app_termination_notification_subscription.proto"; +import public "models/mec_app_supt_api_subscription_link_list.proto"; +import public "models/problem_details.proto"; +import public "models/todo_object_mapping.proto"; + +service AppSubscriptionsService { + rpc ApplicationsSubscriptionDELETE (ApplicationsSubscriptionDELETERequest) returns (google.protobuf.Empty); + + rpc ApplicationsSubscriptionGET (ApplicationsSubscriptionGETRequest) returns (AppTerminationNotificationSubscription); + + rpc ApplicationsSubscriptionsGET (ApplicationsSubscriptionsGETRequest) returns (MecAppSuptApiSubscriptionLinkList); + + rpc ApplicationsSubscriptionsPOST (ApplicationsSubscriptionsPOSTRequest) returns (AppTerminationNotificationSubscription); + +} + +message ApplicationsSubscriptionDELETERequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Represents a subscription to the notifications from the MEC platform. + string subscriptionId = 2; + +} + +message ApplicationsSubscriptionGETRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Represents a subscription to the notifications from the MEC platform. + string subscriptionId = 2; + +} + +message ApplicationsSubscriptionsGETRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + +} + +message ApplicationsSubscriptionsPOSTRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Message content in the request contains a subscription to the MEC application termination notifications that is to be created. + AppTerminationNotificationSubscription appTerminationNotificationSubscription = 2; + +} + diff --git a/AppSupport/proto3/services/app_traffic_rules_service.proto b/AppSupport/proto3/services/app_traffic_rules_service.proto new file mode 100644 index 0000000..a62b805 --- /dev/null +++ b/AppSupport/proto3/services/app_traffic_rules_service.proto @@ -0,0 +1,58 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011.services.apptrafficrulesservice; + +import "google/protobuf/empty.proto"; +import public "models/problem_details.proto"; +import public "models/todo_object_mapping.proto"; +import public "models/traffic_rule.proto"; + +service AppTrafficRulesService { + rpc ApplicationsTrafficRuleGET (ApplicationsTrafficRuleGETRequest) returns (TrafficRule); + + rpc ApplicationsTrafficRulePUT (ApplicationsTrafficRulePUTRequest) returns (TrafficRule); + + rpc ApplicationsTrafficRulesGET (ApplicationsTrafficRulesGETRequest) returns (ApplicationsTrafficRulesGETResponse); + +} + +message ApplicationsTrafficRuleGETRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Represents a traffic rule. + string trafficRuleId = 2; + +} + +message ApplicationsTrafficRulePUTRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Represents a traffic rule. + string trafficRuleId = 2; + // One or more updated attributes that are allowed to be changed are included in the TrafficRule data structure in the message content of the request. + TrafficRule trafficRule = 3; + +} + +message ApplicationsTrafficRulesGETRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + +} + +message ApplicationsTrafficRulesGETResponse { + repeated TrafficRule data = 1; +} + diff --git a/AppSupport/proto3/services/timing_service.proto b/AppSupport/proto3/services/timing_service.proto new file mode 100644 index 0000000..90466ea --- /dev/null +++ b/AppSupport/proto3/services/timing_service.proto @@ -0,0 +1,29 @@ +/* + MEC Application Support API + + The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011.services.timingservice; + +import "google/protobuf/empty.proto"; +import public "models/current_time.proto"; +import public "models/problem_details.proto"; +import public "models/todo_object_mapping.proto"; +import public "models/timing_caps.proto"; + +service TimingService { + rpc TimingCapsGET (google.protobuf.Empty) returns (TimingCaps); + + rpc TimingCurrentTimeGET (google.protobuf.Empty) returns (CurrentTime); + +} + diff --git a/MecAppSupportApi.json b/MecAppSupportApi.json index e36259c..1808ca0 100644 --- a/MecAppSupportApi.json +++ b/MecAppSupportApi.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "MEC Application Support API", - "version": "2.2.1", + "version": "3.1.1", "description": "The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI", "license": { "name": "BSD-3-Clause", @@ -13,8 +13,8 @@ } }, "externalDocs": { - "description": "ETSI GS MEC011 Application Enablement API, V2.2.1", - "url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf" + "description": "ETSI GS MEC011 Application Enablement API, V3.1.1", + "url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/03.01.01_60/gs_MEC011v030101p.pdf" }, "tags": [ { @@ -37,19 +37,20 @@ }, { "name": "callbacks" + }, + { + "name": "appRegistrations" } ], "jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema", "servers": [ { - "url": "http://127.0.0.1:8081/mec_app_support/v1", - "variables": { - } + "url": "http://127.0.0.1:8081/mec_app_support/v2", + "variables": {} }, { - "url": "https://127.0.0.1:8081/mec_app_support/v1", - "variables": { - } + "url": "https://127.0.0.1:8081/mec_app_support/v2", + "variables": {} } ], "paths": { @@ -75,9 +76,8 @@ ], "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "headers": { - }, + "description": "Upon success, a response message content containing an array of the TrafficRules is returned.", + "headers": {}, "content": { "application/json": { "schema": { @@ -166,8 +166,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -185,8 +184,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -197,8 +195,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -217,9 +214,7 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/applications/{appInstanceId}/traffic_rules/{trafficRuleId}": { "get": { @@ -253,9 +248,8 @@ ], "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "headers": { - }, + "description": "Upon success, a response message content containing the TrafficRules is returned.", + "headers": {}, "content": { "application/json": { "schema": { @@ -299,8 +293,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -318,8 +311,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -330,8 +322,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -380,7 +371,7 @@ } ], "requestBody": { - "description": "One or more updated attributes that are allowed to be changed", + "description": "One or more updated attributes that are allowed to be changed are included in the TrafficRule data structure in the message content of the request.", "content": { "application/json": { "schema": { @@ -392,9 +383,8 @@ }, "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "headers": { - }, + "description": "Upon success, a response message content containing data type describing the updated TrafficRule is returned.", + "headers": {}, "content": { "application/json": { "schema": { @@ -438,8 +428,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -457,8 +446,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -469,8 +457,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -488,8 +475,7 @@ }, "412": { "description": "Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -508,9 +494,7 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/applications/{appInstanceId}/dns_rules": { "get": { @@ -534,9 +518,8 @@ ], "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "headers": { - }, + "description": "Upon success, a response message content containing an array of the DnsRules is returned.", + "headers": {}, "content": { "application/json": { "schema": { @@ -594,8 +577,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -613,8 +595,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -625,8 +606,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -645,9 +625,7 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/applications/{appInstanceId}/dns_rules/{dnsRuleId}": { "get": { @@ -681,9 +659,8 @@ ], "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "headers": { - }, + "description": "Upon success, a response message content containing the DnsRules is returned.", + "headers": {}, "content": { "application/json": { "schema": { @@ -706,8 +683,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -725,8 +701,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -737,8 +712,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -787,7 +761,7 @@ } ], "requestBody": { - "description": "The updated state is included in the entity body of the request.", + "description": "The updated \"state\" is included in the message content of the request.", "content": { "application/json": { "schema": { @@ -799,9 +773,8 @@ }, "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "headers": { - }, + "description": "Upon success, a response message content containing data type describing the updated DnsRule is returned.", + "headers": {}, "content": { "application/json": { "schema": { @@ -824,8 +797,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -843,8 +815,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -855,8 +826,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -874,8 +844,7 @@ }, "412": { "description": "Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -894,9 +863,7 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/applications/{appInstanceId}/subscriptions": { "get": { @@ -904,7 +871,7 @@ "appSubscriptions" ], "summary": "Get subscriptions", - "description": "The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains entity body with all the subscriptions for the requestor.", + "description": "The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains message content with all the subscriptions for the requestor.", "operationId": "ApplicationsSubscriptions_GET", "parameters": [ { @@ -920,9 +887,8 @@ ], "responses": { "200": { - "description": "Upon success, a response body containing the list of links to the requested subscriptions is returned.", - "headers": { - }, + "description": "Upon success, a response message content containing the list of links to the requested subscriptions is returned.", + "headers": {}, "content": { "application/json": { "schema": { @@ -933,8 +899,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -952,8 +917,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -964,8 +928,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -989,7 +952,7 @@ "appSubscriptions" ], "summary": "Create subscription", - "description": "The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains entity body describing the created subscription.", + "description": "The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains message content describing the created subscription.", "operationId": "ApplicationsSubscriptions_POST", "parameters": [ { @@ -1004,7 +967,7 @@ } ], "requestBody": { - "description": "Entity body in the request contains a subscription to the MEC application termination notifications that is to be created.", + "description": "Message content in the request contains a subscription to the MEC application termination notifications that is to be created.", "content": { "application/json": { "schema": { @@ -1041,8 +1004,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1060,8 +1022,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1072,8 +1033,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1114,9 +1074,7 @@ } } }, - "parameters": [ - - ] + "parameters": [] }, "/applications/{appInstanceId}/subscriptions/{subscriptionId}": { "get": { @@ -1124,7 +1082,7 @@ "appSubscriptions" ], "summary": "Get subscription", - "description": "The GET method requests information about a subscription for this requestor. Upon success, the response contains entity body with the subscription for the requestor.", + "description": "The GET method requests information about a subscription for this requestor. Upon success, the response contains message content with the subscription for the requestor.", "operationId": "ApplicationsSubscription_GET", "parameters": [ { @@ -1150,9 +1108,8 @@ ], "responses": { "200": { - "description": "Upon success, a response body containing the requested subscription is returned.", - "headers": { - }, + "description": "Upon success, a response message content containing the requested subscription is returned.", + "headers": {}, "content": { "application/json": { "schema": { @@ -1163,8 +1120,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1182,8 +1138,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1194,8 +1149,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1246,15 +1200,12 @@ "responses": { "204": { "description": "No Content", - "headers": { - }, - "content": { - } + "headers": {}, + "content": {} }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1265,8 +1216,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1285,9 +1235,7 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/applications/{appInstanceId}/confirm_termination": { "post": { @@ -1310,7 +1258,7 @@ } ], "requestBody": { - "description": "", + "description": "Message content in the request contains the operational action the application instance is responding to.", "content": { "application/json": { "schema": { @@ -1322,16 +1270,13 @@ }, "responses": { "204": { - "description": "No Content", - "headers": { - }, - "content": { - } + "description": "No Content. The request is acknowledged. The response message content shall be empty.", + "headers": {}, + "content": {} }, "401": { "description": "Unauthorized. It is used when the client did not submit the appropriate credentials.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1349,8 +1294,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1361,8 +1305,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1380,8 +1323,7 @@ }, "409": { "description": "Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1399,8 +1341,7 @@ }, "429": { "description": "Too Many Requests. It is used when a rate limiter has triggered.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1419,9 +1360,7 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/applications/{appInstanceId}/confirm_ready": { "post": { @@ -1444,7 +1383,7 @@ } ], "requestBody": { - "description": "", + "description": "Message content in the request contains the indication that the application instance is up and running.", "content": { "application/json": { "schema": { @@ -1457,15 +1396,12 @@ "responses": { "204": { "description": "No Content", - "headers": { - }, - "content": { - } + "headers": {}, + "content": {} }, "401": { "description": "Unauthorized. It is used when the client did not submit the appropriate credentials.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1483,8 +1419,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1495,8 +1430,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1514,8 +1448,7 @@ }, "409": { "description": "Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1533,8 +1466,7 @@ }, "429": { "description": "Too Many Requests. It is used when a rate limiter has triggered.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1553,38 +1485,74 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, - "/timing/timing_caps": { - "get": { + "/registrations": { + "post": { "tags": [ - "timing" - ], - "summary": "Retrieve timing capabilities", - "description": "This method retrieves the information of the platform's timing capabilities which corresponds to the timing capabilities query", - "operationId": "TimingCaps_GET", - "parameters": [ - + "appRegistrations" ], + "summary": "Create Registrantion", + "description": "The POST method may be used by the MEC application instance to request its registration to the MEC platform. ", + "operationId": "ApplicationsRegistrations_POST", + "parameters": [], + "requestBody": { + "description": "The message content in the request contains the profile of the MEC application instance, calling the MEC platform to register the MEC application instance.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppInfo" + } + } + }, + "required": false + }, "responses": { - "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "201": { + "description": "Indicates successful resource creation for registration of the MEC application instance to the MEC platform.", "headers": { + "location": { + "description": "The resource URI of the created resource", + "content": { + "text/plain": { + "schema": { + "type": "string", + "description": "The resource URI of the created resource", + "contentMediaType": "text/plain" + } + } + } + } }, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/TimingCaps" + "$ref": "#/components/schemas/AppInfo" } } } }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + }, + "401": { + "description": "Unauthorized. It is used when the client did not submit the appropriate credentials.", + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1602,8 +1570,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1614,8 +1581,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1634,38 +1600,43 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, - "/timing/current_time": { + "/registrations/{appInstanceId}": { "get": { "tags": [ - "timing" + "appRegistrations" ], - "summary": "Retrieve current time", - "description": "This method retrieves the information of the platform's current time which corresponds to the get platform time procedure", - "operationId": "TimingCurrentTime_GET", + "summary": "Get Registration", + "description": "The GET method may be used by the MEC application instance to retrieve information about the existing MEC application instance registration to the MEC platform.", + "operationId": "ApplicationsRegistration_GET", "parameters": [ - + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } ], "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "headers": { - }, + "description": "Upon success, a response message content containing the requested subscription is returned.", + "headers": {}, "content": { "application/json": { "schema": { - "$ref": "#/components/schemas/CurrentTime" + "$ref": "#/components/schemas/AppInfo" } } } }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1683,8 +1654,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1695,8 +1665,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1715,56 +1684,503 @@ }, "deprecated": false }, - "parameters": [ - - ] - } - }, - "components": { - "schemas": { - "AppReadyConfirmation": { - "title": "AppReadyConfirmation", - "required": [ - "indication" - ], - "type": "object", - "properties": { - "indication": { - "const": "READY", - "type": "string", - "description": "Indication about the MEC application instance.", - "examples": [ - "READY" - ] - } - }, - "description": "This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running." - }, - "AppTerminationConfirmation": { - "title": "AppTerminationConfirmation", - "required": [ - "operationAction" + "put": { + "tags": [ + "appRegistrations" ], - "type": "object", - "properties": { - "operationAction": { - "$ref": "#/components/schemas/OperationActionType" + "summary": "Update Registration", + "description": "The PUT method may be used by the MEC application instance to update its registration to the MEC platform.", + "operationId": "ApplicationsRegistration_PUT", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } } - }, - "description": "This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop." - }, - "AppTerminationNotification.Links": { - "title": "AppTerminationNotification.Links", - "required": [ - "subscription" ], - "type": "object", - "properties": { - "subscription": { - "$ref": "#/components/schemas/LinkType" + "requestBody": { + "description": "Message content in the request contains the profile of the application, calling the MEC platform to update the existing MEC application instance registration.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppInfo" + } + } }, - "confirmTermination": { - "$ref": "#/components/schemas/LinkType.ConfirmTermination" + "required": true + }, + "responses": { + "204": { + "description": "No Content", + "headers": {}, + "content": {} + }, + "400": { + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + }, + "401": { + "description": "Unauthorized. It is used when the client did not submit the appropriate credentials.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + }, + "403": { + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + } + }, + "deprecated": false + }, + "delete": { + "tags": [ + "appRegistrations" + ], + "summary": "delete registration", + "description": "The DELETE method is used to cancel the existing MEC application instance registration.", + "operationId": "ApplicationsRegistration_DELETE", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "headers": {}, + "content": {} + }, + "400": { + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + }, + "401": { + "description": "Unauthorized. It is used when the client did not submit the appropriate credentials.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + }, + "403": { + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + } + }, + "deprecated": false + }, + "parameters": [] + }, + "/timing/timing_caps": { + "get": { + "tags": [ + "timing" + ], + "summary": "Retrieve timing capabilities", + "description": "This method retrieves the information of the platform's timing capabilities which corresponds to the timing capabilities query", + "operationId": "TimingCaps_GET", + "parameters": [], + "responses": { + "200": { + "description": "It is used to indicate nonspecific success. The response message content contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TimingCaps" + } + } + } + }, + "400": { + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + }, + "403": { + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + } + }, + "deprecated": false + }, + "parameters": [] + }, + "/timing/current_time": { + "get": { + "tags": [ + "timing" + ], + "summary": "Retrieve current time", + "description": "This method retrieves the information of the platform's current time which corresponds to the get platform time procedure", + "operationId": "TimingCurrentTime_GET", + "parameters": [], + "responses": { + "200": { + "description": "It is used to indicate nonspecific success. The response message content contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CurrentTime" + } + } + } + }, + "400": { + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + }, + "403": { + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + } + }, + "deprecated": false + }, + "parameters": [] + } + }, + "components": { + "schemas": { + "AppReadyConfirmation": { + "title": "AppReadyConfirmation", + "required": [ + "indication" + ], + "type": "object", + "properties": { + "indication": { + "const": "READY", + "type": "string", + "description": "Indication about the MEC application instance.", + "examples": [ + "READY" + ] + } + }, + "description": "This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running." + }, + "AppInfo": { + "title": "AppInfo", + "required": [ + "appName" + ], + "type": "object", + "properties": { + "appName": { + "title": "appName", + "type": "string", + "description": "Name of the application. It shall be consistent with the appName in the AppD, if an AppD is available.", + "examples": [ + "appName" + ] + }, + "appProvider": { + "title": "appProvider", + "type": "string", + "description": "Provider of the application. It shall be consistent with the appProvider in the AppD, if an AppD is available. See note 1.", + "examples": [ + "appProvider1" + ] + }, + "appCategory": { + "$ref": "#/components/schemas/CategoryRef" + }, + "appDId": { + "title": "appDId", + "type": "string", + "description": "The application descriptor identifier. It is managed by the application provider to identify the application descriptor in a globally unique way. Shall be present if the application instance is instantiated by the MEC Management.", + "examples": [ + "appDId" + ] + }, + "appInstanceId": { + "title": "appInstanceId", + "type": "string", + "description": "Identifier of the application instance. Shall be present if the application instance is instantiated by the MEC Management.", + "examples": [ + "ID1" + ] + }, + "endpoint": { + "oneOf": [ + { + "$ref": "#/components/schemas/EndPointInfo.Uris" + }, + { + "$ref": "#/components/schemas/EndPointInfo.Fqdn" + }, + { + "$ref": "#/components/schemas/EndPointInfo.Addresses" + }, + { + "$ref": "#/components/schemas/EndPointInfo.Alternative" + } + ], + "description": "This type represents information about a transport endpoint", + "x-etsi-notes": "NOTE 1:\tIf appProfile is present, appProvider shall be consistent with provId provided in EAS profile data type, i.e. the same.\nNOTE 2:\tIf appProfile is present, endpoint shall refer to the same end point as endPt provided in EAS profile data type." + }, + "appServiceRequired": { + "title": "appServiceRequired", + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceDependency" + }, + "description": "Describes services a MEC application requires to run. ServiceDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available." + }, + "appServiceOptional": { + "title": "appServiceOptional", + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceDependency" + }, + "description": "Describes services a MEC application may use if available. ServiceDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available." + }, + "appFeatureRequired": { + "title": "appFeatureRequired", + "type": "array", + "items": { + "$ref": "#/components/schemas/FeatureDependency" + }, + "description": "Describes features a MEC application requires to run. FeatureDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available." + }, + "appFeatureOptional": { + "title": "appFeatureOptional", + "type": "array", + "items": { + "$ref": "#/components/schemas/FeatureDependency" + }, + "description": "Describes features a MEC application may use if available. FeatureDependency is defined in ETSI GS MEC 010-2 [4]. It shall not be provided if an AppD is available." + }, + "isInsByMec": { + "type": "boolean", + "description": "Indicate whether the application instance is instantiated by the MEC Management.\nDefault to FALSE if absent.", + "examples": [ + false + ] + }, + "appProfile": { + "$ref": "#/components/schemas/AppProfile" + } + }, + "description": "This type represents the information provided by the MEC application instance as part of the \"application registration request\" and \"application registration update\" messages.", + "x-etsi-notes": "NOTE 1:\tIf appProfile is present, appProvider shall be consistent with provId provided in EAS profile data type, i.e. the same.\nNOTE 2:\tIf appProfile is present, endpoint shall refer to the same end point as endPt provided in EAS profile data type." + }, + "AppTerminationConfirmation": { + "title": "AppTerminationConfirmation", + "required": [ + "operationAction" + ], + "type": "object", + "properties": { + "operationAction": { + "$ref": "#/components/schemas/OperationActionType" + } + }, + "description": "This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop." + }, + "AppTerminationNotification.Links": { + "title": "AppTerminationNotification.Links", + "required": [ + "subscription" + ], + "type": "object", + "properties": { + "subscription": { + "$ref": "#/components/schemas/LinkType" + }, + "confirmTermination": { + "$ref": "#/components/schemas/LinkType.ConfirmTermination" } }, "description": "Object containing hyperlinks related to the resource." @@ -1986,7 +2402,8 @@ "$ref": "#/components/schemas/DnsRule.State" } }, - "description": "This type represents the general information of a DNS rule." + "description": "This type represents the general information of a DNS rule.", + "x-etsi-notes": "NOTE:\tIf no ttl value is provided, the DnsRule shall not expire." }, "LinkType": { "title": "LinkType", @@ -2040,7 +2457,7 @@ "title": "MecAppSuptApiSubscriptionLinkList.Subscription", "required": [ "href", - "rel" + "subscriptionType" ], "type": "object", "properties": { @@ -2051,9 +2468,9 @@ "/mecAppSuptApi/example" ] }, - "rel": { + "subscriptionType": { "type": "string", - "description": "The values shall be set to AppTerminationNotificationSubscription." + "description": "Type of the subscription. The values are as defined in the \"subscriptionType\" attribute for each different Mp1 event subscription data type." } }, "description": "A link to a subscription." @@ -2156,8 +2573,7 @@ "minPollingInterval", "maxPollingInterval", "localPriority", - "authenticationOption", - "authenticationKeyNum" + "authenticationOption" ], "type": "object", "properties": { @@ -2200,7 +2616,7 @@ }, "authenticationKeyNum": { "type": "integer", - "description": "Authentication key number", + "description": "Authentication key number. This configuration is valid and shall be present if authenticationOption is set to SYMMETRIC_KEY", "contentEncoding": "int32", "examples": [ 1 @@ -2334,7 +2750,7 @@ }, "description": "Specify the protocol of the traffic filter" }, - "token": { + "tag": { "type": "array", "items": { "type": "string" @@ -2487,7 +2903,8 @@ "$ref": "#/components/schemas/TrafficRule.State" } }, - "description": "This type represents the general information of a traffic rule." + "description": "This type represents the general information of a traffic rule.", + "x-etsi-notes": "NOTE 1:\tValue indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest priority.\nNOTE 2:\tSome applications (like inline/tap) require two interfaces. The first interface in the case of inline/tap is on the client (e.g. UE) side and the second on the core network (e.g. EPC) side." }, "TunnelInfo.TunnelType": { "title": "TunnelInfo.TunnelType", @@ -2539,6 +2956,445 @@ "examples": [ "TRACEABLE" ] + }, + "CategoryRef": { + "title": "CategoryRef", + "required": [ + "href", + "id", + "name", + "version" + ], + "type": "object", + "properties": { + "href": { + "type": "string", + "description": "Reference of the catalogue", + "examples": [ + "/example/catalogue1" + ] + }, + "id": { + "type": "string", + "description": "Unique identifier of the category", + "examples": [ + "id12345" + ] + }, + "name": { + "type": "string", + "description": "Name of the category, example values include RNI, Location & Bandwidth Management", + "examples": [ + "RNI" + ] + }, + "version": { + "type": "string", + "description": "Category version", + "examples": [ + "version1" + ] + } + }, + "description": "This type represents the category reference" + }, + "EndPointInfo.Address": { + "title": "EndPointInfo.Address", + "required": [ + "host", + "port" + ], + "type": "object", + "properties": { + "host": { + "type": "string", + "description": "Host portion of the address", + "examples": [ + "192.0.2.0" + ] + }, + "port": { + "type": "integer", + "description": "Port portion of the address", + "contentEncoding": "int32", + "examples": [ + 8080 + ] + } + }, + "description": "A IP address and port pair" + }, + "EndPointInfo.Addresses": { + "title": "EndPointInfo.Addresses", + "required": [ + "addresses" + ], + "type": "object", + "properties": { + "addresses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/EndPointInfo.Address" + }, + "description": "Entry point information of the service as one or more pairs of IP address and port. See note." + } + }, + "description": "This type represents information about a transport endpoint." + }, + "EndPointInfo.Alternative": { + "title": "EndPointInfo.Alternative", + "required": [ + "alternative" + ], + "type": "object", + "properties": { + "alternative": { + "type": "object", + "description": "Entry point information of the service in a format defined by an implementation, or in an external specification. See note." + } + }, + "description": "This type represents information about a transport endpoint." + }, + "EndPointInfo.Uris": { + "title": "EndPointInfo.Uris", + "required": [ + "uris" + ], + "type": "object", + "properties": { + "uris": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Entry point information of the service as string, formatted according to URI syntax" + } + }, + "description": "This type represents information about a transport endpoint." + }, + "EndPointInfo.Fqdn": { + "title": "EndPointInfo.Fqdn", + "required": [ + "fqdn" + ], + "type": "object", + "properties": { + "fqdn": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Fully Qualified Domain Name of the service. See note." + } + }, + "description": "This type represents information about a transport endpoint. " + }, + "ServiceDependency": { + "properties": { + "requestedPermissions": { + "description": "Requested permissions regarding the access of the application to the service. See clause 8.2 of ETSI GS MEC 009 [4].\nThe format of this attribute is left for the data model design stage.", + "items": { + "$ref": "#/components/schemas/Not_specified" + }, + "minItems": 0, + "type": "array" + }, + "serCategory": { + "$ref": "#/components/schemas/CategoryRef" + }, + "serName": { + "description": "The name of the service, for example, RNIS, LocationService, etc.", + "type": "string" + }, + "serTransportDependencies": { + "description": "Indicates transport and serialization format dependencies of consuming the service. Defaults to REST + JSON if absent. See note.", + "items": { + "$ref": "#/components/schemas/TransportDependency" + }, + "minItems": 0, + "type": "array" + }, + "version": { + "description": "The version of the service.", + "type": "string" + } + }, + "required": [ + "serName", + "version" + ], + "type": "object", + "x-etsi-notes": "NOTE:\tThis attribute indicates groups of transport bindings that a service-consuming MEC application supports for the consumption of the MEC service defined by this ServiceDependency structure. If at least one of the indicated groups is supported by the service it may be consumed by the application." + }, + "TransportDependency": { + "properties": { + "labels": { + "description": "Set of labels that allow to define groups of transport bindings. The mechanism of the grouping is defined below this table.", + "items": { + "type": "string" + }, + "minItems": 1, + "type": "array" + }, + "serializers": { + "description": "Information about the serializers in this transport binding, as defined in the SerializerType type in ETSI GS MEC 011 [i.4]. Support for at least one of the entries is required in conjunction with the transport.", + "items": { + "$ref": "#/components/schemas/SerializerType" + }, + "minItems": 1, + "type": "array" + }, + "transport": { + "$ref": "#/components/schemas/TransportDescriptor" + } + }, + "required": [ + "transport", + "serializers", + "labels" + ], + "type": "object" + }, + "TransportDescriptor": { + "properties": { + "protocol": { + "description": "The name of the protocol used. Shall be set to \"HTTP\" for a REST API.", + "type": "string" + }, + "security": { + "$ref": "#/components/schemas/SecurityInfo" + }, + "type": { + "$ref": "#/components/schemas/TransportType" + }, + "version": { + "description": "The version of the protocol used.", + "type": "string" + } + }, + "required": [ + "type", + "protocol", + "version", + "security" + ], + "type": "object" + }, + "SerializerType": { + "title": "SerializerType", + "enum": [ + "JSON", + "XML", + "PROTOBUF3" + ], + "type": "string", + "description": "The enumeration represents types of serializers", + "examples": [ + "JSON" + ] + }, + "SecurityInfo": { + "title": "SecurityInfo", + "type": "object", + "properties": { + "oAuth2Info": { + "$ref": "#/components/schemas/SecurityInfo.OAuth2Info" + } + }, + "description": "This type represents security information related to a transport" + }, + "SecurityInfo.OAuth2Info": { + "title": "SecurityInfo.OAuth2Info", + "required": [ + "grantTypes", + "tokenEndpoint" + ], + "type": "object", + "properties": { + "grantTypes": { + "maxItems": 4, + "minItems": 1, + "type": "array", + "items": { + "$ref": "#/components/schemas/SecurityInfo.OAuth2Info.GrantType" + }, + "description": "List of supported OAuth 2.0 grant types." + }, + "tokenEndpoint": { + "type": "string", + "description": "The token endpoint", + "examples": [ + "/mecSerMgmtApi/security/TokenEndPoint" + ] + } + }, + "description": "Parameters related to use of OAuth 2.0" + }, + "SecurityInfo.OAuth2Info.GrantType": { + "title": "SecurityInfo.OAuth2Info.GrantType", + "enum": [ + "OAUTH2_AUTHORIZATION_CODE", + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_RESOURCE_OWNER", + "OAUTH2_CLIENT_CREDENTIALS" + ], + "type": "string", + "description": "OAuth 2.0 grant type", + "examples": [ + "OAUTH2_CLIENT_CREDENTIALS" + ] + }, + "TransportType": { + "title": "TransportType", + "enum": [ + "REST_HTTP", + "MB_TOPIC_BASED", + "MB_ROUTING", + "MB_PUBSUB", + "RPC", + "RPC_STREAMING", + "WEBSOCKET" + ], + "type": "string", + "description": "The enumeration TransportType represents types of transports", + "examples": [ + "REST_HTTP" + ] + }, + "FeatureDependency": { + "properties": { + "featureName": { + "description": "The name of the feature, for example, UserApps, UEIdentity, etc.", + "type": "string" + }, + "version": { + "description": "The version of the feature.", + "type": "string" + } + }, + "required": [ + "featureName", + "version" + ], + "type": "object" + }, + "AppProfile": { + "type": "object", + "required": [ + "easId", + "endPt", + "acIds", + "scheds", + "permLvl", + "easFeats", + "svcContSupp", + "appLocs" + ], + "properties": { + "easId": { + "description": "The identifier of the EAS", + "type": "string", + "examples": [ + "appName" + ] + }, + "endPt": { + "description": "The version of the feature.", + "oneOf": [ + { + "$ref": "#/components/schemas/EndPointInfo.Uris" + }, + { + "$ref": "#/components/schemas/EndPointInfo.Fqdn" + }, + { + "$ref": "#/components/schemas/EndPointInfo.Addresses" + }, + { + "$ref": "#/components/schemas/EndPointInfo.Alternative" + } + ] + }, + "acIds": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "description": "Identities of the Application Clients that can be served by the EAS" + }, + "provId": { + "type": "string", + "description": "Identifier of the ASP that provides the EAS.", + "examples": [ + "appProvider1" + ] + }, + "type": { + "description": "The category or type of EAS.", + "type": "string" + }, + "scheds": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "description": "The availability schedule of the EAS." + }, + "svcArea": { + "type": "string", + "description": "The list of geographical and topological areas that the EAS serves. ACs in the UE that are outside the area will not be served." + }, + "svcKpi": { + "type": "string", + "description": "Service characteristics provided by the EAS." + }, + "permLvl": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "description": "level of service permissions supported by the EAS." + }, + "easFeats": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "description": "Service features supported by the EAS." + }, + "svcContSupp": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "description": "The ACR scenarios supported by the EAS for service continuity." + }, + "appLocs": { + "type": "array", + "items": { + "type": "string" + }, + "minItems": 1, + "description": "List of DNAI(s) and the N6 traffic information associated with the EAS." + }, + "avlRep": { + "type": "integer", + "description": "The period indicating to the EES, how often the EES needs to check the EAS's availability after a successful registration.", + "contentEncoding": "int32", + "examples": [ + 1577836800 + ] + }, + "status": { + "type": "string", + "description": "EAS status information. " + } + } } }, "requestBodies": { @@ -2555,7 +3411,6 @@ } }, "security": [ - { - } + {} ] -} +} \ No newline at end of file diff --git a/MecAppSupportApi.yaml b/MecAppSupportApi.yaml index 9a6ecdf..f2f912f 100644 --- a/MecAppSupportApi.yaml +++ b/MecAppSupportApi.yaml @@ -1,7 +1,7 @@ openapi: 3.1.0 info: title: MEC Application Support API - version: '2.2.1' + version: 3.1.1 description: The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI license: name: BSD-3-Clause @@ -9,41 +9,49 @@ info: contact: email: cti_support@etsi.org externalDocs: - description: ETSI GS MEC011 Application Enablement API, V2.2.1 - url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf + description: 'ETSI GS MEC011 Application Enablement API, V3.1.1' + url: >- + https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/03.01.01_60/gs_MEC011v030101p.pdf tags: -- name: appTrafficRules -- name: appDnsRules -- name: appSubscriptions -- name: appConfirmTermination -- name: appConfirmReady -- name: timing -- name: callbacks -jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema + - name: appTrafficRules + - name: appDnsRules + - name: appSubscriptions + - name: appConfirmTermination + - name: appConfirmReady + - name: timing + - name: callbacks + - name: appRegistrations +jsonSchemaDialect: 'https://json-schema.org/draft/2020-12/schema' servers: -- url: http://127.0.0.1:8081/mec_app_support/v1 - variables: {} -- url: https://127.0.0.1:8081/mec_app_support/v1 - variables: {} + - url: 'http://127.0.0.1:8081/mec_app_support/v2' + variables: {} + - url: 'https://127.0.0.1:8081/mec_app_support/v2' + variables: {} paths: - /applications/{appInstanceId}/traffic_rules: + '/applications/{appInstanceId}/traffic_rules': get: tags: - - appTrafficRules - summary: 'get traffic rules' - description: This method retrieves information about all the traffic rules associated with a MEC application instance. + - appTrafficRules + summary: get traffic rules + description: >- + This method retrieves information about all the traffic rules associated + with a MEC application instance. operationId: ApplicationsTrafficRules_GET parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + Upon success, a response message content containing an array of the + TrafficRules is returned. headers: {} content: application/json: @@ -53,51 +61,53 @@ paths: $ref: '#/components/schemas/TrafficRule' description: '' examples: - - - trafficRuleId: TrafficRule123 - serName: ExampleService - filterType: FLOW - priority: 1 - trafficFilter: - - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - - 192.127.4.100/32 - dstPort: - - '80' - action: FORWARD_DECAPSULATED - dstInterface: - - dstInterface0: - interfaceType: IP - dstIpAddress: 20.1.1.1 - - dstInterface1: - interfaceType: IP - dstIpAddress: 20.1.1.2 - state: ACTIVE + - - trafficRuleId: TrafficRule123 + serName: ExampleService + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.168.2.0/24 + - 192.168.3.0/24 + dstAddress: + - 192.127.4.100/32 + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface0: null + interfaceType: IP + dstIpAddress: 20.1.1.1 + - dstInterface1: null + interfaceType: IP + dstIpAddress: 20.1.1.2 + state: ACTIVE contentMediaType: application/json examples: TrafficRules: value: - - trafficRuleId: TrafficRule123 - serName: ExampleService - filterType: FLOW - priority: 1 - trafficFilter: - - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - - 192.127.4.100/32 - dstPort: - - '80' - action: FORWARD_DECAPSULATED - dstInterface: - - dstInterface0: - interfaceType: IP - dstIpAddress: 20.1.1.1 - state: ACTIVE + - trafficRuleId: TrafficRule123 + serName: ExampleService + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.168.2.0/24 + - 192.168.3.0/24 + dstAddress: + - 192.127.4.100/32 + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface0: null + interfaceType: IP + dstIpAddress: 20.1.1.1 + state: ACTIVE '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -109,14 +119,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -129,31 +143,37 @@ paths: contentMediaType: text/plain deprecated: false parameters: [] - /applications/{appInstanceId}/traffic_rules/{trafficRuleId}: + '/applications/{appInstanceId}/traffic_rules/{trafficRuleId}': get: tags: - - appTrafficRules - summary: 'Get traffic rule' - description: This method retrieves information about all the traffic rules associated with a MEC application instance. + - appTrafficRules + summary: Get traffic rule + description: >- + This method retrieves information about all the traffic rules associated + with a MEC application instance. operationId: ApplicationsTrafficRule_GET parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string - - name: trafficRuleId - in: path - description: Represents a traffic rule. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: trafficRuleId + in: path + description: Represents a traffic rule. + required: true + style: simple + schema: + type: string responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + Upon success, a response message content containing the TrafficRules + is returned. headers: {} content: application/json: @@ -167,21 +187,23 @@ paths: filterType: FLOW priority: 1 trafficFilter: - - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - - 192.127.4.100/32 - dstPort: - - '80' + - srcAddress: + - 192.168.2.0/24 + - 192.168.3.0/24 + dstAddress: + - 192.127.4.100/32 + dstPort: + - '80' action: FORWARD_DECAPSULATED dstInterface: - - dstInterface0: + - dstInterface0: null interfaceType: IP dstIpAddress: 20.1.1.1 state: ACTIVE '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -193,14 +215,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -214,27 +240,34 @@ paths: deprecated: false put: tags: - - appTrafficRules - summary: 'Update traffic rule' - description: This method retrieves information about all the traffic rules associated with a MEC application instance. + - appTrafficRules + summary: Update traffic rule + description: >- + This method retrieves information about all the traffic rules associated + with a MEC application instance. operationId: ApplicationsTrafficRule_PUT parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string - - name: trafficRuleId - in: path - description: Represents a traffic rule. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: trafficRuleId + in: path + description: Represents a traffic rule. + required: true + style: simple + schema: + type: string requestBody: - description: One or more updated attributes that are allowed to be changed + description: >- + One or more updated attributes that are allowed to be changed are + included in the TrafficRule data structure in the message content of + the request. content: application/json: schema: @@ -242,7 +275,9 @@ paths: required: true responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + Upon success, a response message content containing data type + describing the updated TrafficRule is returned. headers: {} content: application/json: @@ -256,21 +291,23 @@ paths: filterType: FLOW priority: 1 trafficFilter: - - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - - 192.127.4.100/32 - dstPort: - - '80' + - srcAddress: + - 192.168.2.0/24 + - 192.168.3.0/24 + dstAddress: + - 192.127.4.100/32 + dstPort: + - '80' action: FORWARD_DECAPSULATED dstInterface: - - dstInterface0: + - dstInterface0: null interfaceType: IP dstIpAddress: 20.1.1.1 state: ACTIVE '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -282,14 +319,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -301,7 +342,10 @@ paths: description: Empty schema contentMediaType: text/plain '412': - description: Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. + description: >- + Precondition Failed. It is used when a condition has failed during + conditional requests, e.g. when using ETags to avoid write + conflicts. headers: {} content: application/problem+json: @@ -314,24 +358,30 @@ paths: contentMediaType: text/plain deprecated: false parameters: [] - /applications/{appInstanceId}/dns_rules: + '/applications/{appInstanceId}/dns_rules': get: tags: - - appDnsRules - summary: 'Get DNS rules' - description: This method retrieves information about all the DNS rules associated with a MEC application instance. + - appDnsRules + summary: Get DNS rules + description: >- + This method retrieves information about all the DNS rules associated + with a MEC application instance. operationId: ApplicationsDnsRules_GET parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + Upon success, a response message content containing an array of the + DnsRules is returned. headers: {} content: application/json: @@ -341,36 +391,38 @@ paths: $ref: '#/components/schemas/DnsRule' description: '' examples: - - - dnsRuleId: DnsRule1 - domainName: www.example.com - ipAddressType: IP_V4 - ipAddress: 146.241.7.3 - ttl: 300 - state: ACTIVE - - dnsRuleId: DnsRule2 - domainName: www.example.com - ipAddressType: IP_V4 - ipAddress: 146.241.7.4 - ttl: 300 - state: INACTIVE + - - dnsRuleId: DnsRule1 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.3 + ttl: 300 + state: ACTIVE + - dnsRuleId: DnsRule2 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.4 + ttl: 300 + state: INACTIVE contentMediaType: application/json examples: DnsRules: value: - - dnsRuleId: DnsRule1 - domainName: www.example.com - ipAddressType: IP_V4 - ipAddress: 146.241.7.3 - ttl: 300 - state: ACTIVE - - dnsRuleId: DnsRule2 - domainName: www.example.com - ipAddressType: IP_V4 - ipAddress: 146.241.7.4 - ttl: 300 - state: INACTIVE + - dnsRuleId: DnsRule1 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.3 + ttl: 300 + state: ACTIVE + - dnsRuleId: DnsRule2 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.4 + ttl: 300 + state: INACTIVE '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -382,14 +434,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -402,31 +458,37 @@ paths: contentMediaType: text/plain deprecated: false parameters: [] - /applications/{appInstanceId}/dns_rules/{dnsRuleId}: + '/applications/{appInstanceId}/dns_rules/{dnsRuleId}': get: tags: - - appDnsRules - summary: 'Get DNS rule' - description: This method retrieves information about a DNS rule associated with a MEC application instance. + - appDnsRules + summary: Get DNS rule + description: >- + This method retrieves information about a DNS rule associated with a MEC + application instance. operationId: ApplicationsDnsRule_GET parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string - - name: dnsRuleId - in: path - description: Represents a DNS rule. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: dnsRuleId + in: path + description: Represents a DNS rule. + required: true + style: simple + schema: + type: string responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + Upon success, a response message content containing the DnsRules is + returned. headers: {} content: application/json: @@ -442,7 +504,9 @@ paths: ttl: 300 state: ACTIVE '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -454,14 +518,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -475,27 +543,29 @@ paths: deprecated: false put: tags: - - appDnsRules - summary: 'Update DNS rule' - description: This method activates, de-activates or updates a traffic rule. + - appDnsRules + summary: Update DNS rule + description: 'This method activates, de-activates or updates a traffic rule.' operationId: ApplicationsDnsRule_PUT parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string - - name: dnsRuleId - in: path - description: Represents a DNS rule. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: dnsRuleId + in: path + description: Represents a DNS rule. + required: true + style: simple + schema: + type: string requestBody: - description: The updated state is included in the entity body of the request. + description: The updated "state" is included in the message content of the request. content: application/json: schema: @@ -503,7 +573,9 @@ paths: required: true responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + Upon success, a response message content containing data type + describing the updated DnsRule is returned. headers: {} content: application/json: @@ -519,7 +591,9 @@ paths: ttl: 300 state: ACTIVE '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -531,14 +605,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -550,7 +628,10 @@ paths: description: Empty schema contentMediaType: text/plain '412': - description: Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. + description: >- + Precondition Failed. It is used when a condition has failed during + conditional requests, e.g. when using ETags to avoid write + conflicts. headers: {} content: application/problem+json: @@ -563,31 +644,40 @@ paths: contentMediaType: text/plain deprecated: false parameters: [] - /applications/{appInstanceId}/subscriptions: + '/applications/{appInstanceId}/subscriptions': get: tags: - - appSubscriptions - summary: 'Get subscriptions' - description: The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains entity body with all the subscriptions for the requestor. + - appSubscriptions + summary: Get subscriptions + description: >- + The GET method may be used to request information about all + subscriptions for this requestor. Upon success, the response contains + message content with all the subscriptions for the requestor. operationId: ApplicationsSubscriptions_GET parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string responses: '200': - description: Upon success, a response body containing the list of links to the requested subscriptions is returned. + description: >- + Upon success, a response message content containing the list of + links to the requested subscriptions is returned. headers: {} content: application/json: schema: $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList' '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -599,14 +689,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -620,20 +714,28 @@ paths: deprecated: false post: tags: - - appSubscriptions - summary: 'Create subscription' - description: The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains entity body describing the created subscription. + - appSubscriptions + summary: Create subscription + description: >- + The POST method may be used to create a new subscription. One example + use case is to create a new subscription to the MEC service availability + notifications. Upon success, the response contains message content + describing the created subscription. operationId: ApplicationsSubscriptions_POST parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string requestBody: - description: Entity body in the request contains a subscription to the MEC application termination notifications that is to be created. + description: >- + Message content in the request contains a subscription to the MEC + application termination notifications that is to be created. content: application/json: schema: @@ -641,7 +743,9 @@ paths: required: true responses: '201': - description: Entity body in the request contains a subscription to the MEC service availability notifications that is to be created. + description: >- + Entity body in the request contains a subscription to the MEC + service availability notifications that is to be created. headers: location: description: The resource URI of the created resource @@ -656,7 +760,9 @@ paths: schema: $ref: '#/components/schemas/AppTerminationNotificationSubscription' '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -668,14 +774,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -687,56 +797,69 @@ paths: description: Empty schema contentMediaType: text/plain deprecated: false - callbacks: AppTerminationNotification: '{$request.body#/callbackUri}': post: - description: Represents the information that the MEP notifies the - subscribed application instance about the corresponding - application instance termination/stop' + description: >- + Represents the information that the MEP notifies the subscribed + application instance about the corresponding application + instance termination/stop' operationId: AppTerminationNotification_POST tags: - - callbacks - summary: 'Create callback' + - callbacks + summary: Create callback requestBody: - $ref: '#/components/requestBodies/AppTerminationNotification' + $ref: '#/components/requestBodies/AppTerminationNotification' responses: '200': - description: Expected responses from callback consumer, if it accepts the callback + description: >- + Expected responses from callback consumer, if it accepts the + callback parameters: [] - /applications/{appInstanceId}/subscriptions/{subscriptionId}: + '/applications/{appInstanceId}/subscriptions/{subscriptionId}': get: tags: - - appSubscriptions - summary: 'Get subscription' - description: The GET method requests information about a subscription for this requestor. Upon success, the response contains entity body with the subscription for the requestor. + - appSubscriptions + summary: Get subscription + description: >- + The GET method requests information about a subscription for this + requestor. Upon success, the response contains message content with the + subscription for the requestor. operationId: ApplicationsSubscription_GET parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string - - name: subscriptionId - in: path - description: Represents a subscription to the notifications from the MEC platform. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: subscriptionId + in: path + description: >- + Represents a subscription to the notifications from the MEC + platform. + required: true + style: simple + schema: + type: string responses: '200': - description: Upon success, a response body containing the requested subscription is returned. + description: >- + Upon success, a response message content containing the requested + subscription is returned. headers: {} content: application/json: schema: $ref: '#/components/schemas/AppTerminationNotificationSubscription' '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -748,14 +871,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -769,39 +896,50 @@ paths: deprecated: false delete: tags: - - appSubscriptions - summary: 'delete subscription' - description: This method deletes a mecAppSuptApiSubscription. This method is typically used in "Unsubscribing from service availability event notifications" procedure. + - appSubscriptions + summary: delete subscription + description: >- + This method deletes a mecAppSuptApiSubscription. This method is + typically used in "Unsubscribing from service availability event + notifications" procedure. operationId: ApplicationsSubscription_DELETE parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string - - name: subscriptionId - in: path - description: Represents a subscription to the notifications from the MEC platform. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: subscriptionId + in: path + description: >- + Represents a subscription to the notifications from the MEC + platform. + required: true + style: simple + schema: + type: string responses: '204': description: No Content headers: {} content: {} '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -814,23 +952,29 @@ paths: contentMediaType: text/plain deprecated: false parameters: [] - /applications/{appInstanceId}/confirm_termination: + '/applications/{appInstanceId}/confirm_termination': post: tags: - - appConfirmTermination - summary: 'Confirm termination' - description: This method is used to confirm the application level termination of an application instance. + - appConfirmTermination + summary: Confirm termination + description: >- + This method is used to confirm the application level termination of an + application instance. operationId: ApplicationsConfirmTermination_POST parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string requestBody: - description: '' + description: >- + Message content in the request contains the operational action the + application instance is responding to. content: application/json: schema: @@ -838,11 +982,15 @@ paths: required: false responses: '204': - description: No Content + description: >- + No Content. The request is acknowledged. The response message + content shall be empty. headers: {} content: {} '401': - description: Unauthorized. It is used when the client did not submit the appropriate credentials. + description: >- + Unauthorized. It is used when the client did not submit the + appropriate credentials. headers: {} content: application/problem+json: @@ -854,14 +1002,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -873,7 +1025,10 @@ paths: description: Empty schema contentMediaType: text/plain '409': - description: Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state. + description: >- + Conflict. The operation cannot be executed currently, due to a + conflict with the state of the resource. Typically, this is because + the application instance resource is in NOT_INSTANTIATED state. headers: {} content: application/problem+json: @@ -898,23 +1053,29 @@ paths: contentMediaType: text/plain deprecated: false parameters: [] - /applications/{appInstanceId}/confirm_ready: + '/applications/{appInstanceId}/confirm_ready': post: tags: - - appConfirmReady - summary: 'Confirm ready' - description: 'This method may be used by the MEC application instance to notify the MEC platform that it is up and running. ' + - appConfirmReady + summary: Confirm ready + description: >- + This method may be used by the MEC application instance to notify the + MEC platform that it is up and running. operationId: ApplicationsConfirmReady_POST parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string requestBody: - description: '' + description: >- + Message content in the request contains the indication that the + application instance is up and running. content: application/json: schema: @@ -926,7 +1087,9 @@ paths: headers: {} content: {} '401': - description: Unauthorized. It is used when the client did not submit the appropriate credentials. + description: >- + Unauthorized. It is used when the client did not submit the + appropriate credentials. headers: {} content: application/problem+json: @@ -938,14 +1101,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -957,7 +1124,10 @@ paths: description: Empty schema contentMediaType: text/plain '409': - description: Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state. + description: >- + Conflict. The operation cannot be executed currently, due to a + conflict with the state of the resource. Typically, this is because + the application instance resource is in NOT_INSTANTIATED state. headers: {} content: application/problem+json: @@ -982,24 +1152,350 @@ paths: contentMediaType: text/plain deprecated: false parameters: [] + /registrations: + post: + tags: + - appRegistrations + summary: Create Registrantion + description: >- + The POST method may be used by the MEC application instance to request + its registration to the MEC platform. + operationId: ApplicationsRegistrations_POST + parameters: [] + requestBody: + description: >- + The message content in the request contains the profile of the MEC + application instance, calling the MEC platform to register the MEC + application instance. + content: + application/json: + schema: + $ref: '#/components/schemas/AppInfo' + required: false + responses: + '201': + description: >- + Indicates successful resource creation for registration of the MEC + application instance to the MEC platform. + headers: + location: + description: The resource URI of the created resource + content: + text/plain: + schema: + type: string + description: The resource URI of the created resource + contentMediaType: text/plain + content: + application/json: + schema: + $ref: '#/components/schemas/AppInfo' + '400': + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + '401': + description: >- + Unauthorized. It is used when the client did not submit the + appropriate credentials. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + '403': + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + '/registrations/{appInstanceId}': + get: + tags: + - appRegistrations + summary: Get Registration + description: >- + The GET method may be used by the MEC application instance to retrieve + information about the existing MEC application instance registration to + the MEC platform. + operationId: ApplicationsRegistration_GET + parameters: + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + responses: + '200': + description: >- + Upon success, a response message content containing the requested + subscription is returned. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/AppInfo' + '400': + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + '403': + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + put: + tags: + - appRegistrations + summary: Update Registration + description: >- + The PUT method may be used by the MEC application instance to update its + registration to the MEC platform. + operationId: ApplicationsRegistration_PUT + parameters: + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + requestBody: + description: >- + Message content in the request contains the profile of the + application, calling the MEC platform to update the existing MEC + application instance registration. + content: + application/json: + schema: + $ref: '#/components/schemas/AppInfo' + required: true + responses: + '204': + description: No Content + headers: {} + content: {} + '400': + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + '401': + description: >- + Unauthorized. It is used when the client did not submit the + appropriate credentials. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + '403': + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + delete: + tags: + - appRegistrations + summary: delete registration + description: >- + The DELETE method is used to cancel the existing MEC application + instance registration. + operationId: ApplicationsRegistration_DELETE + parameters: + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + responses: + '204': + description: No Content + headers: {} + content: {} + '400': + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + '401': + description: >- + Unauthorized. It is used when the client did not submit the + appropriate credentials. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + '403': + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] /timing/timing_caps: get: tags: - - timing - summary: 'Retrieve timing capabilities' - description: This method retrieves the information of the platform's timing capabilities which corresponds to the timing capabilities query + - timing + summary: Retrieve timing capabilities + description: >- + This method retrieves the information of the platform's timing + capabilities which corresponds to the timing capabilities query operationId: TimingCaps_GET parameters: [] responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + It is used to indicate nonspecific success. The response message + content contains a representation of the resource. headers: {} content: application/json: schema: $ref: '#/components/schemas/TimingCaps' '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -1011,14 +1507,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -1034,21 +1534,27 @@ paths: /timing/current_time: get: tags: - - timing - summary: 'Retrieve current time' - description: This method retrieves the information of the platform's current time which corresponds to the get platform time procedure + - timing + summary: Retrieve current time + description: >- + This method retrieves the information of the platform's current time + which corresponds to the get platform time procedure operationId: TimingCurrentTime_GET parameters: [] responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + It is used to indicate nonspecific success. The response message + content contains a representation of the resource. headers: {} content: application/json: schema: $ref: '#/components/schemas/CurrentTime' '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -1060,14 +1566,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -1085,7 +1595,7 @@ components: AppReadyConfirmation: title: AppReadyConfirmation required: - - indication + - indication type: object properties: indication: @@ -1093,21 +1603,129 @@ components: type: string description: Indication about the MEC application instance. examples: - - READY - description: This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running. + - READY + description: >- + This type represents the information that the MEC application instance + indicates to the MEC platform that it is up and running. + AppInfo: + title: AppInfo + required: + - appName + type: object + properties: + appName: + title: appName + type: string + description: >- + Name of the application. It shall be consistent with the appName in + the AppD, if an AppD is available. + examples: + - appName + appProvider: + title: appProvider + type: string + description: >- + Provider of the application. It shall be consistent with the + appProvider in the AppD, if an AppD is available. See note 1. + examples: + - appProvider1 + appCategory: + $ref: '#/components/schemas/CategoryRef' + appDId: + title: appDId + type: string + description: >- + The application descriptor identifier. It is managed by the + application provider to identify the application descriptor in a + globally unique way. Shall be present if the application instance is + instantiated by the MEC Management. + examples: + - TODO + appInstanceId: + title: appInstanceId + type: string + description: >- + Identifier of the application instance. Shall be present if the + application instance is instantiated by the MEC Management. + examples: + - ID1 + endpoint: + oneOf: + - $ref: '#/components/schemas/EndPointInfo.Uris' + - $ref: '#/components/schemas/EndPointInfo.Fqdn' + - $ref: '#/components/schemas/EndPointInfo.Addresses' + - $ref: '#/components/schemas/EndPointInfo.Alternative' + description: This type represents information about a transport endpoint + x-etsi-notes: "NOTE 1:\tIf appProfile is present, appProvider shall be consistent with provId provided in EAS profile data type, i.e. the same.\nNOTE 2:\tIf appProfile is present, endpoint shall refer to the same end point as endPt provided in EAS profile data type." + appServiceRequired: + title: appServiceRequired + type: array + items: + $ref: '#/components/schemas/ServiceDependency' + description: >- + Describes services a MEC application requires to run. + ServiceDependency is defined in ETSI GS MEC 010-2 [4]. It shall not + be provided if an AppD is available. + appServiceOptional: + title: appServiceOptional + type: array + items: + $ref: '#/components/schemas/ServiceDependency' + description: >- + Describes services a MEC application may use if available. + ServiceDependency is defined in ETSI GS MEC 010-2 [4]. It shall not + be provided if an AppD is available. + appFeatureRequired: + title: appFeatureRequired + type: array + items: + $ref: '#/components/schemas/FeatureDependency' + description: >- + Describes features a MEC application requires to run. + FeatureDependency is defined in ETSI GS MEC 010-2 [4]. It shall not + be provided if an AppD is available. + appFeatureOptional: + title: appFeatureOptional + type: array + items: + $ref: '#/components/schemas/FeatureDependency' + description: >- + Describes features a MEC application may use if available. + FeatureDependency is defined in ETSI GS MEC 010-2 [4]. It shall not + be provided if an AppD is available. + isInsByMec: + type: boolean + description: >- + Indicate whether the application instance is instantiated by the MEC + Management. + + Default to FALSE if absent. + examples: + - false + appProfile: + $ref: '#/components/schemas/AppProfile' + description: >- + This type represents the information provided by the MEC application + instance as part of the "application registration request" and + "application registration update" messages. + x-etsi-notes: "NOTE 1:\tIf appProfile is present, appProvider shall be consistent with provId provided in EAS profile data type, i.e. the same.\nNOTE 2:\tIf appProfile is present, endpoint shall refer to the same end point as endPt provided in EAS profile data type." AppTerminationConfirmation: title: AppTerminationConfirmation required: - - operationAction + - operationAction type: object properties: operationAction: $ref: '#/components/schemas/OperationActionType' - description: This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop. + description: >- + This type represents the information that the MEC application instance + provides to the MEC platform when informing it that the application has + completed its application level related terminate/stop actions, e.g. + retention of application state in the case of stop. AppTerminationNotification.Links: title: AppTerminationNotification.Links required: - - subscription + - subscription type: object properties: subscription: @@ -1118,90 +1736,108 @@ components: AppTerminationNotification: title: AppTerminationNotification required: - - notificationType - - operationAction - - maxGracefulTimeout - - _links + - notificationType + - operationAction + - maxGracefulTimeout + - _links type: object properties: notificationType: type: string description: Shall be set to AppTerminationNotification. examples: - - AppTerminationNotification + - AppTerminationNotification operationAction: $ref: '#/components/schemas/OperationActionType' maxGracefulTimeout: type: integer - description: Maximum timeout value in seconds for graceful termination or graceful stop of an application instance. + description: >- + Maximum timeout value in seconds for graceful termination or + graceful stop of an application instance. contentEncoding: int32 examples: - - 10 + - 10 _links: $ref: '#/components/schemas/AppTerminationNotification.Links' - description: This type represents the information that the MEC platform notifies the subscribed application instance about the corresponding application instance termination/stop. + description: >- + This type represents the information that the MEC platform notifies the + subscribed application instance about the corresponding application + instance termination/stop. AppTerminationNotificationSubscription: title: AppTerminationNotificationSubscription required: - - subscriptionType - - callbackReference - - _links - - appInstanceId + - subscriptionType + - callbackReference + - _links + - appInstanceId type: object properties: subscriptionType: type: string description: Shall be set to AppTerminationNotificationSubscription. examples: - - AppTerminationNotificationSubscription + - AppTerminationNotificationSubscription callbackReference: type: string - description: URI selected by the MEC application instance to receive notifications on the subscribed MEC application instance management information. This shall be included in both the request and the response. + description: >- + URI selected by the MEC application instance to receive + notifications on the subscribed MEC application instance management + information. This shall be included in both the request and the + response. _links: $ref: '#/components/schemas/Self' appInstanceId: type: string description: It is used as the filtering criterion for the subscribed events. examples: - - ID1 - description: This type represents the information that the MEC platform notifies the subscribed application instance about the corresponding application instance termination/stop. + - ID1 + description: >- + This type represents the information that the MEC platform notifies the + subscribed application instance about the corresponding application + instance termination/stop. CurrentTime: title: CurrentTime required: - - seconds - - nanoSeconds - - timeSourceStatus + - seconds + - nanoSeconds + - timeSourceStatus type: object properties: seconds: type: integer - description: The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + description: >- + The seconds part of the time. Time is defined as Unix-time since + January 1, 1970, 00:00:00 UTC contentEncoding: int32 examples: - - 1577836800 + - 1577836800 nanoSeconds: type: integer - description: The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + description: >- + The nanoseconds part of the time. Time is defined as Unix-time since + January 1, 1970, 00:00:00 UTC contentEncoding: int32 examples: - - 0 + - 0 timeSourceStatus: $ref: '#/components/schemas/TimeSourceStatus' - description: This type represents the information provided by the MEC platform in response to the Get Platform Time Request message. + description: >- + This type represents the information provided by the MEC platform in + response to the Get Platform Time Request message. DestinationInterface.InterfaceType: title: DestinationInterface.InterfaceType enum: - - TUNNEL - - MAC - - IP + - TUNNEL + - MAC + - IP type: string description: Type of the interface examples: - - TUNNEL + - TUNNEL DestinationInterface: title: DestinationInterface required: - - interfaceType + - interfaceType type: object properties: interfaceType: @@ -1212,63 +1848,68 @@ components: type: string description: Source address identifies the MAC address of the interface examples: - - 02-00-00-00-00-00 + - 02-00-00-00-00-00 dstMacAddress: type: string description: Source address identifies the MAC address of the interface examples: - - 02-00-00-00-00-00 + - 02-00-00-00-00-00 dstIpAddress: type: string description: IP address of the remote destination examples: - - 192.0.2.0 - description: This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided. + - 192.0.2.0 + description: >- + This type represents the destination interface. If the action is + FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value + shall be provided. If the action is DUPLICATE_DECAPSULATED or + DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is + DROP, no value shall be provided. DnsRule.IpAddressType: title: DnsRule.IpAddressType enum: - - IP_V6 - - IP_V4 + - IP_V6 + - IP_V4 type: string description: IP address type examples: - - IP_V6 + - IP_V6 DnsRule.State: title: DnsRule.State enum: - - ACTIVE - - INACTIVE + - ACTIVE + - INACTIVE type: string description: DNS rule state. This attribute may be updated using HTTP PUT method examples: - - ACTIVE + - ACTIVE DnsRule: title: DnsRule required: - - dnsRuleId - - domainName - - ipAddressType - - ipAddress - - state + - dnsRuleId + - domainName + - ipAddressType + - ipAddress + - state type: object properties: dnsRuleId: type: string description: Identifies the DNS Rule examples: - - dnsRule1 + - dnsRule1 domainName: type: string description: FQDN resolved by the DNS rule examples: - - www.example.com + - www.example.com ipAddressType: $ref: '#/components/schemas/DnsRule.IpAddressType' ipAddress: type: string description: IP address associated with the FQDN resolved by the DNS rule examples: - - 192.0.2.0 + - 192.0.2.0 ttl: type: integer description: Time to live value @@ -1276,6 +1917,7 @@ components: state: $ref: '#/components/schemas/DnsRule.State' description: This type represents the general information of a DNS rule. + x-etsi-notes: "NOTE:\tIf no ttl value is provided, the DnsRule shall not expire." LinkType: title: LinkType type: object @@ -1284,8 +1926,10 @@ components: type: string description: URI referring to a resource examples: - - /mecAppSuptApi/example - description: This type represents a type of link and may be referenced from data structures + - /mecAppSuptApi/example + description: >- + This type represents a type of link and may be referenced from data + structures LinkType.ConfirmTermination: title: LinkType.ConfirmTermination type: object @@ -1294,12 +1938,14 @@ components: type: string description: URI referring to a resource examples: - - /mecAppSuptApi/example - description: Link to the task resource where to confirm termination in case the application is ready to be terminated before expiry of the timeout. + - /mecAppSuptApi/example + description: >- + Link to the task resource where to confirm termination in case the + application is ready to be terminated before expiry of the timeout. MecAppSuptApiSubscriptionLinkList.Links: title: MecAppSuptApiSubscriptionLinkList.Links required: - - self + - self type: object properties: self: @@ -1313,61 +1959,70 @@ components: MecAppSuptApiSubscriptionLinkList.Subscription: title: MecAppSuptApiSubscriptionLinkList.Subscription required: - - href - - rel + - href + - subscriptionType type: object properties: href: type: string description: URI referring to a resource examples: - - /mecAppSuptApi/example - rel: + - /mecAppSuptApi/example + subscriptionType: type: string - description: The values shall be set to AppTerminationNotificationSubscription. + description: Type of the subscription. The values are as defined in the "subscriptionType" attribute for each different Mp1 event subscription data type. description: A link to a subscription. MecAppSuptApiSubscriptionLinkList: title: MecAppSuptApiSubscriptionLinkList required: - - _links + - _links type: object properties: _links: $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Links' - description: This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions. + description: >- + This type represents a list of links related to currently existing + subscriptions for a MEC application instance. This information is + returned when sending a request to receive current subscriptions. OperationActionType: title: OperationActionType enum: - - STOPPING - - TERMINATING + - STOPPING + - TERMINATING type: string description: Operation that is being performed on the MEC application instance. examples: - - TERMINATING + - TERMINATING ProblemDetails: title: ProblemDetails type: object properties: type: type: string - description: A URI reference according to IETF RFC 3986 that identifies the problem type + description: >- + A URI reference according to IETF RFC 3986 that identifies the + problem type title: type: string - description: A short, human-readable summary of the problem type + description: 'A short, human-readable summary of the problem type' status: type: integer description: The HTTP status code for this occurrence of the problem contentEncoding: int32 detail: type: string - description: A human-readable explanation specific to this occurrence of the problem + description: >- + A human-readable explanation specific to this occurrence of the + problem instance: type: string - description: A URI reference that identifies the specific occurrence of the problem + description: >- + A URI reference that identifies the specific occurrence of the + problem Self: title: Self required: - - self + - self type: object properties: self: @@ -1376,32 +2031,31 @@ components: TimingCaps.NtpServers.AuthenticationOption: title: TimingCaps.NtpServers.AuthenticationOption enum: - - NONE - - SYMMETRIC_KEY - - AUTO_KEY + - NONE + - SYMMETRIC_KEY + - AUTO_KEY type: string description: NTP authentication option examples: - - NONE + - NONE TimingCaps.NtpServers.NtpServerAddrType: title: TimingCaps.NtpServers.NtpServerAddrType enum: - - IP_ADDRESS - - DNS_NAME + - IP_ADDRESS + - DNS_NAME type: string description: Address type of NTP server examples: - - IP_ADDRESS + - IP_ADDRESS TimingCaps.NtpServers: title: TimingCaps.NtpServers required: - - ntpServerAddrType - - ntpServerAddr - - minPollingInterval - - maxPollingInterval - - localPriority - - authenticationOption - - authenticationKeyNum + - ntpServerAddrType + - ntpServerAddr + - minPollingInterval + - maxPollingInterval + - localPriority + - authenticationOption type: object properties: ntpServerAddrType: @@ -1410,79 +2064,93 @@ components: type: string description: NTP server address examples: - - 192.0.2.0 + - 192.0.2.0 minPollingInterval: type: integer - description: Minimum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17 + description: >- + Minimum poll interval for NTP messages, in seconds as a power of + two. Range 3 to 17 contentEncoding: int32 examples: - - 3 + - 3 maxPollingInterval: type: integer - description: Maximum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17 + description: >- + Maximum poll interval for NTP messages, in seconds as a power of + two. Range 3 to 17 contentEncoding: int32 examples: - - 17 + - 17 localPriority: type: integer description: NTP server local priority contentEncoding: int32 examples: - - 1 + - 1 authenticationOption: $ref: '#/components/schemas/TimingCaps.NtpServers.AuthenticationOption' authenticationKeyNum: type: integer - description: Authentication key number + description: >- + Authentication key number. This configuration is valid and shall be + present if authenticationOption is set to SYMMETRIC_KEY contentEncoding: int32 examples: - - 1 + - 1 description: NTP server detail. TimingCaps_PtpMasters: title: TimingCaps_PtpMasters required: - - ptpMasterIpAddress - - ptpMasterLocalPriority - - delayReqMaxRate + - ptpMasterIpAddress + - ptpMasterLocalPriority + - delayReqMaxRate type: object properties: ptpMasterIpAddress: type: string description: PTP Server (referred to as "master" in IEEE 1588-2019) IP Address examples: - - 192.0.2.0 + - 192.0.2.0 ptpMasterLocalPriority: type: integer - description: PTP Server (referred to as "master" in IEEE 1588-2019 ) local priority + description: >- + PTP Server (referred to as "master" in IEEE 1588-2019 ) local + priority contentEncoding: int32 examples: - - 1 + - 1 delayReqMaxRate: type: integer - description: Acceptable maximum rate of the Delay_Req messages in packets per second + description: >- + Acceptable maximum rate of the Delay_Req messages in packets per + second contentEncoding: int32 examples: - - 10 + - 10 description: NTP server detail. TimingCaps.TimeStamp: title: TimingCaps.TimeStamp required: - - seconds - - nanoSeconds + - seconds + - nanoSeconds type: object properties: seconds: type: integer - description: The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + description: >- + The seconds part of the time. Time is defined as Unix-time since + January 1, 1970, 00:00:00 UTC contentEncoding: int32 examples: - - 1577836800 + - 1577836800 nanoSeconds: type: integer - description: The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + description: >- + The nanoseconds part of the time. Time is defined as Unix-time since + January 1, 1970, 00:00:00 UTC contentEncoding: int32 examples: - - 0 + - 0 description: time TimingCaps: title: TimingCaps @@ -1499,8 +2167,12 @@ components: type: array items: $ref: '#/components/schemas/TimingCaps_PtpMasters' - description: Number of available PTP Servers (referred to as "masters" in IEEE 1588-2019) - description: This type represents the information provided by the MEC platform in response to the Timing capabilities Query message. + description: >- + Number of available PTP Servers (referred to as "masters" in IEEE + 1588-2019) + description: >- + This type represents the information provided by the MEC platform in + response to the Timing capabilities Query message. TrafficFilter: title: TrafficFilter type: object @@ -1509,12 +2181,20 @@ components: type: array items: type: string - description: An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes. + description: >- + An IP address or a range of IP address. For IPv4, the IP address + could be an IP address plus mask, or an individual IP address, or a + range of IP addresses. For IPv6, the IP address could be an IP + prefix, or a range of IP prefixes. dstAddress: type: array items: type: string - description: An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes. + description: >- + An IP address or a range of IP address. For IPv4, the IP address + could be an IP address plus mask, or an individual IP address, or a + range of IP addresses. For IPv6, the IP address could be an IP + prefix, or a range of IP prefixes. srcPort: type: array items: @@ -1530,7 +2210,7 @@ components: items: type: string description: Specify the protocol of the traffic filter - token: + tag: type: array items: type: string @@ -1557,78 +2237,92 @@ components: description: Used for GTP tunnel based traffic rule qCI: type: integer - description: Used to match all packets that have the same Quality Class Indicator (QCI). + description: >- + Used to match all packets that have the same Quality Class Indicator + (QCI). contentEncoding: int32 examples: - - 1 + - 1 dSCP: type: integer - description: Used to match all IPv4 packets that have the same Differentiated Services Code Point (DSCP) + description: >- + Used to match all IPv4 packets that have the same Differentiated + Services Code Point (DSCP) contentEncoding: int32 examples: - - 0 + - 0 tC: type: integer description: Used to match all IPv6 packets that have the same Traffic Class. contentEncoding: int32 examples: - - 1 + - 1 description: This type represents the traffic filter. TrafficRule.Action: title: TrafficRule.Action enum: - - DROP - - FORWARD_DECAPSULATED - - FORWARD_ENCAPSULATED - - PASSTHROUGH - - DUPLICATE_DECAPSULATED - - DUPLICATE_ENCAPSULATED + - DROP + - FORWARD_DECAPSULATED + - FORWARD_ENCAPSULATED + - PASSTHROUGH + - DUPLICATE_DECAPSULATED + - DUPLICATE_ENCAPSULATED type: string - description: The action of the MEC host data plane when a packet matches the trafficFilter + description: >- + The action of the MEC host data plane when a packet matches the + trafficFilter examples: - - DROP + - DROP TrafficRule.FilterType: title: TrafficRule.FilterType enum: - - FLOW - - PACKET + - FLOW + - PACKET type: string - description: Definition of filter per FLOW or PACKET. If flow the filter match UE->EPC packet and the reverse packet is handled in the same context + description: >- + Definition of filter per FLOW or PACKET. If flow the filter match + UE->EPC packet and the reverse packet is handled in the same context examples: - - FLOW + - FLOW TrafficRule.State: title: TrafficRule.State enum: - - ACTIVE - - INACTIVE + - ACTIVE + - INACTIVE type: string - description: Contains the traffic rule state. This attribute may be updated using HTTP PUT method + description: >- + Contains the traffic rule state. This attribute may be updated using + HTTP PUT method examples: - - ACTIVE + - ACTIVE TrafficRule: title: TrafficRule required: - - trafficRuleId - - filterType - - priority - - trafficFilter - - action - - state + - trafficRuleId + - filterType + - priority + - trafficFilter + - action + - state type: object properties: trafficRuleId: type: string description: Identify the traffic rule. examples: - - TrafficRule1 + - TrafficRule1 filterType: $ref: '#/components/schemas/TrafficRule.FilterType' priority: type: integer - description: Priority of this traffic rule within the range 0 to 255. If traffic rules conflict, the one with higher priority take precedence. Value indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest priority. + description: >- + Priority of this traffic rule within the range 0 to 255. If traffic + rules conflict, the one with higher priority take precedence. Value + indicates the priority in descending order, i.e. with 0 as the + highest priority and 255 as the lowest priority. contentEncoding: int32 examples: - - 1 + - 1 trafficFilter: type: array items: @@ -1639,24 +2333,25 @@ components: dstInterface: type: array items: - $ref: '#/components/schemas/DestinationInterface' + $ref: '#/components/schemas/DestinationInterface' maxItems: 2 state: $ref: '#/components/schemas/TrafficRule.State' description: This type represents the general information of a traffic rule. + x-etsi-notes: "NOTE 1:\tValue indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest priority.\nNOTE 2:\tSome applications (like inline/tap) require two interfaces. The first interface in the case of inline/tap is on the client (e.g. UE) side and the second on the core network (e.g. EPC) side." TunnelInfo.TunnelType: title: TunnelInfo.TunnelType enum: - - GTP_U - - GRE + - GTP_U + - GRE type: string description: This type represents the tunnel information. examples: - - GTP_U + - GTP_U TunnelInfo: title: TunnelInfo required: - - tunnelType + - tunnelType type: object properties: tunnelType: @@ -1665,23 +2360,372 @@ components: type: string description: Destination address of the tunnel examples: - - '?' + - '?' tunnelSrcAddress: type: string description: Source address of the tunnel examples: - - '?' + - '?' description: This type represents the tunnel information. TimeSourceStatus: title: TimeSourceStatus enum: - - TRACEABLE - - NONTRACEABLE + - TRACEABLE + - NONTRACEABLE type: string - description: Platform Time Source status. 1 = TRACEABLE - time source is locked to the UTC time source. 2 = NONTRACEABLE - time source is not locked to the UTC time source + description: >- + Platform Time Source status. 1 = TRACEABLE - time source is locked to + the UTC time source. 2 = NONTRACEABLE - time source is not locked to the + UTC time source examples: - - TRACEABLE + - TRACEABLE + CategoryRef: + title: CategoryRef + required: + - href + - id + - name + - version + type: object + properties: + href: + type: string + description: Reference of the catalogue + examples: + - /example/catalogue1 + id: + type: string + description: Unique identifier of the category + examples: + - id12345 + name: + type: string + description: >- + Name of the category, example values include RNI, Location & + Bandwidth Management + examples: + - RNI + version: + type: string + description: Category version + examples: + - version1 + description: This type represents the category reference + EndPointInfo.Address: + title: EndPointInfo.Address + required: + - host + - port + type: object + properties: + host: + type: string + description: Host portion of the address + examples: + - 192.0.2.0 + port: + type: integer + description: Port portion of the address + contentEncoding: int32 + examples: + - 8080 + description: A IP address and port pair + EndPointInfo.Addresses: + title: EndPointInfo.Addresses + required: + - addresses + type: object + properties: + addresses: + type: array + items: + $ref: '#/components/schemas/EndPointInfo.Address' + description: >- + Entry point information of the service as one or more pairs of IP + address and port. See note. + description: This type represents information about a transport endpoint. + EndPointInfo.Alternative: + title: EndPointInfo.Alternative + required: + - alternative + type: object + properties: + alternative: + type: object + description: >- + Entry point information of the service in a format defined by an + implementation, or in an external specification. See note. + description: This type represents information about a transport endpoint. + EndPointInfo.Uris: + title: EndPointInfo.Uris + required: + - uris + type: object + properties: + uris: + type: array + items: + type: string + description: >- + Entry point information of the service as string, formatted + according to URI syntax + description: This type represents information about a transport endpoint. + EndPointInfo.Fqdn: + title: EndPointInfo.Fqdn + required: + - fqdn + type: object + properties: + fqdn: + type: array + items: + type: string + description: Fully Qualified Domain Name of the service. See note. + description: 'This type represents information about a transport endpoint. ' + ServiceDependency: + properties: + requestedPermissions: + description: >- + Requested permissions regarding the access of the application to the + service. See clause 8.2 of ETSI GS MEC 009 [4]. + The format of this attribute is left for the data model design + stage. + items: + $ref: '#/components/schemas/Not_specified' + minItems: 0 + type: array + serCategory: + $ref: '#/components/schemas/CategoryRef' + serName: + description: 'The name of the service, for example, RNIS, LocationService, etc.' + type: string + serTransportDependencies: + description: >- + Indicates transport and serialization format dependencies of + consuming the service. Defaults to REST + JSON if absent. See note. + items: + $ref: '#/components/schemas/TransportDependency' + minItems: 0 + type: array + version: + description: The version of the service. + type: string + required: + - serName + - version + type: object + x-etsi-notes: "NOTE:\tThis attribute indicates groups of transport bindings that a service-consuming MEC application supports for the consumption of the MEC service defined by this ServiceDependency structure. If at least one of the indicated groups is supported by the service it may be consumed by the application." + TransportDependency: + properties: + labels: + description: >- + Set of labels that allow to define groups of transport bindings. The + mechanism of the grouping is defined below this table. + items: + type: string + minItems: 1 + type: array + serializers: + description: >- + Information about the serializers in this transport binding, as + defined in the SerializerType type in ETSI GS MEC 011 [i.4]. Support + for at least one of the entries is required in conjunction with the + transport. + items: + $ref: '#/components/schemas/SerializerType' + minItems: 1 + type: array + transport: + $ref: '#/components/schemas/TransportDescriptor' + required: + - transport + - serializers + - labels + type: object + TransportDescriptor: + properties: + protocol: + description: >- + The name of the protocol used. Shall be set to "HTTP" for a REST + API. + type: string + security: + $ref: '#/components/schemas/SecurityInfo' + type: + $ref: '#/components/schemas/TransportType' + version: + description: The version of the protocol used. + type: string + required: + - type + - protocol + - version + - security + type: object + SerializerType: + title: SerializerType + enum: + - JSON + - XML + - PROTOBUF3 + type: string + description: The enumeration represents types of serializers + examples: + - JSON + SecurityInfo: + title: SecurityInfo + type: object + properties: + oAuth2Info: + $ref: '#/components/schemas/SecurityInfo.OAuth2Info' + description: This type represents security information related to a transport + SecurityInfo.OAuth2Info: + title: SecurityInfo.OAuth2Info + required: + - grantTypes + - tokenEndpoint + type: object + properties: + grantTypes: + maxItems: 4 + minItems: 1 + type: array + items: + $ref: '#/components/schemas/SecurityInfo.OAuth2Info.GrantType' + description: List of supported OAuth 2.0 grant types. + tokenEndpoint: + type: string + description: The token endpoint + examples: + - /mecSerMgmtApi/security/TokenEndPoint + description: Parameters related to use of OAuth 2.0 + SecurityInfo.OAuth2Info.GrantType: + title: SecurityInfo.OAuth2Info.GrantType + enum: + - OAUTH2_AUTHORIZATION_CODE + - OAUTH2_IMPLICIT_GRANT + - OAUTH2_RESOURCE_OWNER + - OAUTH2_CLIENT_CREDENTIALS + type: string + description: OAuth 2.0 grant type + examples: + - OAUTH2_CLIENT_CREDENTIALS + TransportType: + title: TransportType + enum: + - REST_HTTP + - MB_TOPIC_BASED + - MB_ROUTING + - MB_PUBSUB + - RPC + - RPC_STREAMING + - WEBSOCKET + type: string + description: The enumeration TransportType represents types of transports + examples: + - REST_HTTP + FeatureDependency: + properties: + featureName: + description: 'The name of the feature, for example, UserApps, UEIdentity, etc.' + type: string + version: + description: The version of the feature. + type: string + required: + - featureName + - version + type: object + AppProfile: + type: object + required: + - easId + - endPt + - acIds + - scheds + - permLvl + - easFeats + - svcContSupp + - appLocs + properties: + easId: + description: The identifier of the EAS + type: string + examples: + - appName + endPt: + description: The version of the feature. + oneOf: + - $ref: '#/components/schemas/EndPointInfo.Uris' + - $ref: '#/components/schemas/EndPointInfo.Fqdn' + - $ref: '#/components/schemas/EndPointInfo.Addresses' + - $ref: '#/components/schemas/EndPointInfo.Alternative' + acIds: + type: array + items: + type: string + minItems: 1 + description: Identities of the Application Clients that can be served by the EAS + provId: + type: string + description: Identifier of the ASP that provides the EAS. + examples: + - appProvider1 + type: + description: The category or type of EAS. + type: string + scheds: + type: array + items: + type: string + minItems: 1 + description: The availability schedule of the EAS. + svcArea: + type: string + description: >- + The list of geographical and topological areas that the EAS serves. + ACs in the UE that are outside the area will not be served. + svcKpi: + type: string + description: Service characteristics provided by the EAS. + permLvl: + type: array + items: + type: string + minItems: 1 + description: level of service permissions supported by the EAS. + easFeats: + type: array + items: + type: string + minItems: 1 + description: Service features supported by the EAS. + svcContSupp: + type: array + items: + type: string + minItems: 1 + description: The ACR scenarios supported by the EAS for service continuity. + appLocs: + type: array + items: + type: string + minItems: 1 + description: >- + List of DNAI(s) and the N6 traffic information associated with the + EAS. + avlRep: + type: integer + description: >- + The period indicating to the EES, how often the EES needs to check + the EAS's availability after a successful registration. + contentEncoding: int32 + examples: + - 1577836800 + status: + type: string + description: 'EAS status information. ' requestBodies: AppTerminationNotification: content: @@ -1689,6 +2733,5 @@ components: schema: $ref: '#/components/schemas/AppTerminationNotification' required: true - security: -- {} + - {} diff --git a/MecServiceMgmtApi.json b/MecServiceMgmtApi.json index 1e78b24..ed5e59b 100644 --- a/MecServiceMgmtApi.json +++ b/MecServiceMgmtApi.json @@ -10,23 +10,21 @@ "contact": { "email": "cti_support@etsi.org" }, - "version": "2.2.1" + "version": "3.1.1" }, "externalDocs": { - "description": "ETSI GS MEC011 Application Enablement API, V2.2.1", - "url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf" + "description": "ETSI GS MEC011 Application Enablement API, V3.1.1", + "url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/03.01.01_60/gs_MEC011v030101p.pdf" }, "jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema", "servers": [ { "url": "http://127.0.0.1:8081/mec_service_mgmt/v1", - "variables": { - } + "variables": {} }, { "url": "https://127.0.0.1:8081/mec_service_mgmt/v1", - "variables": { - } + "variables": {} } ], "tags": [ @@ -72,9 +70,8 @@ ], "responses": { "200": { - "description": "Upon success, a response body containing the list of links to the requested subscriptions is returned.", - "headers": { - }, + "description": "Upon success, a response message content containing the list of links to the requested subscriptions is returned.", + "headers": {}, "content": { "application/json": { "schema": { @@ -85,8 +82,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -104,8 +100,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -116,8 +111,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -156,7 +150,7 @@ } ], "requestBody": { - "description": "Entity body in the request contains a subscription to the MEC application termination notifications that is to be created.", + "description": "Message content in the request contains a subscription to the MEC application termination notifications that is to be created.", "content": { "application/json": { "schema": { @@ -193,8 +187,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -212,8 +205,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -224,8 +216,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -266,9 +257,7 @@ } } }, - "parameters": [ - - ] + "parameters": [] }, "/applications/{appInstanceId}/subscriptions/{subscriptionId}": { "get": { @@ -276,7 +265,7 @@ "appSubscriptions" ], "summary": "Get subscription", - "description": "The GET method requests information about a subscription for this requestor. Upon success, the response contains entity body with the subscription for the requestor.", + "description": "The GET method requests information about a subscription for this requestor. Upon success, the response contains message content with the subscription for the requestor.", "operationId": "ApplicationsSubscription_GET", "parameters": [ { @@ -302,9 +291,8 @@ ], "responses": { "200": { - "description": "Upon success, a response body containing the requested subscription is returned.", - "headers": { - }, + "description": "Upon success, a response message content containing the requested subscription is returned.", + "headers": {}, "content": { "application/json": { "schema": { @@ -315,8 +303,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -334,8 +321,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -346,8 +332,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -398,15 +383,12 @@ "responses": { "204": { "description": "No Content", - "headers": { - }, - "content": { - } + "headers": {}, + "content": {} }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -417,8 +399,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -437,9 +418,7 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/applications/{appInstanceId}/services": { "get": { @@ -529,9 +508,8 @@ ], "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "headers": { - }, + "description": "It is used to indicate nonspecific success. The response message content contains a representation of the resource.", + "headers": {}, "content": { "application/json": { "schema": { @@ -631,8 +609,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -650,8 +627,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -662,8 +638,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -681,8 +656,7 @@ }, "414": { "description": "It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -805,8 +779,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -824,8 +797,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -836,8 +808,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -856,9 +827,7 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/applications/{appInstanceId}/services/{serviceId}": { "get": { @@ -882,7 +851,7 @@ { "name": "serviceId", "in": "path", - "description": "Represents a MEC service instance.", + "description": "Represents a MEC service instance (see note).", "required": true, "style": "simple", "schema": { @@ -892,9 +861,8 @@ ], "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "headers": { - }, + "description": "It is used to indicate nonspecific success. The response message content contains a representation of the resource.", + "headers": {}, "content": { "application/json": { "schema": { @@ -943,8 +911,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -962,8 +929,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -974,8 +940,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1015,7 +980,7 @@ { "name": "serviceId", "in": "path", - "description": "Represents a MEC service instance.", + "description": "Represents a MEC service instance. (see note)", "required": true, "style": "simple", "schema": { @@ -1036,9 +1001,8 @@ }, "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "headers": { - }, + "description": "It is used to indicate nonspecific success. The response message content contains a representation of the resource.", + "headers": {}, "content": { "application/json": { "schema": { @@ -1087,8 +1051,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1106,8 +1069,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1118,8 +1080,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1137,8 +1098,7 @@ }, "412": { "description": "Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1178,7 +1138,7 @@ { "name": "serviceId", "in": "path", - "description": "Represents a MEC service instance.", + "description": "Represents a MEC service instance. (see note)", "required": true, "style": "simple", "schema": { @@ -1189,15 +1149,12 @@ "responses": { "204": { "description": "No Content", - "headers": { - }, - "content": { - } + "headers": {}, + "content": {} }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1208,8 +1165,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1228,9 +1184,7 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/services": { "get": { @@ -1310,9 +1264,8 @@ ], "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "headers": { - }, + "description": "It is used to indicate nonspecific success. The response message content contains a representation of the resource.", + "headers": {}, "content": { "application/json": { "schema": { @@ -1412,8 +1365,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1431,8 +1383,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1443,8 +1394,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1462,8 +1412,7 @@ }, "414": { "description": "It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1482,9 +1431,7 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/services/{serviceId}": { "get": { @@ -1498,19 +1445,19 @@ { "name": "serviceId", "in": "path", - "description": "Represents a MEC service instance.", + "description": "Represents a MEC service instance. (see note)", "required": true, "style": "simple", "schema": { "type": "string" - } + }, + "x-etsi-notes": "NOTE:\t serviceId corresponds to serInstanceId" } ], "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "headers": { - }, + "description": "It is used to indicate nonspecific success. The response message content contains a representation of the resource.", + "headers": {}, "content": { "application/json": { "schema": { @@ -1559,8 +1506,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1578,8 +1524,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1590,8 +1535,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1610,9 +1554,7 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/transports": { "get": { @@ -1622,14 +1564,11 @@ "summary": "Get transports", "description": "This method retrieves information about a list of available transports. This method is typically used by a service-producing application to discover transports provided by the MEC platform in the \"transport information query\" procedure", "operationId": "Transports_GET", - "parameters": [ - - ], + "parameters": [], "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "headers": { - }, + "description": "It is used to indicate nonspecific success. The response messages content contains a representation of the resource.", + "headers": {}, "content": { "application/json": { "schema": { @@ -1645,8 +1584,7 @@ }, "400": { "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1664,8 +1602,7 @@ }, "403": { "description": "Forbidden. The operation is not allowed given the current status of the resource.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1676,8 +1613,7 @@ }, "404": { "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1696,9 +1632,7 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/resource_uri_allocated_by_MEC_platform": { "get": { @@ -1710,7 +1644,7 @@ "operationId": "get_individual_MEC_service", "responses": { "200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "description": "It is used to indicate nonspecific success. The response message content contains a representation of the resource.", "content": { "application/json": { "schema": { @@ -1729,8 +1663,8 @@ } } }, - "404": { - "description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.", + "403": { + "description": "The operation is not allowed given the current status of the resource. More information shall be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.", "content": { "application/problem+json": { "schema": { @@ -1739,8 +1673,8 @@ } } }, - "403": { - "description": "The operation is not allowed given the current status of the resource. More information shall be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.", + "404": { + "description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.", "content": { "application/problem+json": { "schema": { @@ -1771,7 +1705,7 @@ }, "responses": { "200": { - "description": "Upon success, a response body is returned containing the updated liveness interval value of the service Instance.", + "description": "Upon success, a response message content is returned containing the updated liveness interval value of the service Instance.", "content": { "application/json": { "schema": { @@ -1782,10 +1716,8 @@ }, "204": { "description": "Successful response sent when there is no need to provide a new liveness interval value to the service Instance.", - "headers": { - }, - "content": { - } + "headers": {}, + "content": {} }, "400": { "description": "It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.", @@ -1797,8 +1729,8 @@ } } }, - "404": { - "description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.", + "403": { + "description": "The operation is not allowed given the current status of the resource. More information shall be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.", "content": { "application/problem+json": { "schema": { @@ -1807,8 +1739,8 @@ } } }, - "403": { - "description": "The operation is not allowed given the current status of the resource. More information shall be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.", + "404": { + "description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.", "content": { "application/problem+json": { "schema": { @@ -1922,10 +1854,10 @@ "items": { "$ref": "#/components/schemas/EndPointInfo.Address" }, - "description": "" + "description": "Entry point information of the service as one or more pairs of IP address and port. See note." } }, - "description": "Entry point information of the service as one or more pairs of IP address and port" + "description": "This type represents information about a transport endpoint." }, "EndPointInfo.Alternative": { "title": "EndPointInfo.Alternative", @@ -1935,10 +1867,11 @@ "type": "object", "properties": { "alternative": { - "type": "object" + "type": "object", + "description": "Entry point information of the service in a format defined by an implementation, or in an external specification. See note." } }, - "description": "Entry point information of the service in a format defined by an implementation, or in an external specification." + "description": "This type represents information about a transport endpoint." }, "EndPointInfo.Uris": { "title": "EndPointInfo.Uris", @@ -1952,10 +1885,27 @@ "items": { "type": "string" }, - "description": "" + "description": "Entry point information of the service as string, formatted according to URI syntax" } }, - "description": "Entry point information of the service as string, formatted according to URI syntax" + "description": "This type represents information about a transport endpoint." + }, + "EndPointInfo.Fqdn": { + "title": "EndPointInfo.Fqdn", + "required": [ + "fqdn" + ], + "type": "object", + "properties": { + "fqdn": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Fully Qualified Domain Name of the service. See note." + } + }, + "description": "This type represents information about a transport endpoint. " }, "LinkType": { "title": "LinkType", @@ -2143,7 +2093,8 @@ "filteringCriteria": { "$ref": "#/components/schemas/SerAvailabilityNotificationSubscription.FilteringCriteria" } - } + }, + "x-etsi-notes": "NOTE:\tThe attributes \"serInstanceIds\", \"serNames\" and \"serCategories\" provide mutually-exclusive alternatives to define a set of services. Only one of them may be present." }, "SerAvailabilityNotificationSubscription.FilteringCriteria": { "title": "SerAvailabilityNotificationSubscription.FilteringCriteria", @@ -2346,6 +2297,13 @@ "state": { "$ref": "#/components/schemas/ServiceState" }, + "transportId": { + "type": "string", + "description": "Identifier of the platform-provided transport to be used by the service. Valid identifiers may be obtained using the \"Transport information query\" procedure. May be present in POST requests to signal the use of a platform-provided transport for the service, and shall be absent otherwise. See note 2.", + "examples": [ + "transportId1" + ] + }, "transportInfo": { "$ref": "#/components/schemas/TransportInfo" }, @@ -2388,7 +2346,8 @@ } } }, - "description": "This type represents the general information of a MEC service." + "description": "This type represents the general information of a MEC service.", + "x-etsi-notes": "NOTE 1:\tThe service category may be included in the application descriptor. It may be allocated by the operator or by the application developer.\nNOTE 2:\tEither transportId or transportInfo but not both shall be present in POST requests.\nNOTE 3:\tValues NFVI_POP, ZONE and NFVI_NODE are used when the service instance is deployed as a VNF.\nNOTE 4:\tThe isLocal is used only in service availability query response and service availability subscription/notification messages.\nNOTE 5:\tValue ZONE_GROUP can be used when the service instance is deployed as a VNF.\nNOTE 6:\tRegarding the value MEC_SYSTEM, if the service is running on the same MEC system as the MEC app, then it will be local to it." }, "ServiceLivenessInfo": { "type": "object", @@ -2503,6 +2462,9 @@ { "$ref": "#/components/schemas/EndPointInfo.Uris" }, + { + "$ref": "#/components/schemas/EndPointInfo.Fqdn" + }, { "$ref": "#/components/schemas/EndPointInfo.Addresses" }, @@ -2510,7 +2472,8 @@ "$ref": "#/components/schemas/EndPointInfo.Alternative" } ], - "description": "This type represents information about a transport endpoint" + "description": "This type represents information about a transport endpoint", + "x-etsi-notes": "NOTE:\tExactly one of \"uris\", \"fqdn\", \"addresses\" or \"alternative\" shall be present." }, "security": { "$ref": "#/components/schemas/SecurityInfo" @@ -2554,7 +2517,6 @@ } }, "security": [ - { - } + {} ] -} +} \ No newline at end of file diff --git a/MecServiceMgmtApi.yaml b/MecServiceMgmtApi.yaml index a325d52..bbdb072 100644 --- a/MecServiceMgmtApi.yaml +++ b/MecServiceMgmtApi.yaml @@ -7,50 +7,59 @@ info: url: 'https://forge.etsi.org/legal-matters' contact: email: cti_support@etsi.org - version: '2.2.1' + version: 3.1.1 externalDocs: - description: ETSI GS MEC011 Application Enablement API, V2.2.1 - url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf -jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema + description: 'ETSI GS MEC011 Application Enablement API, V3.1.1' + url: >- + https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/03.01.01_60/gs_MEC011v030101p.pdf +jsonSchemaDialect: 'https://json-schema.org/draft/2020-12/schema' servers: -- url: http://127.0.0.1:8081/mec_service_mgmt/v1 - variables: {} -- url: https://127.0.0.1:8081/mec_service_mgmt/v1 - variables: {} + - url: 'http://127.0.0.1:8081/mec_service_mgmt/v1' + variables: {} + - url: 'https://127.0.0.1:8081/mec_service_mgmt/v1' + variables: {} tags: -- name: appSubscriptions -- name: appServices -- name: services -- name: transports -- name: callbacks -- name: individualMECservice - + - name: appSubscriptions + - name: appServices + - name: services + - name: transports + - name: callbacks + - name: individualMECservice paths: - /applications/{appInstanceId}/subscriptions: + '/applications/{appInstanceId}/subscriptions': get: tags: - - appSubscriptions - summary: "Get subscriptions" - description: The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains entity body with all the subscriptions for the requestor. + - appSubscriptions + summary: Get subscriptions + description: >- + The GET method may be used to request information about all + subscriptions for this requestor. Upon success, the response contains + entity body with all the subscriptions for the requestor. operationId: ApplicationsSubscriptions_GET parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string responses: '200': - description: Upon success, a response body containing the list of links to the requested subscriptions is returned. + description: >- + Upon success, a response message content containing the list of + links to the requested subscriptions is returned. headers: {} content: application/json: schema: $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList' '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -62,14 +71,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -83,29 +96,38 @@ paths: deprecated: false post: tags: - - appSubscriptions - summary: "Create subscription" - description: The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains entity body describing the created subscription. + - appSubscriptions + summary: Create subscription + description: >- + The POST method may be used to create a new subscription. One example + use case is to create a new subscription to the MEC service availability + notifications. Upon success, the response contains entity body + describing the created subscription. operationId: ApplicationsSubscriptions_POST parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string requestBody: - description: Entity body in the request contains a subscription to the MEC application termination notifications that is to be created. + description: >- + Message content in the request contains a subscription to the MEC + application termination notifications that is to be created. content: application/json: schema: $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' required: true - responses: '201': - description: Entity body in the request contains a subscription to the MEC service availability notifications that is to be created. + description: >- + Entity body in the request contains a subscription to the MEC + service availability notifications that is to be created. headers: location: description: The resource URI of the created resource @@ -120,7 +142,9 @@ paths: schema: $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -132,14 +156,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -151,64 +179,76 @@ paths: description: Empty schema contentMediaType: text/plain deprecated: false - callbacks: ServiceAvailailityNotification: '{$request.body#/callbackReference}': - post: + post: description: >- - 'Represents the service availability information that - is used in the following cases - when the MEC platform announces the newly available - services to the authorized relevant MEC applications (e.g. - the applications that indicate the services as "optional" - or "required") that are subscribed to the corresponding - service availability notifications - when the MEC platform notifies the authorized relevant - applications that are subscribed to the corresponding - service availability notifications about the service availability changes.' + 'Represents the service availability information that is used + in the following cases + when the MEC platform announces the newly available + services to the authorized relevant MEC applications (e.g. the + applications that indicate the services as "optional" or + "required") that are subscribed to the corresponding service + availability notifications when the MEC platform notifies the + authorized relevant applications that are subscribed to the + corresponding service availability notifications about the + service availability changes.' operationId: ServiceAvailabilityNotification_POST - summary: "Create callback" + summary: Create callback tags: - - callbacks + - callbacks requestBody: - $ref: '#/components/requestBodies/ServiceAvailabilityNotification' + $ref: '#/components/requestBodies/ServiceAvailabilityNotification' responses: - '200': - description: Expected responses from callback consumer, if it accepts the callback + '200': + description: >- + Expected responses from callback consumer, if it accepts the + callback parameters: [] - /applications/{appInstanceId}/subscriptions/{subscriptionId}: + '/applications/{appInstanceId}/subscriptions/{subscriptionId}': get: tags: - - appSubscriptions - summary: "Get subscription" - description: The GET method requests information about a subscription for this requestor. Upon success, the response contains entity body with the subscription for the requestor. + - appSubscriptions + summary: Get subscription + description: >- + The GET method requests information about a subscription for this + requestor. Upon success, the response contains message content with the + subscription for the requestor. operationId: ApplicationsSubscription_GET parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string - - name: subscriptionId - in: path - description: Represents a subscription to the notifications from the MEC platform. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: subscriptionId + in: path + description: >- + Represents a subscription to the notifications from the MEC + platform. + required: true + style: simple + schema: + type: string responses: '200': - description: Upon success, a response body containing the requested subscription is returned. + description: >- + Upon success, a response message content containing the requested + subscription is returned. headers: {} content: application/json: schema: $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -220,14 +260,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -241,39 +285,50 @@ paths: deprecated: false delete: tags: - - appSubscriptions + - appSubscriptions summary: delete subscription - description: This method deletes a mecSrvMgmtSubscription. This method is typically used in "Unsubscribing from service availability event notifications" procedure. + description: >- + This method deletes a mecSrvMgmtSubscription. This method is typically + used in "Unsubscribing from service availability event notifications" + procedure. operationId: ApplicationsSubscription_DELETE parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string - - name: subscriptionId - in: path - description: Represents a subscription to the notifications from the MEC platform. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: subscriptionId + in: path + description: >- + Represents a subscription to the notifications from the MEC + platform. + required: true + style: simple + schema: + type: string responses: '204': description: No Content headers: {} content: {} '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -286,70 +341,96 @@ paths: contentMediaType: text/plain deprecated: false parameters: [] - /applications/{appInstanceId}/services: + '/applications/{appInstanceId}/services': get: tags: - - appServices + - appServices summary: get services - description: This method retrieves information about a list of mecService resources. This method is typically used in "service availability query" procedure + description: >- + This method retrieves information about a list of mecService resources. + This method is typically used in "service availability query" procedure operationId: AppServices_GET parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string - - name: ser_instance_id - in: query - description: A MEC application instance may use multiple ser_instance_ids as an input parameter to query the availability of a list of MEC service instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present. - style: form - explode: true - schema: - type: array - items: + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: type: string - - name: ser_name - in: query - description: A MEC application instance may use multiple ser_names as an input parameter to query the availability of a list of MEC service instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present. - style: form - explode: true - schema: - type: array - items: + - name: ser_instance_id + in: query + description: >- + A MEC application instance may use multiple ser_instance_ids as an + input parameter to query the availability of a list of MEC service + instances. Either "ser_instance_id" or "ser_name" or + "ser_category_id" or none of them shall be present. + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_name + in: query + description: >- + A MEC application instance may use multiple ser_names as an input + parameter to query the availability of a list of MEC service + instances. Either "ser_instance_id" or "ser_name" or + "ser_category_id" or none of them shall be present. + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_category_id + in: query + description: >- + A MEC application instance may use ser_category_id as an input + parameter to query the availability of a list of MEC service + instances in a serCategory. Either "ser_instance_id" or "ser_name" + or "ser_category_id" or none of them shall be present. + style: form + explode: true + schema: + type: string + - name: consumed_local_only + in: query + description: >- + Indicate whether the service can only be consumed by the MEC + applications located in the same locality (as defined by + scopeOfLocality) as this service instance. + style: form + explode: true + schema: + type: boolean + - name: is_local + in: query + description: >- + Indicate whether the service is located in the same locality (as + defined by scopeOfLocality) as the consuming MEC application. + style: form + explode: true + schema: + type: boolean + - name: scope_of_locality + in: query + description: >- + A MEC application instance may use scope_of_locality as an input + parameter to query the availability of a list of MEC service + instances with a certain scope of locality. + style: form + explode: true + schema: type: string - - name: ser_category_id - in: query - description: A MEC application instance may use ser_category_id as an input parameter to query the availability of a list of MEC service instances in a serCategory. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present. - style: form - explode: true - schema: - type: string - - name: consumed_local_only - in: query - description: Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance. - style: form - explode: true - schema: - type: boolean - - name: is_local - in: query - description: Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application. - style: form - explode: true - schema: - type: boolean - - name: scope_of_locality - in: query - description: A MEC application instance may use scope_of_locality as an input parameter to query the availability of a list of MEC service instances with a certain scope of locality. - style: form - explode: true - schema: - type: string responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + It is used to indicate nonspecific success. The response message + content contains a representation of the resource. headers: {} content: application/json: @@ -359,64 +440,66 @@ paths: $ref: '#/components/schemas/ServiceInfo' description: '' examples: - - - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.0 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON + - - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON contentMediaType: application/json examples: ServiceInfoList: value: - - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.0 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -428,14 +511,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -447,7 +534,10 @@ paths: description: Empty schema contentMediaType: text/plain '414': - description: It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process. + description: >- + It is used to indicate that the server is refusing to process the + request because the request URI is longer than the server is willing + or able to process. headers: {} content: application/problem+json: @@ -461,32 +551,43 @@ paths: deprecated: false post: tags: - - appServices + - appServices summary: create service - description: This method is used to create a mecService resource. This method is typically used in "service availability update and new service registration" procedure + description: >- + This method is used to create a mecService resource. This method is + typically used in "service availability update and new service + registration" procedure operationId: AppServices_POST parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string requestBody: - description: New ServiceInfo with updated "state" is included as entity body of the request + description: >- + New ServiceInfo with updated "state" is included as entity body of the + request content: application/json: schema: oneOf: - - type: object - - type: object - description: New ServiceInfo with updated "state" is included as entity body of the request + - type: object + - type: object + description: >- + New ServiceInfo with updated "state" is included as entity body + of the request contentMediaType: application/json required: true responses: '201': - description: Upon success, the HTTP response shall include a Location HTTP header that contains the resource URI of the created resource. + description: >- + Upon success, the HTTP response shall include a Location HTTP header + that contains the resource URI of the created resource. headers: location: description: The resource URI of the created resource @@ -521,15 +622,17 @@ paths: version: '2.0' endpoint: uris: - - /mecSerMgmtApi/service/EntryPoint + - /mecSerMgmtApi/service/EntryPoint security: oAuth2Info: grantTypes: - - OAUTH2_CLIENT_CREDENTIALS + - OAUTH2_CLIENT_CREDENTIALS tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint serializer: JSON '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -541,14 +644,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -561,31 +668,37 @@ paths: contentMediaType: text/plain deprecated: false parameters: [] - /applications/{appInstanceId}/services/{serviceId}: + '/applications/{appInstanceId}/services/{serviceId}': get: tags: - - appServices + - appServices summary: get service - description: This method retrieves information about a mecService resource. This method is typically used in "service availability query" procedure + description: >- + This method retrieves information about a mecService resource. This + method is typically used in "service availability query" procedure operationId: AppServicesServiceId_GET parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string - - name: serviceId - in: path - description: Represents a MEC service instance. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: serviceId + in: path + description: Represents a MEC service instance (see note). + required: true + style: simple + schema: + type: string responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + It is used to indicate nonspecific success. The response message + content contains a representation of the resource. headers: {} content: application/json: @@ -612,15 +725,17 @@ paths: version: '2.0' endpoint: uris: - - /mecSerMgmtApi/service/EntryPoint + - /mecSerMgmtApi/service/EntryPoint security: oAuth2Info: grantTypes: - - OAUTH2_CLIENT_CREDENTIALS + - OAUTH2_CLIENT_CREDENTIALS tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint serializer: JSON '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -632,14 +747,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -653,27 +772,31 @@ paths: deprecated: false put: tags: - - appServices + - appServices summary: update service description: This method updates the information about a mecService resource operationId: AppServicesServiceId_PUT parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string - - name: serviceId - in: path - description: Represents a MEC service instance. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: serviceId + in: path + description: Represents a MEC service instance. (see note) + required: true + style: simple + schema: + type: string requestBody: - description: New ServiceInfo with updated "state" is included as entity body of the request + description: >- + New ServiceInfo with updated "state" is included as entity body of the + request content: application/json: schema: @@ -681,7 +804,9 @@ paths: required: true responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + It is used to indicate nonspecific success. The response message + content contains a representation of the resource. headers: {} content: application/json: @@ -708,15 +833,17 @@ paths: version: '2.0' endpoint: uris: - - /mecSerMgmtApi/service/EntryPoint + - /mecSerMgmtApi/service/EntryPoint security: oAuth2Info: grantTypes: - - OAUTH2_CLIENT_CREDENTIALS + - OAUTH2_CLIENT_CREDENTIALS tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint serializer: JSON '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -728,14 +855,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -747,7 +878,10 @@ paths: description: Empty schema contentMediaType: text/plain '412': - description: Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. + description: >- + Precondition Failed. It is used when a condition has failed during + conditional requests, e.g. when using ETags to avoid write + conflicts. headers: {} content: application/problem+json: @@ -761,39 +895,47 @@ paths: deprecated: false delete: tags: - - appServices + - appServices summary: delete service - description: 'This method deletes a mecService resource. This method is typically used in the service deregistration procedure. ' + description: >- + This method deletes a mecService resource. This method is typically used + in the service deregistration procedure. operationId: AppServicesServiceId_DELETE parameters: - - name: appInstanceId - in: path - description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. - required: true - style: simple - schema: - type: string - - name: serviceId - in: path - description: Represents a MEC service instance. - required: true - style: simple - schema: - type: string + - name: appInstanceId + in: path + description: >- + Represents a MEC application instance. Note that the appInstanceId + is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: serviceId + in: path + description: Represents a MEC service instance. (see note) + required: true + style: simple + schema: + type: string responses: '204': description: No Content headers: {} content: {} '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -809,60 +951,84 @@ paths: /services: get: tags: - - services + - services summary: get services - description: This method retrieves information about a list of mecService resources. This method is typically used in "service availability query" procedure + description: >- + This method retrieves information about a list of mecService resources. + This method is typically used in "service availability query" procedure operationId: Services_GET parameters: - - name: ser_instance_id - in: query - description: A MEC application instance may use multiple ser_instance_ids as an input parameter to query the availability of a list of MEC service instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present. - style: form - explode: true - schema: - type: array - items: + - name: ser_instance_id + in: query + description: >- + A MEC application instance may use multiple ser_instance_ids as an + input parameter to query the availability of a list of MEC service + instances. Either "ser_instance_id" or "ser_name" or + "ser_category_id" or none of them shall be present. + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_name + in: query + description: >- + A MEC application instance may use multiple ser_names as an input + parameter to query the availability of a list of MEC service + instances. Either "ser_instance_id" or "ser_name" or + "ser_category_id" or none of them shall be present. + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_category_id + in: query + description: >- + A MEC application instance may use ser_category_id as an input + parameter to query the availability of a list of MEC service + instances in a serCategory. Either "ser_instance_id" or "ser_name" + or "ser_category_id" or none of them shall be present. + style: form + explode: true + schema: type: string - - name: ser_name - in: query - description: A MEC application instance may use multiple ser_names as an input parameter to query the availability of a list of MEC service instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present. - style: form - explode: true - schema: - type: array - items: + - name: consumed_local_only + in: query + description: >- + Indicate whether the service can only be consumed by the MEC + applications located in the same locality (as defined by + scopeOfLocality) as this service instance. + style: form + explode: true + schema: + type: boolean + - name: is_local + in: query + description: >- + Indicate whether the service is located in the same locality (as + defined by scopeOfLocality) as the consuming MEC application. + style: form + explode: true + schema: + type: boolean + - name: scope_of_locality + in: query + description: >- + A MEC application instance may use scope_of_locality as an input + parameter to query the availability of a list of MEC service + instances with a certain scope of locality. + style: form + explode: true + schema: type: string - - name: ser_category_id - in: query - description: A MEC application instance may use ser_category_id as an input parameter to query the availability of a list of MEC service instances in a serCategory. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present. - style: form - explode: true - schema: - type: string - - name: consumed_local_only - in: query - description: Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance. - style: form - explode: true - schema: - type: boolean - - name: is_local - in: query - description: Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application. - style: form - explode: true - schema: - type: boolean - - name: scope_of_locality - in: query - description: A MEC application instance may use scope_of_locality as an input parameter to query the availability of a list of MEC service instances with a certain scope of locality. - style: form - explode: true - schema: - type: string responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + It is used to indicate nonspecific success. The response message + content contains a representation of the resource. headers: {} content: application/json: @@ -872,64 +1038,66 @@ paths: $ref: '#/components/schemas/ServiceInfo' description: '' examples: - - - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.0 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON + - - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON contentMediaType: application/json examples: ServiceInfoList: value: - - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.0 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -941,14 +1109,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -960,7 +1132,10 @@ paths: description: Empty schema contentMediaType: text/plain '414': - description: It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process. + description: >- + It is used to indicate that the server is refusing to process the + request because the request URI is longer than the server is willing + or able to process. headers: {} content: application/problem+json: @@ -973,24 +1148,29 @@ paths: contentMediaType: text/plain deprecated: false parameters: [] - /services/{serviceId}: + '/services/{serviceId}': get: tags: - - services + - services summary: get service - description: This method retrieves information about a mecService resource. This method is typically used in "service availability query" procedure + description: >- + This method retrieves information about a mecService resource. This + method is typically used in "service availability query" procedure operationId: ServicesServiceId_GET parameters: - - name: serviceId - in: path - description: Represents a MEC service instance. - required: true - style: simple - schema: - type: string + - name: serviceId + in: path + description: Represents a MEC service instance. (see note) + required: true + style: simple + schema: + type: string + x-etsi-notes: "NOTE:\t serviceId corresponds to serInstanceId" responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + It is used to indicate nonspecific success. The response message + content contains a representation of the resource. headers: {} content: application/json: @@ -1017,15 +1197,17 @@ paths: version: '2.0' endpoint: uris: - - /mecSerMgmtApi/service/EntryPoint + - /mecSerMgmtApi/service/EntryPoint security: oAuth2Info: grantTypes: - - OAUTH2_CLIENT_CREDENTIALS + - OAUTH2_CLIENT_CREDENTIALS tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint serializer: JSON '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -1037,14 +1219,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -1060,14 +1246,20 @@ paths: /transports: get: tags: - - transports + - transports summary: Get transports - description: This method retrieves information about a list of available transports. This method is typically used by a service-producing application to discover transports provided by the MEC platform in the "transport information query" procedure + description: >- + This method retrieves information about a list of available transports. + This method is typically used by a service-producing application to + discover transports provided by the MEC platform in the "transport + information query" procedure operationId: Transports_GET parameters: [] responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + It is used to indicate nonspecific success. The response messages + content contains a representation of the resource. headers: {} content: application/json: @@ -1078,7 +1270,9 @@ paths: description: '' contentMediaType: application/json '400': - description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + description: >- + Bad Request. It is used to indicate that incorrect parameters were + passed to the request. headers: {} content: application/problem+json: @@ -1090,14 +1284,18 @@ paths: description: Empty schema contentMediaType: text/plain '403': - description: Forbidden. The operation is not allowed given the current status of the resource. + description: >- + Forbidden. The operation is not allowed given the current status of + the resource. headers: {} content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '404': - description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + description: >- + Not Found. It is used when a client provided a URI that cannot be + mapped to a valid resource URI. headers: {} content: application/problem+json: @@ -1110,45 +1308,58 @@ paths: contentMediaType: text/plain deprecated: false parameters: [] - /resource_uri_allocated_by_MEC_platform: get: tags: - - individualMECservice + - individualMECservice summary: get mecServiceLiveness - description: This method retrieves information about an "Individual mecServiceLiveness" resource + description: >- + This method retrieves information about an "Individual + mecServiceLiveness" resource operationId: get_individual_MEC_service responses: '200': - description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + description: >- + It is used to indicate nonspecific success. The response message + content contains a representation of the resource. content: application/json: schema: $ref: '#/components/schemas/ServiceLivenessInfo' '400': - description: It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error. + description: >- + It is used to indicate that incorrect parameters were passed to the + request. In the returned ProblemDetails structure, the "detail" + attribute should convey more information about the error. content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' - '404': - description: It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error. + '403': + description: >- + The operation is not allowed given the current status of the + resource. More information shall be provided in the "detail" + attribute of the "ProblemDetails" structure. content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' - '403': - description: The operation is not allowed given the current status of the resource. - More information shall be provided in the "detail" attribute of the "ProblemDetails" structure. + '404': + description: >- + It is used when a client provided a URI that cannot be mapped to a + valid resource URI. In the returned ProblemDetails structure, the + "detail" attribute should convey more information about the error. content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' patch: tags: - - individualMECservice + - individualMECservice summary: Update mecServiceLiveness - description: This method updates a resource on top of the existing resource state with partial changes described by the client. + description: >- + This method updates a resource on top of the existing resource state + with partial changes described by the client. operationId: patch_individual_MEC_service requestBody: description: It contains an update of the liveness state. @@ -1159,130 +1370,172 @@ paths: required: true responses: '200': - description: Upon success, a response body is returned containing the updated liveness interval value of the service Instance. + description: >- + Upon success, a response message content is returned containing the + updated liveness interval value of the service Instance. content: application/json: schema: $ref: '#/components/schemas/ServiceLivenessInfo' '204': - description: Successful response sent when there is no need to provide a new liveness interval value to the service Instance. + description: >- + Successful response sent when there is no need to provide a new + liveness interval value to the service Instance. headers: {} content: {} '400': - description: It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error. + description: >- + It is used to indicate that incorrect parameters were passed to the + request. In the returned ProblemDetails structure, the "detail" + attribute should convey more information about the error. content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' - '404': - description: It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error. + '403': + description: >- + The operation is not allowed given the current status of the + resource. More information shall be provided in the "detail" + attribute of the "ProblemDetails" structure. content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' - '403': - description: The operation is not allowed given the current status of the resource. More information shall be provided in the "detail" attribute of the "ProblemDetails" structure. + '404': + description: >- + It is used when a client provided a URI that cannot be mapped to a + valid resource URI. In the returned ProblemDetails structure, the + "detail" attribute should convey more information about the error. content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '409': - description: The operation is not allowed due to a conflict with the state of the resource. The MEC platform shall respond with this code if the service instance is in "INACTIVE" state. More information shall be provided in the "detail" attribute of the "ProblemDetails" structure. + description: >- + The operation is not allowed due to a conflict with the state of the + resource. The MEC platform shall respond with this code if the + service instance is in "INACTIVE" state. More information shall be + provided in the "detail" attribute of the "ProblemDetails" + structure. content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' '412': - description: It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error. + description: >- + It is used when a condition has failed during conditional requests, + e.g. when using ETags to avoid write conflicts. In the returned + ProblemDetails structure, the "detail" attribute should convey more + information about the error. content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' - components: schemas: CategoryRef: title: CategoryRef required: - - href - - id - - name - - version + - href + - id + - name + - version type: object properties: href: type: string description: Reference of the catalogue examples: - - /example/catalogue1 + - /example/catalogue1 id: type: string description: Unique identifier of the category examples: - - id12345 + - id12345 name: type: string - description: Name of the category, example values include RNI, Location & Bandwidth Management + description: >- + Name of the category, example values include RNI, Location & + Bandwidth Management examples: - - RNI + - RNI version: type: string description: Category version examples: - - version1 + - version1 description: This type represents the category reference EndPointInfo.Address: title: EndPointInfo.Address required: - - host - - port + - host + - port type: object properties: host: type: string description: Host portion of the address examples: - - 192.0.2.0 + - 192.0.2.0 port: type: integer description: Port portion of the address contentEncoding: int32 examples: - - 8080 + - 8080 description: A IP address and port pair EndPointInfo.Addresses: title: EndPointInfo.Addresses required: - - addresses + - addresses type: object properties: addresses: type: array items: $ref: '#/components/schemas/EndPointInfo.Address' - description: '' - description: Entry point information of the service as one or more pairs of IP address and port + description: >- + Entry point information of the service as one or more pairs of IP + address and port. See note. + description: This type represents information about a transport endpoint. EndPointInfo.Alternative: title: EndPointInfo.Alternative required: - - alternative + - alternative type: object properties: alternative: type: object - description: Entry point information of the service in a format defined by an implementation, or in an external specification. + description: >- + Entry point information of the service in a format defined by an + implementation, or in an external specification. See note. + description: This type represents information about a transport endpoint. EndPointInfo.Uris: title: EndPointInfo.Uris required: - - uris + - uris type: object properties: uris: type: array items: type: string - description: '' - description: Entry point information of the service as string, formatted according to URI syntax + description: >- + Entry point information of the service as string, formatted + according to URI syntax + description: This type represents information about a transport endpoint. + EndPointInfo.Fqdn: + title: EndPointInfo.Fqdn + required: + - fqdn + type: object + properties: + fqdn: + type: array + items: + type: string + description: Fully Qualified Domain Name of the service. See note. + description: 'This type represents information about a transport endpoint. ' LinkType: title: LinkType type: object @@ -1291,12 +1544,14 @@ components: type: string description: URI referring to a resource examples: - - /mecSerMgmtApi/example - description: This type represents a type of link and may be referenced from data structures + - /mecSerMgmtApi/example + description: >- + This type represents a type of link and may be referenced from data + structures MecServiceMgmtApiSubscriptionLinkList.Links: title: MecServiceMgmtApiSubscriptionLinkList.Links required: - - self + - self type: object properties: self: @@ -1304,21 +1559,22 @@ components: subscriptions: type: array items: - $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Subscription' + $ref: >- + #/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Subscription description: The MEC application instance's subscriptions description: Self-referring URI. MecServiceMgmtApiSubscriptionLinkList.Subscription: title: MecServiceMgmtApiSubscriptionLinkList.Subscription required: - - href - - rel + - href + - rel type: object properties: href: type: string description: URI referring to a resource examples: - - /mecSerMgmtApi/example + - /mecSerMgmtApi/example rel: type: string description: The value shall be se to SerAvailabilityNotificationSubscription. @@ -1326,48 +1582,57 @@ components: MecServiceMgmtApiSubscriptionLinkList: title: MecServiceMgmtApiSubscriptionLinkList required: - - _links + - _links type: object properties: _links: $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Links' - description: This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions. + description: >- + This type represents a list of links related to currently existing + subscriptions for a MEC application instance. This information is + returned when sending a request to receive current subscriptions. ProblemDetails: title: ProblemDetails type: object properties: type: type: string - description: A URI reference according to IETF RFC 3986 that identifies the problem type + description: >- + A URI reference according to IETF RFC 3986 that identifies the + problem type title: type: string - description: A short, human-readable summary of the problem type + description: 'A short, human-readable summary of the problem type' status: type: integer description: The HTTP status code for this occurrence of the problem contentEncoding: int32 detail: type: string - description: A human-readable explanation specific to this occurrence of the problem + description: >- + A human-readable explanation specific to this occurrence of the + problem instance: type: string - description: A URI reference that identifies the specific occurrence of the problem + description: >- + A URI reference that identifies the specific occurrence of the + problem SecurityInfo.OAuth2Info.GrantType: title: SecurityInfo.OAuth2Info.GrantType enum: - - OAUTH2_AUTHORIZATION_CODE - - OAUTH2_IMPLICIT_GRANT - - OAUTH2_RESOURCE_OWNER - - OAUTH2_CLIENT_CREDENTIALS + - OAUTH2_AUTHORIZATION_CODE + - OAUTH2_IMPLICIT_GRANT + - OAUTH2_RESOURCE_OWNER + - OAUTH2_CLIENT_CREDENTIALS type: string description: OAuth 2.0 grant type examples: - - OAUTH2_CLIENT_CREDENTIALS + - OAUTH2_CLIENT_CREDENTIALS SecurityInfo.OAuth2Info: title: SecurityInfo.OAuth2Info required: - - grantTypes - - tokenEndpoint + - grantTypes + - tokenEndpoint type: object properties: grantTypes: @@ -1381,7 +1646,7 @@ components: type: string description: The token endpoint examples: - - /mecSerMgmtApi/security/TokenEndPoint + - /mecSerMgmtApi/security/TokenEndPoint description: Parameters related to use of OAuth 2.0 SecurityInfo: title: SecurityInfo @@ -1393,7 +1658,7 @@ components: Self: title: Self required: - - self + - self type: object properties: self: @@ -1402,24 +1667,29 @@ components: SerAvailabilityNotificationSubscription: title: SerAvailabilityNotificationSubscription required: - - subscriptionType - - callbackReference - - _links + - subscriptionType + - callbackReference + - _links type: object properties: subscriptionType: type: string description: Shall be set to SerAvailabilityNotificationSubscription. examples: - - SerAvailabilityNotificationSubscription + - SerAvailabilityNotificationSubscription callbackReference: type: string - description: URI selected by the MEC application instance to receive notifications on the subscribed MEC service availability information. This shall be included in both the request and the response. + description: >- + URI selected by the MEC application instance to receive + notifications on the subscribed MEC service availability + information. This shall be included in both the request and the + response. _links: $ref: '#/components/schemas/Self' filteringCriteria: - $ref: '#/components/schemas/SerAvailabilityNotificationSubscription.FilteringCriteria' - + $ref: >- + #/components/schemas/SerAvailabilityNotificationSubscription.FilteringCriteria + x-etsi-notes: "NOTE:\tThe attributes \"serInstanceIds\", \"serNames\" and \"serCategories\" provide mutually-exclusive alternatives to define a set of services. Only one of them may be present." SerAvailabilityNotificationSubscription.FilteringCriteria: title: SerAvailabilityNotificationSubscription.FilteringCriteria type: object @@ -1443,30 +1713,39 @@ components: type: array items: $ref: '#/components/schemas/ServiceState' - description: States of the services about which to report events. If the event is a state change, this filter represents the state after the change. + description: >- + States of the services about which to report events. If the event + is a state change, this filter represents the state after the + change. isLocal: type: boolean - description: Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application. + description: >- + Indicate whether the service is located in the same locality (as + defined by scopeOfLocality) as the consuming MEC application. examples: - - true - description: Filtering criteria to match services for which events are requested to be reported. If absent, matches all services. All child attributes are combined with the logical "AND" operation. + - true + description: >- + Filtering criteria to match services for which events are requested to + be reported. If absent, matches all services. All child attributes are + combined with the logical "AND" operation. ServiceAvailabilityNotification: title: ServiceAvailabilityNotification required: - - notificationType - - serviceReferences - - _links + - notificationType + - serviceReferences + - _links type: object properties: notificationType: type: string description: Shall be set to SerAvailabilityNotificationSubscription. examples: - - SerAvailabilityNotificationSubscription + - SerAvailabilityNotificationSubscription serviceReferences: type: array items: - $ref: '#/components/schemas/ServiceAvailabilityNotification.ServiceReferences' + $ref: >- + #/components/schemas/ServiceAvailabilityNotification.ServiceReferences description: '' _links: $ref: '#/components/schemas/Subscription' @@ -1474,24 +1753,26 @@ components: ServiceAvailabilityNotification.ServiceReferences: title: ServiceAvailabilityNotification.ServiceReferences required: - - serName - - serInstanceId - - state - - changeType + - serName + - serInstanceId + - state + - changeType type: object properties: link: $ref: '#/components/schemas/LinkType' serName: type: string - description: The name of the service. This is how the service producing MEC application identifies the service instance it produces. + description: >- + The name of the service. This is how the service producing MEC + application identifies the service instance it produces. examples: - - ExampleService + - ExampleService serInstanceId: type: string description: Identifier of the service instance assigned by the MEC platform. examples: - - ServiceInstance123 + - ServiceInstance123 state: $ref: '#/components/schemas/ServiceState' changeType: @@ -1500,76 +1781,94 @@ components: ServiceAvailabilityNotification.ChangeType: title: ServiceAvailabilityNotification.ChangeType enum: - - ADDED - - REMOVED - - STATE_CHANGED - - ATTRIBUTES_CHANGED + - ADDED + - REMOVED + - STATE_CHANGED + - ATTRIBUTES_CHANGED type: string - description: "Type of the change. Valid values:\n 1. ADDED: The service was newly added.\n 2. REMOVED: The service was removed.\n 3. STATE_CHANGED: Only the state of the service was changed. \n 4. ATTRIBUTES_CHANGED: At least one attribute of the service other than state was changed. The change may or may not include changing the state." + description: |- + Type of the change. Valid values: + 1. ADDED: The service was newly added. + 2. REMOVED: The service was removed. + 3. STATE_CHANGED: Only the state of the service was changed. + 4. ATTRIBUTES_CHANGED: At least one attribute of the service other than state was changed. The change may or may not include changing the state. examples: - - ADDED + - ADDED SerializerType: title: SerializerType enum: - - JSON - - XML - - PROTOBUF3 + - JSON + - XML + - PROTOBUF3 type: string description: The enumeration represents types of serializers examples: - - JSON + - JSON LocalityType: title: LocalityType enum: - - MEC_SYSTEM - - MEC_HOST - - NFVI_POP - - ZONE - - ZONE_GROUP - - NFVI_NODE + - MEC_SYSTEM + - MEC_HOST + - NFVI_POP + - ZONE + - ZONE_GROUP + - NFVI_NODE type: string - description: The scope of locality as expressed by "consumedLocalOnly" and "isLocal". If absent, defaults to MEC_HOST + description: >- + The scope of locality as expressed by "consumedLocalOnly" and "isLocal". + If absent, defaults to MEC_HOST examples: - - MEC_SYSTEM + - MEC_SYSTEM ServiceState: title: ServiceState enum: - - ACTIVE - - INACTIVE - - SUSPENDED + - ACTIVE + - INACTIVE + - SUSPENDED type: string description: This enumeration defines the possible states of a service. examples: - - ACTIVE + - ACTIVE ServiceInfo: title: ServiceInfo required: - - serName - - version - - state - - transportInfo - - serializer + - serName + - version + - state + - transportInfo + - serializer type: object properties: serInstanceId: type: string description: Identifier of the service instance assigned by the MEC platform. examples: - - ServiceInstance123 + - ServiceInstance123 serName: type: string - description: The name of the service. This is how the service producing MEC application identifies the service instance it produces. + description: >- + The name of the service. This is how the service producing MEC + application identifies the service instance it produces. examples: - - ExampleService + - ExampleService serCategory: $ref: '#/components/schemas/CategoryRef' version: type: string description: Service version examples: - - ServiceVersion1 + - ServiceVersion1 state: $ref: '#/components/schemas/ServiceState' + transportId: + type: string + description: >- + Identifier of the platform-provided transport to be used by the service. + Valid identifiers may be obtained using the "Transport information query" + procedure. May be present in POST requests to signal the use of a platform-provided + transport for the service, and shall be absent otherwise. See note 2. + examples: + - transportId1 transportInfo: $ref: '#/components/schemas/TransportInfo' serializer: @@ -1578,20 +1877,35 @@ components: $ref: '#/components/schemas/LocalityType' consumedLocalOnly: type: boolean - description: Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance. + description: >- + Indicate whether the service can only be consumed by the MEC + applications located in the same locality (as defined by + scopeOfLocality) as this service instance. examples: - - false + - false isLocal: type: boolean - description: Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application. + description: >- + Indicate whether the service is located in the same locality (as + defined by scopeOfLocality) as the consuming MEC application. examples: - - true + - true livenessInterval: type: integer - description: Interval (in seconds) between two consecutive "heartbeat" messages (see clause 8.2.10.3.3). - If the service-producing application supports sending "heartbeat" messages, it shall include this attribute in the registration request. In this case, the application shall either set the value of this attribute to zero or shall use this attribute to propose a non-zero positive value for the liveness interval. - If the application has provided this attribute in the request and the MEC platform requires "heartbeat" messages, the MEC platform shall return this attribute value in the HTTP responses. The MEC platform may use the value proposed in the request or may choose a different value. - If the MEC platform does not require "heartbeat" messages for this service instance it shall omit the attribute in responses. + description: >- + Interval (in seconds) between two consecutive "heartbeat" messages + (see clause 8.2.10.3.3). If the service-producing application + supports sending "heartbeat" messages, it shall include this + attribute in the registration request. In this case, the application + shall either set the value of this attribute to zero or shall use + this attribute to propose a non-zero positive value for the liveness + interval. If the application has provided this attribute in the + request and the MEC platform requires "heartbeat" messages, the MEC + platform shall return this attribute value in the HTTP responses. + The MEC platform may use the value proposed in the request or may + choose a different value. If the MEC platform does not require + "heartbeat" messages for this service instance it shall omit the + attribute in responses. _links: type: object required: @@ -1600,9 +1914,9 @@ components: self: $ref: '#/components/schemas/LinkType' liveness: - $ref: '#/components/schemas/LinkType' + $ref: '#/components/schemas/LinkType' description: This type represents the general information of a MEC service. - + x-etsi-notes: "NOTE 1:\tThe service category may be included in the application descriptor. It may be allocated by the operator or by the application developer.\nNOTE 2:\tEither transportId or transportInfo but not both shall be present in POST requests.\nNOTE 3:\tValues NFVI_POP, ZONE and NFVI_NODE are used when the service instance is deployed as a VNF.\nNOTE 4:\tThe isLocal is used only in service availability query response and service availability subscription/notification messages.\nNOTE 5:\tValue ZONE_GROUP can be used when the service instance is deployed as a VNF.\nNOTE 6:\tRegarding the value MEC_SYSTEM, if the service is running on the same MEC system as the MEC app, then it will be local to it." ServiceLivenessInfo: type: object required: @@ -1614,7 +1928,9 @@ components: $ref: '#/components/schemas/ServiceState' timeStamp: type: object - description: The time when the last "heartbeat" message was received by MEC platform + description: >- + The time when the last "heartbeat" message was received by MEC + platform required: - seconds - nanoSeconds @@ -1622,11 +1938,12 @@ components: seconds: type: integer nanoSeconds: - type: integer + type: integer interval: type: integer - description: The interval (in seconds) between two consecutive "heartbeat" messages (see clause 8.2.10.3.3) that MEC platform has determined. - + description: >- + The interval (in seconds) between two consecutive "heartbeat" + messages (see clause 8.2.10.3.3) that MEC platform has determined. ServiceLivenessUpdate: type: object required: @@ -1634,12 +1951,10 @@ components: properties: state: $ref: '#/components/schemas/ServiceState' - - Subscription: title: Subscription required: - - subscription + - subscription type: object properties: subscription: @@ -1648,48 +1963,50 @@ components: TransportInfo: title: TransportInfo required: - - id - - name - - type - - protocol - - version - - endpoint - - security + - id + - name + - type + - protocol + - version + - endpoint + - security type: object properties: id: type: string description: The identifier of this transport examples: - - TransId12345 + - TransId12345 name: type: string description: The name of this transport examples: - - REST + - REST description: type: string description: Human-readable description of this transport examples: - - REST API + - REST API type: $ref: '#/components/schemas/TransportType' protocol: type: string description: The name of the protocol used. Shall be set to HTTP for a REST API. examples: - - HTTP + - HTTP version: type: string description: The version of the protocol used examples: - - '2.0' + - '2.0' endpoint: oneOf: - - $ref: '#/components/schemas/EndPointInfo.Uris' - - $ref: '#/components/schemas/EndPointInfo.Addresses' - - $ref: '#/components/schemas/EndPointInfo.Alternative' + - $ref: '#/components/schemas/EndPointInfo.Uris' + - $ref: '#/components/schemas/EndPointInfo.Fqdn' + - $ref: '#/components/schemas/EndPointInfo.Addresses' + - $ref: '#/components/schemas/EndPointInfo.Alternative' description: This type represents information about a transport endpoint + x-etsi-notes: "NOTE:\tExactly one of \"uris\", \"fqdn\", \"addresses\" or \"alternative\" shall be present." security: $ref: '#/components/schemas/SecurityInfo' implSpecificInfo: @@ -1699,17 +2016,17 @@ components: TransportType: title: TransportType enum: - - REST_HTTP - - MB_TOPIC_BASED - - MB_ROUTING - - MB_PUBSUB - - RPC - - RPC_STREAMING - - WEBSOCKET + - REST_HTTP + - MB_TOPIC_BASED + - MB_ROUTING + - MB_PUBSUB + - RPC + - RPC_STREAMING + - WEBSOCKET type: string description: The enumeration TransportType represents types of transports examples: - - REST_HTTP + - REST_HTTP requestBodies: ServiceAvailabilityNotification: content: @@ -1718,5 +2035,4 @@ components: $ref: '#/components/schemas/ServiceAvailabilityNotification' required: true security: -- {} - + - {} diff --git a/README.md b/README.md index d1340b6..9c827ef 100644 --- a/README.md +++ b/README.md @@ -3,15 +3,15 @@ This repository contains OpenAPIs descriptions for the interfaces specified in ETSI GS MEC 011. ## Online resources -* [Specification document](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf) +* [Specification document](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/03.01.01_60/gs_MEC011v030101p.pdf) ## Navigate with Swagger UI -* [Application Support API](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/rep/mec/gs011-app-enablement-api/raw/v2.2.1/MecAppSupportApi.yaml) -* [Service Management API](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/rep/mec/gs011-app-enablement-api/raw/v2.2.1/MecServiceMgmtApi.yaml) +* [Application Support API](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/rep/mec/gs011-app-enablement-api/raw/v3.1.1/MecAppSupportApi.yaml) +* [Service Management API](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/rep/mec/gs011-app-enablement-api/raw/v3.1.1/MecServiceMgmtApi.yaml) ## Navigate with Redocly -* [Application Support API](https://redocly.github.io/redoc/?url=https://forge.etsi.org/rep/mec/gs011-app-enablement-api/raw/v2.2.1/MecAppSupportApi.yaml&nocors) -* [Service Management API](https://redocly.github.io/redoc/?url=https://forge.etsi.org/rep/mec/gs011-app-enablement-api/raw/v2.2.1/MecServiceMgmtApi.yaml&nocors) +* [Application Support API](https://redocly.github.io/redoc/?url=https://forge.etsi.org/rep/mec/gs011-app-enablement-api/raw/v3.1.1/MecAppSupportApi.yaml&nocors) +* [Service Management API](https://redocly.github.io/redoc/?url=https://forge.etsi.org/rep/mec/gs011-app-enablement-api/raw/v3.1.1/MecServiceMgmtApi.yaml&nocors) ## License Unless specified otherwise, the content of this repository and the files contained are released under the BSD-3-Clause license. diff --git a/ServiceMgmt/proto3/.openapi-generator-ignore b/ServiceMgmt/proto3/.openapi-generator-ignore new file mode 100644 index 0000000..7484ee5 --- /dev/null +++ b/ServiceMgmt/proto3/.openapi-generator-ignore @@ -0,0 +1,23 @@ +# OpenAPI Generator Ignore +# Generated by openapi-generator https://github.com/openapitools/openapi-generator + +# Use this file to prevent files from being overwritten by the generator. +# The patterns follow closely to .gitignore or .dockerignore. + +# As an example, the C# client generator defines ApiClient.cs. +# You can make changes and tell OpenAPI Generator to ignore just this file by uncommenting the following line: +#ApiClient.cs + +# You can match any string of characters against a directory, file or extension with a single asterisk (*): +#foo/*/qux +# The above matches foo/bar/qux and foo/baz/qux, but not foo/bar/baz/qux + +# You can recursively match patterns against a directory, file or extension with a double asterisk (**): +#foo/**/qux +# This matches foo/bar/qux, foo/baz/qux, and foo/bar/baz/qux + +# You can also negate patterns with an exclamation (!). +# For example, you can ignore all files in a docs folder with the file extension .md: +#docs/*.md +# Then explicitly reverse the ignore rule for a single file: +#!docs/README.md diff --git a/ServiceMgmt/proto3/.openapi-generator/FILES b/ServiceMgmt/proto3/.openapi-generator/FILES new file mode 100644 index 0000000..259bc70 --- /dev/null +++ b/ServiceMgmt/proto3/.openapi-generator/FILES @@ -0,0 +1,36 @@ +.openapi-generator-ignore +README.md +models/category_ref.proto +models/end_point_info_address.proto +models/end_point_info_addresses.proto +models/link_type.proto +models/locality_type.proto +models/mec_service_mgmt_api_subscription_link_list.proto +models/mec_service_mgmt_api_subscription_link_list_links.proto +models/mec_service_mgmt_api_subscription_link_list_subscription.proto +models/problem_details.proto +models/security_info.proto +models/security_info_o_auth2_info.proto +models/security_info_o_auth2_info_grant_type.proto +models/self.proto +models/ser_availability_notification_subscription.proto +models/ser_availability_notification_subscription_filtering_criteria.proto +models/serializer_type.proto +models/service_availability_notification.proto +models/service_availability_notification_change_type.proto +models/service_availability_notification_service_references.proto +models/service_info.proto +models/service_info_links.proto +models/service_liveness_info.proto +models/service_liveness_info_time_stamp.proto +models/service_liveness_update.proto +models/service_state.proto +models/subscription.proto +models/transport_info.proto +models/transport_info_endpoint.proto +models/transport_type.proto +services/app_services_service.proto +services/app_subscriptions_service.proto +services/individual_me_cservice_service.proto +services/services_service.proto +services/transports_service.proto diff --git a/ServiceMgmt/proto3/.openapi-generator/VERSION b/ServiceMgmt/proto3/.openapi-generator/VERSION new file mode 100644 index 0000000..0df17dd --- /dev/null +++ b/ServiceMgmt/proto3/.openapi-generator/VERSION @@ -0,0 +1 @@ +6.2.1 \ No newline at end of file diff --git a/ServiceMgmt/proto3/README.md b/ServiceMgmt/proto3/README.md new file mode 100644 index 0000000..a8b8410 --- /dev/null +++ b/ServiceMgmt/proto3/README.md @@ -0,0 +1,31 @@ +# gPRC for mec011 + +The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + +## Overview +These files were generated by the [OpenAPI Generator](https://openapi-generator.tech) project. + +- API version: 3.1.1 +- Package version: +- Build package: org.openapitools.codegen.languages.ProtobufSchemaCodegen + +## Usage + +Below are some usage examples for Go and Ruby. For other languages, please refer to https://grpc.io/docs/quickstart/. + +### Go +``` +# assuming `protoc-gen-go` has been installed with `go get -u github.com/golang/protobuf/protoc-gen-go` +mkdir /var/tmp/go/ +protoc --go_out=/var/tmp/go/ services/* +protoc --go_out=/var/tmp/go/ models/* +``` + +### Ruby +``` +# assuming `grpc_tools_ruby_protoc` has been installed via `gem install grpc-tools` +RUBY_OUTPUT_DIR="/var/tmp/ruby/mec011" +mkdir $RUBY_OUTPUT_DIR +grpc_tools_ruby_protoc --ruby_out=$RUBY_OUTPUT_DIR --grpc_out=$RUBY_OUTPUT_DIR/lib services/* +grpc_tools_ruby_protoc --ruby_out=$RUBY_OUTPUT_DIR --grpc_out=$RUBY_OUTPUT_DIR/lib models/* +``` diff --git a/ServiceMgmt/proto3/models/category_ref.proto b/ServiceMgmt/proto3/models/category_ref.proto new file mode 100644 index 0000000..ae58b04 --- /dev/null +++ b/ServiceMgmt/proto3/models/category_ref.proto @@ -0,0 +1,32 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message CategoryRef { + + // Reference of the catalogue + string href = 0; + + // Unique identifier of the category + string id = 1; + + // Name of the category, example values include RNI, Location & Bandwidth Management + string name = 2; + + // Category version + string version = 3; + +} diff --git a/ServiceMgmt/proto3/models/end_point_info_address.proto b/ServiceMgmt/proto3/models/end_point_info_address.proto new file mode 100644 index 0000000..e338590 --- /dev/null +++ b/ServiceMgmt/proto3/models/end_point_info_address.proto @@ -0,0 +1,26 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message EndPointInfoAddress { + + // Host portion of the address + string host = 0; + + // Port portion of the address + int32 port = 1; + +} diff --git a/ServiceMgmt/proto3/models/end_point_info_addresses.proto b/ServiceMgmt/proto3/models/end_point_info_addresses.proto new file mode 100644 index 0000000..a7c7c79 --- /dev/null +++ b/ServiceMgmt/proto3/models/end_point_info_addresses.proto @@ -0,0 +1,24 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/end_point_info_address.proto"; + +message EndPointInfoAddresses { + + // Entry point information of the service as one or more pairs of IP address and port. See note. + repeated EndPointInfoAddress addresses = 1; + +} diff --git a/ServiceMgmt/proto3/models/link_type.proto b/ServiceMgmt/proto3/models/link_type.proto new file mode 100644 index 0000000..58c43fa --- /dev/null +++ b/ServiceMgmt/proto3/models/link_type.proto @@ -0,0 +1,23 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message LinkType { + + // URI referring to a resource + string href = 0; + +} diff --git a/ServiceMgmt/proto3/models/locality_type.proto b/ServiceMgmt/proto3/models/locality_type.proto new file mode 100644 index 0000000..4814b5c --- /dev/null +++ b/ServiceMgmt/proto3/models/locality_type.proto @@ -0,0 +1,25 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum LocalityType { + LocalityType_MEC_SYSTEM = 0; + LocalityType_MEC_HOST = 1; + LocalityType_NFVI_POP = 2; + LocalityType_ZONE = 3; + LocalityType_ZONE_GROUP = 4; + LocalityType_NFVI_NODE = 5; +} diff --git a/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list.proto b/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list.proto new file mode 100644 index 0000000..a59d941 --- /dev/null +++ b/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list.proto @@ -0,0 +1,23 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/mec_service_mgmt_api_subscription_link_list_links.proto"; + +message MecServiceMgmtApiSubscriptionLinkList { + + MecServiceMgmtApiSubscriptionLinkListLinks _links = 0; + +} diff --git a/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto b/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto new file mode 100644 index 0000000..daf6be9 --- /dev/null +++ b/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto @@ -0,0 +1,27 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/link_type.proto"; +import public "models/mec_service_mgmt_api_subscription_link_list_subscription.proto"; + +message MecServiceMgmtApiSubscriptionLinkListLinks { + + LinkType self = 0; + + // The MEC application instance's subscriptions + repeated MecServiceMgmtApiSubscriptionLinkListSubscription subscriptions = 1; + +} diff --git a/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto b/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto new file mode 100644 index 0000000..73b8dc8 --- /dev/null +++ b/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto @@ -0,0 +1,26 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message MecServiceMgmtApiSubscriptionLinkListSubscription { + + // URI referring to a resource + string href = 0; + + // The value shall be se to SerAvailabilityNotificationSubscription. + string rel = 1; + +} diff --git a/ServiceMgmt/proto3/models/problem_details.proto b/ServiceMgmt/proto3/models/problem_details.proto new file mode 100644 index 0000000..85c3db4 --- /dev/null +++ b/ServiceMgmt/proto3/models/problem_details.proto @@ -0,0 +1,35 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message ProblemDetails { + + // A URI reference according to IETF RFC 3986 that identifies the problem type + string type = 0; + + // A short, human-readable summary of the problem type + string title = 1; + + // The HTTP status code for this occurrence of the problem + int32 status = 2; + + // A human-readable explanation specific to this occurrence of the problem + string detail = 3; + + // A URI reference that identifies the specific occurrence of the problem + string instance = 4; + +} diff --git a/ServiceMgmt/proto3/models/security_info.proto b/ServiceMgmt/proto3/models/security_info.proto new file mode 100644 index 0000000..5cfa171 --- /dev/null +++ b/ServiceMgmt/proto3/models/security_info.proto @@ -0,0 +1,23 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/security_info_o_auth2_info.proto"; + +message SecurityInfo { + + SecurityInfoOAuth2Info oAuth2Info = 0; + +} diff --git a/ServiceMgmt/proto3/models/security_info_o_auth2_info.proto b/ServiceMgmt/proto3/models/security_info_o_auth2_info.proto new file mode 100644 index 0000000..4993202 --- /dev/null +++ b/ServiceMgmt/proto3/models/security_info_o_auth2_info.proto @@ -0,0 +1,27 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/security_info_o_auth2_info_grant_type.proto"; + +message SecurityInfoOAuth2Info { + + // List of supported OAuth 2.0 grant types. + repeated SecurityInfoOAuth2InfoGrantType grantTypes = 0; + + // The token endpoint + string tokenEndpoint = 1; + +} diff --git a/ServiceMgmt/proto3/models/security_info_o_auth2_info_grant_type.proto b/ServiceMgmt/proto3/models/security_info_o_auth2_info_grant_type.proto new file mode 100644 index 0000000..b75a6de --- /dev/null +++ b/ServiceMgmt/proto3/models/security_info_o_auth2_info_grant_type.proto @@ -0,0 +1,23 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum SecurityInfoOAuth2InfoGrantType { + SecurityInfoOAuth2InfoGrantType_AUTHORIZATION_CODE = 0; + SecurityInfoOAuth2InfoGrantType_IMPLICIT_GRANT = 1; + SecurityInfoOAuth2InfoGrantType_RESOURCE_OWNER = 2; + SecurityInfoOAuth2InfoGrantType_CLIENT_CREDENTIALS = 3; +} diff --git a/ServiceMgmt/proto3/models/self.proto b/ServiceMgmt/proto3/models/self.proto new file mode 100644 index 0000000..9bff274 --- /dev/null +++ b/ServiceMgmt/proto3/models/self.proto @@ -0,0 +1,23 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/link_type.proto"; + +message Self { + + LinkType self = 0; + +} diff --git a/ServiceMgmt/proto3/models/ser_availability_notification_subscription.proto b/ServiceMgmt/proto3/models/ser_availability_notification_subscription.proto new file mode 100644 index 0000000..dd23d6e --- /dev/null +++ b/ServiceMgmt/proto3/models/ser_availability_notification_subscription.proto @@ -0,0 +1,32 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/self.proto"; +import public "models/ser_availability_notification_subscription_filtering_criteria.proto"; + +message SerAvailabilityNotificationSubscription { + + // Shall be set to SerAvailabilityNotificationSubscription. + string subscriptionType = 0; + + // URI selected by the MEC application instance to receive notifications on the subscribed MEC service availability information. This shall be included in both the request and the response. + string callbackReference = 1; + + Self _links = 2; + + SerAvailabilityNotificationSubscriptionFilteringCriteria filteringCriteria = 3; + +} diff --git a/ServiceMgmt/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto b/ServiceMgmt/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto new file mode 100644 index 0000000..8186a33 --- /dev/null +++ b/ServiceMgmt/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto @@ -0,0 +1,37 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/category_ref.proto"; +import public "models/service_state.proto"; + +message SerAvailabilityNotificationSubscriptionFilteringCriteria { + + // Identifiers of service instances about which to report events. + repeated string serInstanceIds = 0; + + // Names of services about which to report events. + repeated string serNames = 1; + + // Categories of services about which to report events. + repeated CategoryRef serCategories = 2; + + // States of the services about which to report events. If the event is a state change, this filter represents the state after the change. + repeated ServiceState states = 3; + + // Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application. + bool isLocal = 4; + +} diff --git a/ServiceMgmt/proto3/models/serializer_type.proto b/ServiceMgmt/proto3/models/serializer_type.proto new file mode 100644 index 0000000..74e82df --- /dev/null +++ b/ServiceMgmt/proto3/models/serializer_type.proto @@ -0,0 +1,22 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum SerializerType { + SerializerType_JSON = 0; + SerializerType_XML = 1; + SerializerType_PROTOBUF3 = 2; +} diff --git a/ServiceMgmt/proto3/models/service_availability_notification.proto b/ServiceMgmt/proto3/models/service_availability_notification.proto new file mode 100644 index 0000000..5d13a65 --- /dev/null +++ b/ServiceMgmt/proto3/models/service_availability_notification.proto @@ -0,0 +1,30 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/service_availability_notification_service_references.proto"; +import public "models/subscription.proto"; + +message ServiceAvailabilityNotification { + + // Shall be set to SerAvailabilityNotificationSubscription. + string notificationType = 0; + + // + repeated ServiceAvailabilityNotificationServiceReferences serviceReferences = 1; + + Subscription _links = 2; + +} diff --git a/ServiceMgmt/proto3/models/service_availability_notification_change_type.proto b/ServiceMgmt/proto3/models/service_availability_notification_change_type.proto new file mode 100644 index 0000000..9fe4546 --- /dev/null +++ b/ServiceMgmt/proto3/models/service_availability_notification_change_type.proto @@ -0,0 +1,23 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum ServiceAvailabilityNotificationChangeType { + ServiceAvailabilityNotificationChangeType_ADDED = 0; + ServiceAvailabilityNotificationChangeType_REMOVED = 1; + ServiceAvailabilityNotificationChangeType_STATE_CHANGED = 2; + ServiceAvailabilityNotificationChangeType_ATTRIBUTES_CHANGED = 3; +} diff --git a/ServiceMgmt/proto3/models/service_availability_notification_service_references.proto b/ServiceMgmt/proto3/models/service_availability_notification_service_references.proto new file mode 100644 index 0000000..4e1a897 --- /dev/null +++ b/ServiceMgmt/proto3/models/service_availability_notification_service_references.proto @@ -0,0 +1,35 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/link_type.proto"; +import public "models/service_availability_notification_change_type.proto"; +import public "models/service_state.proto"; + +message ServiceAvailabilityNotificationServiceReferences { + + LinkType link = 0; + + // The name of the service. This is how the service producing MEC application identifies the service instance it produces. + string serName = 1; + + // Identifier of the service instance assigned by the MEC platform. + string serInstanceId = 2; + + ServiceState state = 3; + + ServiceAvailabilityNotificationChangeType changeType = 4; + +} diff --git a/ServiceMgmt/proto3/models/service_info.proto b/ServiceMgmt/proto3/models/service_info.proto new file mode 100644 index 0000000..431ba3a --- /dev/null +++ b/ServiceMgmt/proto3/models/service_info.proto @@ -0,0 +1,58 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/category_ref.proto"; +import public "models/locality_type.proto"; +import public "models/serializer_type.proto"; +import public "models/service_info_links.proto"; +import public "models/service_state.proto"; +import public "models/transport_info.proto"; + +message ServiceInfo { + + // Identifier of the service instance assigned by the MEC platform. + string serInstanceId = 0; + + // The name of the service. This is how the service producing MEC application identifies the service instance it produces. + string serName = 1; + + CategoryRef serCategory = 2; + + // Service version + string version = 3; + + ServiceState state = 4; + + string transportId = 5; + + TransportInfo transportInfo = 6; + + SerializerType serializer = 7; + + LocalityType scopeOfLocality = 8; + + // Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance. + bool consumedLocalOnly = 9; + + // Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application. + bool isLocal = 10; + + // Interval (in seconds) between two consecutive \"heartbeat\" messages (see clause 8.2.10.3.3). If the service-producing application supports sending \"heartbeat\" messages, it shall include this attribute in the registration request. In this case, the application shall either set the value of this attribute to zero or shall use this attribute to propose a non-zero positive value for the liveness interval. If the application has provided this attribute in the request and the MEC platform requires \"heartbeat\" messages, the MEC platform shall return this attribute value in the HTTP responses. The MEC platform may use the value proposed in the request or may choose a different value. If the MEC platform does not require \"heartbeat\" messages for this service instance it shall omit the attribute in responses. + int32 livenessInterval = 11; + + ServiceInfoLinks _links = 12; + +} diff --git a/ServiceMgmt/proto3/models/service_info_links.proto b/ServiceMgmt/proto3/models/service_info_links.proto new file mode 100644 index 0000000..b8e3469 --- /dev/null +++ b/ServiceMgmt/proto3/models/service_info_links.proto @@ -0,0 +1,25 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/link_type.proto"; + +message ServiceInfoLinks { + + LinkType self = 0; + + LinkType liveness = 1; + +} diff --git a/ServiceMgmt/proto3/models/service_liveness_info.proto b/ServiceMgmt/proto3/models/service_liveness_info.proto new file mode 100644 index 0000000..d411c0c --- /dev/null +++ b/ServiceMgmt/proto3/models/service_liveness_info.proto @@ -0,0 +1,29 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/service_liveness_info_time_stamp.proto"; +import public "models/service_state.proto"; + +message ServiceLivenessInfo { + + ServiceState state = 0; + + ServiceLivenessInfoTimeStamp timeStamp = 1; + + // The interval (in seconds) between two consecutive \"heartbeat\" messages (see clause 8.2.10.3.3) that MEC platform has determined. + int32 interval = 2; + +} diff --git a/ServiceMgmt/proto3/models/service_liveness_info_time_stamp.proto b/ServiceMgmt/proto3/models/service_liveness_info_time_stamp.proto new file mode 100644 index 0000000..9029485 --- /dev/null +++ b/ServiceMgmt/proto3/models/service_liveness_info_time_stamp.proto @@ -0,0 +1,24 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +message ServiceLivenessInfoTimeStamp { + + int32 seconds = 0; + + int32 nanoSeconds = 1; + +} diff --git a/ServiceMgmt/proto3/models/service_liveness_update.proto b/ServiceMgmt/proto3/models/service_liveness_update.proto new file mode 100644 index 0000000..516440a --- /dev/null +++ b/ServiceMgmt/proto3/models/service_liveness_update.proto @@ -0,0 +1,23 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/service_state.proto"; + +message ServiceLivenessUpdate { + + ServiceState state = 0; + +} diff --git a/ServiceMgmt/proto3/models/service_state.proto b/ServiceMgmt/proto3/models/service_state.proto new file mode 100644 index 0000000..bf52e6e --- /dev/null +++ b/ServiceMgmt/proto3/models/service_state.proto @@ -0,0 +1,22 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum ServiceState { + ServiceState_ACTIVE = 0; + ServiceState_INACTIVE = 1; + ServiceState_SUSPENDED = 2; +} diff --git a/ServiceMgmt/proto3/models/subscription.proto b/ServiceMgmt/proto3/models/subscription.proto new file mode 100644 index 0000000..a16be0b --- /dev/null +++ b/ServiceMgmt/proto3/models/subscription.proto @@ -0,0 +1,23 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/link_type.proto"; + +message Subscription { + + LinkType subscription = 0; + +} diff --git a/ServiceMgmt/proto3/models/transport_info.proto b/ServiceMgmt/proto3/models/transport_info.proto new file mode 100644 index 0000000..4bfdaaa --- /dev/null +++ b/ServiceMgmt/proto3/models/transport_info.proto @@ -0,0 +1,48 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/security_info.proto"; +import public "models/todo_object_mapping.proto"; +import public "models/transport_info_endpoint.proto"; +import public "models/transport_type.proto"; + +message TransportInfo { + + // The identifier of this transport + string id = 0; + + // The name of this transport + string name = 1; + + // Human-readable description of this transport + string description = 2; + + TransportType type = 3; + + // The name of the protocol used. Shall be set to HTTP for a REST API. + string protocol = 4; + + // The version of the protocol used + string version = 5; + + TransportInfoEndpoint endpoint = 6; + + SecurityInfo security = 7; + + // Additional implementation specific details of the transport + TODO_OBJECT_MAPPING implSpecificInfo = 109027520; + +} diff --git a/ServiceMgmt/proto3/models/transport_info_endpoint.proto b/ServiceMgmt/proto3/models/transport_info_endpoint.proto new file mode 100644 index 0000000..08d936d --- /dev/null +++ b/ServiceMgmt/proto3/models/transport_info_endpoint.proto @@ -0,0 +1,37 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + +import public "models/end_point_info_address.proto"; +import public "models/end_point_info_addresses.proto"; +import public "models/end_point_info_alternative.proto"; +import public "models/end_point_info_fqdn.proto"; +import public "models/end_point_info_uris.proto"; +import public "models/todo_object_mapping.proto"; + +message TransportInfoEndpoint { + + oneOf EndpointInfo { + // Entry point information of the service as string, formatted according to URI syntax + repeated string uris = 0; + // Fully Qualified Domain Name of the service. See note. + repeated string fqdn = 1; + // Entry point information of the service as one or more pairs of IP address and port. See note. + repeated EndPointInfoAddress addresses = 2; + // Entry point information of the service in a format defined by an implementation, or in an external specification. See note. + string alternative = 3; + } + +} diff --git a/ServiceMgmt/proto3/models/transport_type.proto b/ServiceMgmt/proto3/models/transport_type.proto new file mode 100644 index 0000000..32a8dcc --- /dev/null +++ b/ServiceMgmt/proto3/models/transport_type.proto @@ -0,0 +1,26 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011; + + +enum TransportType { + TransportType_REST_HTTP = 0; + TransportType_MB_TOPIC_BASED = 1; + TransportType_MB_ROUTING = 2; + TransportType_MB_PUBSUB = 3; + TransportType_RPC = 4; + TransportType_RPC_STREAMING = 5; + TransportType_WEBSOCKET = 6; +} diff --git a/ServiceMgmt/proto3/services/app_services_service.proto b/ServiceMgmt/proto3/services/app_services_service.proto new file mode 100644 index 0000000..c72586c --- /dev/null +++ b/ServiceMgmt/proto3/services/app_services_service.proto @@ -0,0 +1,92 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011.services.appservicesservice; + +import "google/protobuf/empty.proto"; +import public "models/app_services_post_request.proto"; +import public "models/one_ofobjectobject.proto"; +import public "models/problem_details.proto"; +import public "models/service_info.proto"; +import public "models/todo_object_mapping.proto"; + +service AppServicesService { + rpc AppServicesGET (AppServicesGETRequest) returns (AppServicesGETResponse); + + rpc AppServicesPOST (AppServicesPOSTRequest) returns (ServiceInfo); + + rpc AppServicesServiceIdDELETE (AppServicesServiceIdDELETERequest) returns (google.protobuf.Empty); + + rpc AppServicesServiceIdGET (AppServicesServiceIdGETRequest) returns (ServiceInfo); + + rpc AppServicesServiceIdPUT (AppServicesServiceIdPUTRequest) returns (ServiceInfo); + +} + +message AppServicesGETRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // A MEC application instance may use multiple ser_instance_ids as an input parameter to query the availability of a list of MEC service instances. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present. + repeated string serInstanceId = 2; + // A MEC application instance may use multiple ser_names as an input parameter to query the availability of a list of MEC service instances. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present. + repeated string serName = 3; + // A MEC application instance may use ser_category_id as an input parameter to query the availability of a list of MEC service instances in a serCategory. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present. + string serCategoryId = 4; + // Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance. + bool consumedLocalOnly = 5; + // Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application. + bool isLocal = 6; + // A MEC application instance may use scope_of_locality as an input parameter to query the availability of a list of MEC service instances with a certain scope of locality. + string scopeOfLocality = 7; + +} + +message AppServicesGETResponse { + repeated ServiceInfo data = 1; +} + +message AppServicesPOSTRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // New ServiceInfo with updated \"state\" is included as entity body of the request + ServiceInfo serviceInfo = 2; + +} + +message AppServicesServiceIdDELETERequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Represents a MEC service instance. (see note) + string serviceId = 2; + +} + +message AppServicesServiceIdGETRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Represents a MEC service instance (see note). + string serviceId = 2; + +} + +message AppServicesServiceIdPUTRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Represents a MEC service instance. (see note) + string serviceId = 2; + // New ServiceInfo with updated \"state\" is included as entity body of the request + ServiceInfo serviceInfo = 3; + +} + diff --git a/ServiceMgmt/proto3/services/app_subscriptions_service.proto b/ServiceMgmt/proto3/services/app_subscriptions_service.proto new file mode 100644 index 0000000..186d49e --- /dev/null +++ b/ServiceMgmt/proto3/services/app_subscriptions_service.proto @@ -0,0 +1,63 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011.services.appsubscriptionsservice; + +import "google/protobuf/empty.proto"; +import public "models/mec_service_mgmt_api_subscription_link_list.proto"; +import public "models/problem_details.proto"; +import public "models/ser_availability_notification_subscription.proto"; +import public "models/todo_object_mapping.proto"; + +service AppSubscriptionsService { + rpc ApplicationsSubscriptionDELETE (ApplicationsSubscriptionDELETERequest) returns (google.protobuf.Empty); + + rpc ApplicationsSubscriptionGET (ApplicationsSubscriptionGETRequest) returns (SerAvailabilityNotificationSubscription); + + rpc ApplicationsSubscriptionsGET (ApplicationsSubscriptionsGETRequest) returns (MecServiceMgmtApiSubscriptionLinkList); + + rpc ApplicationsSubscriptionsPOST (ApplicationsSubscriptionsPOSTRequest) returns (SerAvailabilityNotificationSubscription); + +} + +message ApplicationsSubscriptionDELETERequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Represents a subscription to the notifications from the MEC platform. + string subscriptionId = 2; + +} + +message ApplicationsSubscriptionGETRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Represents a subscription to the notifications from the MEC platform. + string subscriptionId = 2; + +} + +message ApplicationsSubscriptionsGETRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + +} + +message ApplicationsSubscriptionsPOSTRequest { + // Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + string appInstanceId = 1; + // Message content in the request contains a subscription to the MEC application termination notifications that is to be created. + SerAvailabilityNotificationSubscription serAvailabilityNotificationSubscription = 2; + +} + diff --git a/ServiceMgmt/proto3/services/individual_me_cservice_service.proto b/ServiceMgmt/proto3/services/individual_me_cservice_service.proto new file mode 100644 index 0000000..1b4bfb1 --- /dev/null +++ b/ServiceMgmt/proto3/services/individual_me_cservice_service.proto @@ -0,0 +1,34 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011.services.individualmecserviceservice; + +import "google/protobuf/empty.proto"; +import public "models/problem_details.proto"; +import public "models/service_liveness_info.proto"; +import public "models/service_liveness_update.proto"; + +service IndividualMECserviceService { + rpc GetIndividualMECService (google.protobuf.Empty) returns (ServiceLivenessInfo); + + rpc PatchIndividualMECService (PatchIndividualMECServiceRequest) returns (ServiceLivenessInfo); + +} + +message PatchIndividualMECServiceRequest { + // It contains an update of the liveness state. + ServiceLivenessUpdate serviceLivenessUpdate = 1; + +} + diff --git a/ServiceMgmt/proto3/services/services_service.proto b/ServiceMgmt/proto3/services/services_service.proto new file mode 100644 index 0000000..7dbb53b --- /dev/null +++ b/ServiceMgmt/proto3/services/services_service.proto @@ -0,0 +1,55 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011.services.servicesservice; + +import "google/protobuf/empty.proto"; +import public "models/problem_details.proto"; +import public "models/service_info.proto"; +import public "models/todo_object_mapping.proto"; + +service ServicesService { + rpc ServicesGET (ServicesGETRequest) returns (ServicesGETResponse); + + rpc ServicesServiceIdGET (ServicesServiceIdGETRequest) returns (ServiceInfo); + +} + +message ServicesGETRequest { + // A MEC application instance may use multiple ser_instance_ids as an input parameter to query the availability of a list of MEC service instances. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present. + repeated string serInstanceId = 1; + // A MEC application instance may use multiple ser_names as an input parameter to query the availability of a list of MEC service instances. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present. + repeated string serName = 2; + // A MEC application instance may use ser_category_id as an input parameter to query the availability of a list of MEC service instances in a serCategory. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present. + string serCategoryId = 3; + // A MEC application instance may use scope_of_locality as an input parameter to query the availability of a list of MEC service instances with a certain scope of locality. + string scopeOfLocality = 4; + // Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance. + bool consumedLocalOnly = 5; + // Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application. + bool isLocal = 6; + + +} + +message ServicesGETResponse { + repeated ServiceInfo data = 1; +} + +message ServicesServiceIdGETRequest { + // Represents a MEC service instance. (see note) + string serviceId = 1; + +} + diff --git a/ServiceMgmt/proto3/services/transports_service.proto b/ServiceMgmt/proto3/services/transports_service.proto new file mode 100644 index 0000000..3f27e54 --- /dev/null +++ b/ServiceMgmt/proto3/services/transports_service.proto @@ -0,0 +1,30 @@ +/* + MEC Service Management API + + The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI + + The version of the OpenAPI document: 3.1.1 + + Contact: cti_support@etsi.org + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec011.services.transportsservice; + +import "google/protobuf/empty.proto"; +import public "models/problem_details.proto"; +import public "models/todo_object_mapping.proto"; +import public "models/transport_info.proto"; + +service TransportsService { + rpc TransportsGET (google.protobuf.Empty) returns (TransportsGETResponse); + +} + +message TransportsGETResponse { + repeated TransportInfo data = 1; +} + -- GitLab From dd72d0cff79796f4b42a73a7c36d4cd552b16223 Mon Sep 17 00:00:00 2001 From: Ayesha Ayub Date: Tue, 17 Jan 2023 11:20:01 +0500 Subject: [PATCH 02/17] add proto3-gen.md file --- proto3-gen.md | 131 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 131 insertions(+) create mode 100644 proto3-gen.md diff --git a/proto3-gen.md b/proto3-gen.md new file mode 100644 index 0000000..dd10737 --- /dev/null +++ b/proto3-gen.md @@ -0,0 +1,131 @@ +# Protobuf Schema Generation + +[OpenAPI Generator](https://openapi-generator.tech) is used to generate protobuf schema (`.proto3`) files from OpenAPI specifications of MEC011 App Enablement API. + +>**NOTE:** At the time of writing, the tool does not support OAS 3.1 version and we have to first convert the [App Enablement API](./MecAppSupportApi.yaml) to OAS 3.0 for generating protobuf schema. + +1. Convert OAS for [App Enablement API](./MecAppSupportApi.yaml) from 3.1 to 3.0​ + + - Change the value of `openapi` field from 3.1.0 to 3.0.0​ + + - Use this [VS code extension](https://marketplace.visualstudio.com/items?itemName=42Crunch.vscode-openapi) to see the errors in the downgraded YAML (v3.0)​ + + - Manually fix the errors​ + - mostly related to `examples` <--> `example` interchange​ + - or some 3.1 fields that are not supported in 3.0​ (comment them out) + +2. Generate proto files + - Install the `openapi-generator-cli.jar` using the installation procedure mentioned [here](https://openapi-generator.tech/docs/installation#jar). + - Generate the proto files using the following command + ```sh + $ java -jar openapi-generator-cli.jar generate -i MecAppSupportApi.yaml -g protobuf-schema -o proto3/ --package-name mec011 + ``` + +3. Carefully inspect the generated `.proto` files for any inconsistencies. Some of the things to look out for: + - Proto3 generated files for enumerations, structures containing allOf, oneOf, anyOf etc. may need to be touched manually + - Check that all the nested models are being _imported_ correctly in their parent models + - Remove redundant proto files + + +4. Validate protobuf schema by generating code from proto3 descriptions in different languages. See [this section](#code-generation-from-proto3) for more details. + +# Code Generation from proto3 + +Below are some code generation examples for Python, Go and Ruby. For other languages, please refer to https://grpc.io/docs/quickstart/. + +### Python + +1. Install the grpcio-tools package + ```sh + $ pip install grpcio-tools + ``` + +2. Create a directory for generated Python stubs + ```sh + $ mkdir python-stubs + ``` + +3. Run the following commands from the root of the directory containing this README that you are reading. + + - Models: + + ```sh + $ python3 -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs ./AppSupport/proto3/models/* + ``` + + The above command will generate .py files for all the data models in the ./models directory + + - Services: + + ```sh + $ python3 -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs --grpc_python_out=./python-stubs .AppSupport/proto3/services/* + ``` + + The above command will generate two files for the each Application Support services: + - _app_confirm_ready_service_pb2.py_: containing the python data models used in the Application Support service file + - _app_confirm_ready_service_pb2_grpc.py_: containing all the classes and functions needed for the supported HTTP methods in the Application Support API + +### Go + +1. Install protocol buffer compiler + ```sh + $ apt install -y protobuf-compiler + ``` +2. Install Go plugins for `protoc` + ```sh + $ go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28.1 + ``` + ```sh + $ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2.0 + ``` +3. Update `PATH` so `protoc` can find the plugins + ```sh + $ export PATH="$PATH:$(go env GOPATH)/bin" + ``` +4. Define a go package by appending `option go_package = "./mec011";` in all .proto files like this: + + ```Go + ... + + syntax = "proto3"; + + package mec011; + + option go_package = "./mec011"; + + import public "models/.proto"; + + ... + ``` +5. Generate Go code for models and services + ```sh + $ mkdir go-stubs + $ protoc --go_out=./go-stubs ./AppSupport/proto3/models/* -I./AppSupport/proto3 + $ protoc --go_out=./go-stubs ./AppSupport/proto3/services/* --go-grpc_out=go-stubs -I./AppSupport/proto3 + ``` + > The generated `.pb.go` files will contain all the protocol buffer code to populate, serialize, and retrieve request and response message types defined in the `models` folder. + > And the `app_confirm_ready_service_grpc.pb.go` will contain the stubs for the methods defined in the `app_confirm_ready_service.proto` file. + +### Ruby + +1. Install gRPC Ruby Plugin and required tools + ```sh + $ gem install grpc + $ sudo apt install ruby-grpc-tools + ``` + +2. Generate code + ```sh + $ mkdir ruby-stubs + ``` + + Run the following command to create Ruby modules for all the data models defined in the proto files. + + ```sh + $ grpc_tools_ruby_protoc -I./proto3 --ruby_out=ruby-stubs ./proto3/models/* + ``` + Run the following command to generate `app_confirm_ready_service_pb.rb` and `app_confirm_ready_service_pb.rb` files, containing stub and service classes for the endpoints and methods defined in MEC011 App Enablement service. + + ```sh + $ grpc_tools_ruby_protoc -I./AppSupport/proto3 --ruby_out=ruby-stubs --grpc_out=ruby-stubs ./AppSupport/proto3/services/* + ``` -- GitLab From d63c8b48a672a43a3f92ebbe12fbe9005aad64e5 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Wed, 18 Jan 2023 17:18:38 +0500 Subject: [PATCH 03/17] fix examples in MEC011 APIs --- MecAppSupportApi.json | 638 +++++++++++------------------------ MecAppSupportApi.yaml | 99 +++--- MecServiceMgmtApi.json | 738 ++++++++++++++++++----------------------- MecServiceMgmtApi.yaml | 332 ++++++++++-------- 4 files changed, 773 insertions(+), 1034 deletions(-) diff --git a/MecAppSupportApi.json b/MecAppSupportApi.json index 1808ca0..3693d41 100644 --- a/MecAppSupportApi.json +++ b/MecAppSupportApi.json @@ -56,9 +56,7 @@ "paths": { "/applications/{appInstanceId}/traffic_rules": { "get": { - "tags": [ - "appTrafficRules" - ], + "tags": ["appTrafficRules"], "summary": "get traffic rules", "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.", "operationId": "ApplicationsTrafficRules_GET", @@ -90,34 +88,29 @@ [ { "trafficRuleId": "TrafficRule123", - "serName": "ExampleService", "filterType": "FLOW", "priority": 1, "trafficFilter": [ { "srcAddress": [ - "192.168.2.0/24", - "192.168.3.0/24" + "192.127.4.100/32", + "192.127.4.101/32" ], "dstAddress": [ - "192.127.4.100/32" + "192.127.4.102/32", + "192.127.4.103/32" ], - "dstPort": [ - "80" - ] + "srcPort": ["80"], + "dstPort": ["80"] } ], "action": "FORWARD_DECAPSULATED", "dstInterface": [ { - "dstInterface0": null, + "dstInterface": null, "interfaceType": "IP", + "tunnelInfo": "tunnel", "dstIpAddress": "20.1.1.1" - }, - { - "dstInterface1": null, - "interfaceType": "IP", - "dstIpAddress": "20.1.1.2" } ], "state": "ACTIVE" @@ -126,41 +119,70 @@ ], "contentMediaType": "application/json" }, - "examples": { - "TrafficRules": { - "value": [ + "examples": [ + { + "TrafficRule": [ { "trafficRuleId": "TrafficRule123", - "serName": "ExampleService", "filterType": "FLOW", "priority": 1, "trafficFilter": [ { "srcAddress": [ - "192.168.2.0/24", - "192.168.3.0/24" + "192.127.4.100/32", + "192.127.4.101/32" ], "dstAddress": [ - "192.127.4.100/32" + "192.127.4.102/32", + "192.127.4.103/32" ], - "dstPort": [ - "80" - ] + "srcPort": ["80"], + "dstPort": ["80"] } ], "action": "FORWARD_DECAPSULATED", "dstInterface": [ { - "dstInterface0": null, + "dstInterface": null, "interfaceType": "IP", + "tunnelInfo": "tunnel", "dstIpAddress": "20.1.1.1" } ], "state": "ACTIVE" + }, + { + "trafficRuleId": "TrafficRule456", + "filterType": "FLOW", + "priority": 1, + "trafficFilter": [ + { + "srcAddress": [ + "192.127.4.104/32", + "192.127.4.105/32" + ], + "dstAddress": [ + "192.127.4.106/32", + "192.127.4.107/32" + ], + "srcPort": ["80"], + "dstPort": ["80"] + } + ], + "action": "FORWARD_DECAPSULATED", + "dstInterface": [ + { + "dstInterface": null, + "interfaceType": "IP", + "tunnelInfo": "tunnel", + "dstIpAddress": "20.1.1.2" + } + ], + "state": "ACTIVE" } ] } - } + ] } } }, @@ -218,9 +240,7 @@ }, "/applications/{appInstanceId}/traffic_rules/{trafficRuleId}": { "get": { - "tags": [ - "appTrafficRules" - ], + "tags": ["appTrafficRules"], "summary": "Get traffic rule", "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.", "operationId": "ApplicationsTrafficRule_GET", @@ -255,39 +275,39 @@ "schema": { "$ref": "#/components/schemas/TrafficRule" }, - "examples": { - "TrafficRule": { - "value": { + "examples": [ + { + "TrafficRule": { "trafficRuleId": "TrafficRule123", - "serName": "ExampleService", "filterType": "FLOW", "priority": 1, "trafficFilter": [ { "srcAddress": [ - "192.168.2.0/24", - "192.168.3.0/24" + "192.127.4.100/32", + "192.127.4.101/32" ], "dstAddress": [ - "192.127.4.100/32" + "192.127.4.102/32", + "192.127.4.103/32" ], - "dstPort": [ - "80" - ] + "srcPort": ["80"], + "dstPort": ["80"] } ], "action": "FORWARD_DECAPSULATED", "dstInterface": [ { - "dstInterface0": null, + "dstInterface": null, "interfaceType": "IP", + "tunnelInfo": "tunnel", "dstIpAddress": "20.1.1.1" } ], "state": "ACTIVE" } } - } + ] } } }, @@ -342,9 +362,7 @@ "deprecated": false }, "put": { - "tags": [ - "appTrafficRules" - ], + "tags": ["appTrafficRules"], "summary": "Update traffic rule", "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.", "operationId": "ApplicationsTrafficRule_PUT", @@ -390,9 +408,9 @@ "schema": { "$ref": "#/components/schemas/TrafficRule" }, - "examples": { - "TrafficRule": { - "value": { + "examples": [ + { + "TrafficRule": { "trafficRuleId": "TrafficRule123", "serName": "ExampleService", "filterType": "FLOW", @@ -400,15 +418,15 @@ "trafficFilter": [ { "srcAddress": [ - "192.168.2.0/24", - "192.168.3.0/24" + "192.127.4.100/32", + "192.127.4.101/32" ], "dstAddress": [ - "192.127.4.100/32" + "192.127.4.102/32", + "192.127.4.103/32" ], - "dstPort": [ - "80" - ] + "srcPort": ["80"], + "dstPort": ["80"] } ], "action": "FORWARD_DECAPSULATED", @@ -416,13 +434,14 @@ { "dstInterface0": null, "interfaceType": "IP", + "tunnelInfo": "tunnel", "dstIpAddress": "20.1.1.1" } ], "state": "ACTIVE" } } - } + ] } } }, @@ -498,9 +517,7 @@ }, "/applications/{appInstanceId}/dns_rules": { "get": { - "tags": [ - "appDnsRules" - ], + "tags": ["appDnsRules"], "summary": "Get DNS rules", "description": "This method retrieves information about all the DNS rules associated with a MEC application instance.", "operationId": "ApplicationsDnsRules_GET", @@ -550,9 +567,9 @@ ], "contentMediaType": "application/json" }, - "examples": { - "DnsRules": { - "value": [ + "examples": [ + { + "DnsRules": [ { "dnsRuleId": "DnsRule1", "domainName": "www.example.com", @@ -571,7 +588,7 @@ } ] } - } + ] } } }, @@ -629,9 +646,7 @@ }, "/applications/{appInstanceId}/dns_rules/{dnsRuleId}": { "get": { - "tags": [ - "appDnsRules" - ], + "tags": ["appDnsRules"], "summary": "Get DNS rule", "description": "This method retrieves information about a DNS rule associated with a MEC application instance.", "operationId": "ApplicationsDnsRule_GET", @@ -666,9 +681,9 @@ "schema": { "$ref": "#/components/schemas/DnsRule" }, - "examples": { - "DnsRule": { - "value": { + "examples": [ + { + "DnsRule": { "dnsRuleId": "DnsRule1", "domainName": "www.example.com", "ipAddressType": "IP_V4", @@ -677,7 +692,7 @@ "state": "ACTIVE" } } - } + ] } } }, @@ -732,9 +747,7 @@ "deprecated": false }, "put": { - "tags": [ - "appDnsRules" - ], + "tags": ["appDnsRules"], "summary": "Update DNS rule", "description": "This method activates, de-activates or updates a traffic rule.", "operationId": "ApplicationsDnsRule_PUT", @@ -780,9 +793,9 @@ "schema": { "$ref": "#/components/schemas/DnsRule" }, - "examples": { - "DnsRule": { - "value": { + "examples": [ + { + "DnsRule": { "dnsRuleId": "DnsRule1", "domainName": "www.example.com", "ipAddressType": "IP_V4", @@ -791,7 +804,7 @@ "state": "ACTIVE" } } - } + ] } } }, @@ -867,9 +880,7 @@ }, "/applications/{appInstanceId}/subscriptions": { "get": { - "tags": [ - "appSubscriptions" - ], + "tags": ["appSubscriptions"], "summary": "Get subscriptions", "description": "The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains message content with all the subscriptions for the requestor.", "operationId": "ApplicationsSubscriptions_GET", @@ -948,9 +959,7 @@ "deprecated": false }, "post": { - "tags": [ - "appSubscriptions" - ], + "tags": ["appSubscriptions"], "summary": "Create subscription", "description": "The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains message content describing the created subscription.", "operationId": "ApplicationsSubscriptions_POST", @@ -1057,9 +1066,7 @@ "post": { "description": "Represents the information that the MEP notifies the subscribed application instance about the corresponding application instance termination/stop'", "operationId": "AppTerminationNotification_POST", - "tags": [ - "callbacks" - ], + "tags": ["callbacks"], "summary": "Create callback", "requestBody": { "$ref": "#/components/requestBodies/AppTerminationNotification" @@ -1078,9 +1085,7 @@ }, "/applications/{appInstanceId}/subscriptions/{subscriptionId}": { "get": { - "tags": [ - "appSubscriptions" - ], + "tags": ["appSubscriptions"], "summary": "Get subscription", "description": "The GET method requests information about a subscription for this requestor. Upon success, the response contains message content with the subscription for the requestor.", "operationId": "ApplicationsSubscription_GET", @@ -1169,9 +1174,7 @@ "deprecated": false }, "delete": { - "tags": [ - "appSubscriptions" - ], + "tags": ["appSubscriptions"], "summary": "delete subscription", "description": "This method deletes a mecAppSuptApiSubscription. This method is typically used in \"Unsubscribing from service availability event notifications\" procedure.", "operationId": "ApplicationsSubscription_DELETE", @@ -1239,9 +1242,7 @@ }, "/applications/{appInstanceId}/confirm_termination": { "post": { - "tags": [ - "appConfirmTermination" - ], + "tags": ["appConfirmTermination"], "summary": "Confirm termination", "description": "This method is used to confirm the application level termination of an application instance.", "operationId": "ApplicationsConfirmTermination_POST", @@ -1364,9 +1365,7 @@ }, "/applications/{appInstanceId}/confirm_ready": { "post": { - "tags": [ - "appConfirmReady" - ], + "tags": ["appConfirmReady"], "summary": "Confirm ready", "description": "This method may be used by the MEC application instance to notify the MEC platform that it is up and running. ", "operationId": "ApplicationsConfirmReady_POST", @@ -1489,9 +1488,7 @@ }, "/registrations": { "post": { - "tags": [ - "appRegistrations" - ], + "tags": ["appRegistrations"], "summary": "Create Registrantion", "description": "The POST method may be used by the MEC application instance to request its registration to the MEC platform. ", "operationId": "ApplicationsRegistrations_POST", @@ -1604,9 +1601,7 @@ }, "/registrations/{appInstanceId}": { "get": { - "tags": [ - "appRegistrations" - ], + "tags": ["appRegistrations"], "summary": "Get Registration", "description": "The GET method may be used by the MEC application instance to retrieve information about the existing MEC application instance registration to the MEC platform.", "operationId": "ApplicationsRegistration_GET", @@ -1685,9 +1680,7 @@ "deprecated": false }, "put": { - "tags": [ - "appRegistrations" - ], + "tags": ["appRegistrations"], "summary": "Update Registration", "description": "The PUT method may be used by the MEC application instance to update its registration to the MEC platform.", "operationId": "ApplicationsRegistration_PUT", @@ -1789,9 +1782,7 @@ "deprecated": false }, "delete": { - "tags": [ - "appRegistrations" - ], + "tags": ["appRegistrations"], "summary": "delete registration", "description": "The DELETE method is used to cancel the existing MEC application instance registration.", "operationId": "ApplicationsRegistration_DELETE", @@ -1885,9 +1876,7 @@ }, "/timing/timing_caps": { "get": { - "tags": [ - "timing" - ], + "tags": ["timing"], "summary": "Retrieve timing capabilities", "description": "This method retrieves the information of the platform's timing capabilities which corresponds to the timing capabilities query", "operationId": "TimingCaps_GET", @@ -1958,9 +1947,7 @@ }, "/timing/current_time": { "get": { - "tags": [ - "timing" - ], + "tags": ["timing"], "summary": "Retrieve current time", "description": "This method retrieves the information of the platform's current time which corresponds to the get platform time procedure", "operationId": "TimingCurrentTime_GET", @@ -2034,44 +2021,34 @@ "schemas": { "AppReadyConfirmation": { "title": "AppReadyConfirmation", - "required": [ - "indication" - ], + "required": ["indication"], "type": "object", "properties": { "indication": { "const": "READY", "type": "string", "description": "Indication about the MEC application instance.", - "examples": [ - "READY" - ] + "examples": ["READY"] } }, "description": "This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running." }, "AppInfo": { "title": "AppInfo", - "required": [ - "appName" - ], + "required": ["appName"], "type": "object", "properties": { "appName": { "title": "appName", "type": "string", "description": "Name of the application. It shall be consistent with the appName in the AppD, if an AppD is available.", - "examples": [ - "appName" - ] + "examples": ["appName"] }, "appProvider": { "title": "appProvider", "type": "string", "description": "Provider of the application. It shall be consistent with the appProvider in the AppD, if an AppD is available. See note 1.", - "examples": [ - "appProvider1" - ] + "examples": ["appProvider1"] }, "appCategory": { "$ref": "#/components/schemas/CategoryRef" @@ -2080,17 +2057,13 @@ "title": "appDId", "type": "string", "description": "The application descriptor identifier. It is managed by the application provider to identify the application descriptor in a globally unique way. Shall be present if the application instance is instantiated by the MEC Management.", - "examples": [ - "appDId" - ] + "examples": ["TODO"] }, "appInstanceId": { "title": "appInstanceId", "type": "string", "description": "Identifier of the application instance. Shall be present if the application instance is instantiated by the MEC Management.", - "examples": [ - "ID1" - ] + "examples": ["ID1"] }, "endpoint": { "oneOf": [ @@ -2145,9 +2118,7 @@ "isInsByMec": { "type": "boolean", "description": "Indicate whether the application instance is instantiated by the MEC Management.\nDefault to FALSE if absent.", - "examples": [ - false - ] + "examples": [false] }, "appProfile": { "$ref": "#/components/schemas/AppProfile" @@ -2158,9 +2129,7 @@ }, "AppTerminationConfirmation": { "title": "AppTerminationConfirmation", - "required": [ - "operationAction" - ], + "required": ["operationAction"], "type": "object", "properties": { "operationAction": { @@ -2171,9 +2140,7 @@ }, "AppTerminationNotification.Links": { "title": "AppTerminationNotification.Links", - "required": [ - "subscription" - ], + "required": ["subscription"], "type": "object", "properties": { "subscription": { @@ -2198,9 +2165,7 @@ "notificationType": { "type": "string", "description": "Shall be set to AppTerminationNotification.", - "examples": [ - "AppTerminationNotification" - ] + "examples": ["AppTerminationNotification"] }, "operationAction": { "$ref": "#/components/schemas/OperationActionType" @@ -2209,9 +2174,7 @@ "type": "integer", "description": "Maximum timeout value in seconds for graceful termination or graceful stop of an application instance.", "contentEncoding": "int32", - "examples": [ - 10 - ] + "examples": [10] }, "_links": { "$ref": "#/components/schemas/AppTerminationNotification.Links" @@ -2232,9 +2195,7 @@ "subscriptionType": { "type": "string", "description": "Shall be set to AppTerminationNotificationSubscription.", - "examples": [ - "AppTerminationNotificationSubscription" - ] + "examples": ["AppTerminationNotificationSubscription"] }, "callbackReference": { "type": "string", @@ -2246,37 +2207,27 @@ "appInstanceId": { "type": "string", "description": "It is used as the filtering criterion for the subscribed events.", - "examples": [ - "ID1" - ] + "examples": ["ID1"] } }, "description": "This type represents the information that the MEC platform notifies the subscribed application instance about the corresponding application instance termination/stop." }, "CurrentTime": { "title": "CurrentTime", - "required": [ - "seconds", - "nanoSeconds", - "timeSourceStatus" - ], + "required": ["seconds", "nanoSeconds", "timeSourceStatus"], "type": "object", "properties": { "seconds": { "type": "integer", "description": "The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC", "contentEncoding": "int32", - "examples": [ - 1577836800 - ] + "examples": [1577836800] }, "nanoSeconds": { "type": "integer", "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC", "contentEncoding": "int32", - "examples": [ - 0 - ] + "examples": [0] }, "timeSourceStatus": { "$ref": "#/components/schemas/TimeSourceStatus" @@ -2286,22 +2237,14 @@ }, "DestinationInterface.InterfaceType": { "title": "DestinationInterface.InterfaceType", - "enum": [ - "TUNNEL", - "MAC", - "IP" - ], + "enum": ["TUNNEL", "MAC", "IP"], "type": "string", "description": "Type of the interface", - "examples": [ - "TUNNEL" - ] + "examples": ["TUNNEL"] }, "DestinationInterface": { "title": "DestinationInterface", - "required": [ - "interfaceType" - ], + "required": ["interfaceType"], "type": "object", "properties": { "interfaceType": { @@ -2313,50 +2256,34 @@ "srcMacAddress": { "type": "string", "description": "Source address identifies the MAC address of the interface", - "examples": [ - "02-00-00-00-00-00" - ] + "examples": ["02-00-00-00-00-00"] }, "dstMacAddress": { "type": "string", "description": "Source address identifies the MAC address of the interface", - "examples": [ - "02-00-00-00-00-00" - ] + "examples": ["02-00-00-00-00-00"] }, "dstIpAddress": { "type": "string", "description": "IP address of the remote destination", - "examples": [ - "192.0.2.0" - ] + "examples": ["192.0.2.0"] } }, "description": "This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided." }, "DnsRule.IpAddressType": { "title": "DnsRule.IpAddressType", - "enum": [ - "IP_V6", - "IP_V4" - ], + "enum": ["IP_V6", "IP_V4"], "type": "string", "description": "IP address type", - "examples": [ - "IP_V6" - ] + "examples": ["IP_V6"] }, "DnsRule.State": { "title": "DnsRule.State", - "enum": [ - "ACTIVE", - "INACTIVE" - ], + "enum": ["ACTIVE", "INACTIVE"], "type": "string", "description": "DNS rule state. This attribute may be updated using HTTP PUT method", - "examples": [ - "ACTIVE" - ] + "examples": ["ACTIVE"] }, "DnsRule": { "title": "DnsRule", @@ -2372,16 +2299,12 @@ "dnsRuleId": { "type": "string", "description": "Identifies the DNS Rule", - "examples": [ - "dnsRule1" - ] + "examples": ["dnsRule1"] }, "domainName": { "type": "string", "description": "FQDN resolved by the DNS rule", - "examples": [ - "www.example.com" - ] + "examples": ["www.example.com"] }, "ipAddressType": { "$ref": "#/components/schemas/DnsRule.IpAddressType" @@ -2389,9 +2312,7 @@ "ipAddress": { "type": "string", "description": "IP address associated with the FQDN resolved by the DNS rule", - "examples": [ - "192.0.2.0" - ] + "examples": ["192.0.2.0"] }, "ttl": { "type": "integer", @@ -2412,9 +2333,7 @@ "href": { "type": "string", "description": "URI referring to a resource", - "examples": [ - "/mecAppSuptApi/example" - ] + "examples": ["/mecAppSuptApi/example"] } }, "description": "This type represents a type of link and may be referenced from data structures" @@ -2426,18 +2345,14 @@ "href": { "type": "string", "description": "URI referring to a resource", - "examples": [ - "/mecAppSuptApi/example" - ] + "examples": ["/mecAppSuptApi/example"] } }, "description": "Link to the task resource where to confirm termination in case the application is ready to be terminated before expiry of the timeout." }, "MecAppSuptApiSubscriptionLinkList.Links": { "title": "MecAppSuptApiSubscriptionLinkList.Links", - "required": [ - "self" - ], + "required": ["self"], "type": "object", "properties": { "self": { @@ -2455,18 +2370,13 @@ }, "MecAppSuptApiSubscriptionLinkList.Subscription": { "title": "MecAppSuptApiSubscriptionLinkList.Subscription", - "required": [ - "href", - "subscriptionType" - ], + "required": ["href", "subscriptionType"], "type": "object", "properties": { "href": { "type": "string", "description": "URI referring to a resource", - "examples": [ - "/mecAppSuptApi/example" - ] + "examples": ["/mecAppSuptApi/example"] }, "subscriptionType": { "type": "string", @@ -2477,9 +2387,7 @@ }, "MecAppSuptApiSubscriptionLinkList": { "title": "MecAppSuptApiSubscriptionLinkList", - "required": [ - "_links" - ], + "required": ["_links"], "type": "object", "properties": { "_links": { @@ -2490,15 +2398,10 @@ }, "OperationActionType": { "title": "OperationActionType", - "enum": [ - "STOPPING", - "TERMINATING" - ], + "enum": ["STOPPING", "TERMINATING"], "type": "string", "description": "Operation that is being performed on the MEC application instance.", - "examples": [ - "TERMINATING" - ] + "examples": ["TERMINATING"] }, "ProblemDetails": { "title": "ProblemDetails", @@ -2529,9 +2432,7 @@ }, "Self": { "title": "Self", - "required": [ - "self" - ], + "required": ["self"], "type": "object", "properties": { "self": { @@ -2542,28 +2443,17 @@ }, "TimingCaps.NtpServers.AuthenticationOption": { "title": "TimingCaps.NtpServers.AuthenticationOption", - "enum": [ - "NONE", - "SYMMETRIC_KEY", - "AUTO_KEY" - ], + "enum": ["NONE", "SYMMETRIC_KEY", "AUTO_KEY"], "type": "string", "description": "NTP authentication option", - "examples": [ - "NONE" - ] + "examples": ["NONE"] }, "TimingCaps.NtpServers.NtpServerAddrType": { "title": "TimingCaps.NtpServers.NtpServerAddrType", - "enum": [ - "IP_ADDRESS", - "DNS_NAME" - ], + "enum": ["IP_ADDRESS", "DNS_NAME"], "type": "string", "description": "Address type of NTP server", - "examples": [ - "IP_ADDRESS" - ] + "examples": ["IP_ADDRESS"] }, "TimingCaps.NtpServers": { "title": "TimingCaps.NtpServers", @@ -2583,33 +2473,25 @@ "ntpServerAddr": { "type": "string", "description": "NTP server address", - "examples": [ - "192.0.2.0" - ] + "examples": ["192.0.2.0"] }, "minPollingInterval": { "type": "integer", "description": "Minimum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17", "contentEncoding": "int32", - "examples": [ - 3 - ] + "examples": [3] }, "maxPollingInterval": { "type": "integer", "description": "Maximum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17", "contentEncoding": "int32", - "examples": [ - 17 - ] + "examples": [17] }, "localPriority": { "type": "integer", "description": "NTP server local priority", "contentEncoding": "int32", - "examples": [ - 1 - ] + "examples": [1] }, "authenticationOption": { "$ref": "#/components/schemas/TimingCaps.NtpServers.AuthenticationOption" @@ -2618,9 +2500,7 @@ "type": "integer", "description": "Authentication key number. This configuration is valid and shall be present if authenticationOption is set to SYMMETRIC_KEY", "contentEncoding": "int32", - "examples": [ - 1 - ] + "examples": [1] } }, "description": "NTP server detail." @@ -2637,52 +2517,39 @@ "ptpMasterIpAddress": { "type": "string", "description": "PTP Server (referred to as \"master\" in IEEE 1588-2019) IP Address", - "examples": [ - "192.0.2.0" - ] + "examples": ["192.0.2.0"] }, "ptpMasterLocalPriority": { "type": "integer", "description": "PTP Server (referred to as \"master\" in IEEE 1588-2019 ) local priority", "contentEncoding": "int32", - "examples": [ - 1 - ] + "examples": [1] }, "delayReqMaxRate": { "type": "integer", "description": "Acceptable maximum rate of the Delay_Req messages in packets per second", "contentEncoding": "int32", - "examples": [ - 10 - ] + "examples": [10] } }, "description": "NTP server detail." }, "TimingCaps.TimeStamp": { "title": "TimingCaps.TimeStamp", - "required": [ - "seconds", - "nanoSeconds" - ], + "required": ["seconds", "nanoSeconds"], "type": "object", "properties": { "seconds": { "type": "integer", "description": "The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC", "contentEncoding": "int32", - "examples": [ - 1577836800 - ] + "examples": [1577836800] }, "nanoSeconds": { "type": "integer", "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC", "contentEncoding": "int32", - "examples": [ - 0 - ] + "examples": [0] } }, "description": "time" @@ -2789,25 +2656,19 @@ "type": "integer", "description": "Used to match all packets that have the same Quality Class Indicator (QCI).", "contentEncoding": "int32", - "examples": [ - 1 - ] + "examples": [1] }, "dSCP": { "type": "integer", "description": "Used to match all IPv4 packets that have the same Differentiated Services Code Point (DSCP)", "contentEncoding": "int32", - "examples": [ - 0 - ] + "examples": [0] }, "tC": { "type": "integer", "description": "Used to match all IPv6 packets that have the same Traffic Class.", "contentEncoding": "int32", - "examples": [ - 1 - ] + "examples": [1] } }, "description": "This type represents the traffic filter." @@ -2824,33 +2685,21 @@ ], "type": "string", "description": "The action of the MEC host data plane when a packet matches the trafficFilter", - "examples": [ - "DROP" - ] + "examples": ["DROP"] }, "TrafficRule.FilterType": { "title": "TrafficRule.FilterType", - "enum": [ - "FLOW", - "PACKET" - ], + "enum": ["FLOW", "PACKET"], "type": "string", "description": "Definition of filter per FLOW or PACKET. If flow the filter match UE->EPC packet and the reverse packet is handled in the same context", - "examples": [ - "FLOW" - ] + "examples": ["FLOW"] }, "TrafficRule.State": { "title": "TrafficRule.State", - "enum": [ - "ACTIVE", - "INACTIVE" - ], + "enum": ["ACTIVE", "INACTIVE"], "type": "string", "description": "Contains the traffic rule state. This attribute may be updated using HTTP PUT method", - "examples": [ - "ACTIVE" - ] + "examples": ["ACTIVE"] }, "TrafficRule": { "title": "TrafficRule", @@ -2867,9 +2716,7 @@ "trafficRuleId": { "type": "string", "description": "Identify the traffic rule.", - "examples": [ - "TrafficRule1" - ] + "examples": ["TrafficRule1"] }, "filterType": { "$ref": "#/components/schemas/TrafficRule.FilterType" @@ -2878,9 +2725,7 @@ "type": "integer", "description": "Priority of this traffic rule within the range 0 to 255. If traffic rules conflict, the one with higher priority take precedence. Value indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest priority.", "contentEncoding": "int32", - "examples": [ - 1 - ] + "examples": [1] }, "trafficFilter": { "type": "array", @@ -2908,21 +2753,14 @@ }, "TunnelInfo.TunnelType": { "title": "TunnelInfo.TunnelType", - "enum": [ - "GTP_U", - "GRE" - ], + "enum": ["GTP_U", "GRE"], "type": "string", "description": "This type represents the tunnel information.", - "examples": [ - "GTP_U" - ] + "examples": ["GTP_U"] }, "TunnelInfo": { "title": "TunnelInfo", - "required": [ - "tunnelType" - ], + "required": ["tunnelType"], "type": "object", "properties": { "tunnelType": { @@ -2931,104 +2769,73 @@ "tunnelDstAddress": { "type": "string", "description": "Destination address of the tunnel", - "examples": [ - "?" - ] + "examples": ["192.127.4.100/32"] }, "tunnelSrcAddress": { "type": "string", "description": "Source address of the tunnel", - "examples": [ - "?" - ] + "examples": ["192.127.4.101/32"] } }, "description": "This type represents the tunnel information." }, "TimeSourceStatus": { "title": "TimeSourceStatus", - "enum": [ - "TRACEABLE", - "NONTRACEABLE" - ], + "enum": ["TRACEABLE", "NONTRACEABLE"], "type": "string", "description": "Platform Time Source status. 1 = TRACEABLE - time source is locked to the UTC time source. 2 = NONTRACEABLE - time source is not locked to the UTC time source", - "examples": [ - "TRACEABLE" - ] + "examples": ["TRACEABLE"] }, "CategoryRef": { "title": "CategoryRef", - "required": [ - "href", - "id", - "name", - "version" - ], + "required": ["href", "id", "name", "version"], "type": "object", "properties": { "href": { "type": "string", "description": "Reference of the catalogue", - "examples": [ - "/example/catalogue1" - ] + "examples": ["/example/catalogue1"] }, "id": { "type": "string", "description": "Unique identifier of the category", - "examples": [ - "id12345" - ] + "examples": ["id12345"] }, "name": { "type": "string", "description": "Name of the category, example values include RNI, Location & Bandwidth Management", - "examples": [ - "RNI" - ] + "examples": ["RNI"] }, "version": { "type": "string", "description": "Category version", - "examples": [ - "version1" - ] + "examples": ["version1"] } }, "description": "This type represents the category reference" }, "EndPointInfo.Address": { "title": "EndPointInfo.Address", - "required": [ - "host", - "port" - ], + "required": ["host", "port"], "type": "object", "properties": { "host": { "type": "string", "description": "Host portion of the address", - "examples": [ - "192.0.2.0" - ] + "examples": ["192.0.2.0"] }, "port": { "type": "integer", "description": "Port portion of the address", "contentEncoding": "int32", - "examples": [ - 8080 - ] + "examples": [8080] } }, "description": "A IP address and port pair" }, "EndPointInfo.Addresses": { "title": "EndPointInfo.Addresses", - "required": [ - "addresses" - ], + "required": ["addresses"], "type": "object", "properties": { "addresses": { @@ -3043,9 +2850,7 @@ }, "EndPointInfo.Alternative": { "title": "EndPointInfo.Alternative", - "required": [ - "alternative" - ], + "required": ["alternative"], "type": "object", "properties": { "alternative": { @@ -3057,9 +2862,7 @@ }, "EndPointInfo.Uris": { "title": "EndPointInfo.Uris", - "required": [ - "uris" - ], + "required": ["uris"], "type": "object", "properties": { "uris": { @@ -3074,9 +2877,7 @@ }, "EndPointInfo.Fqdn": { "title": "EndPointInfo.Fqdn", - "required": [ - "fqdn" - ], + "required": ["fqdn"], "type": "object", "properties": { "fqdn": { @@ -3119,10 +2920,7 @@ "type": "string" } }, - "required": [ - "serName", - "version" - ], + "required": ["serName", "version"], "type": "object", "x-etsi-notes": "NOTE:\tThis attribute indicates groups of transport bindings that a service-consuming MEC application supports for the consumption of the MEC service defined by this ServiceDependency structure. If at least one of the indicated groups is supported by the service it may be consumed by the application." }, @@ -3148,11 +2946,7 @@ "$ref": "#/components/schemas/TransportDescriptor" } }, - "required": [ - "transport", - "serializers", - "labels" - ], + "required": ["transport", "serializers", "labels"], "type": "object" }, "TransportDescriptor": { @@ -3172,26 +2966,15 @@ "type": "string" } }, - "required": [ - "type", - "protocol", - "version", - "security" - ], + "required": ["type", "protocol", "version", "security"], "type": "object" }, "SerializerType": { "title": "SerializerType", - "enum": [ - "JSON", - "XML", - "PROTOBUF3" - ], + "enum": ["JSON", "XML", "PROTOBUF3"], "type": "string", "description": "The enumeration represents types of serializers", - "examples": [ - "JSON" - ] + "examples": ["JSON"] }, "SecurityInfo": { "title": "SecurityInfo", @@ -3205,10 +2988,7 @@ }, "SecurityInfo.OAuth2Info": { "title": "SecurityInfo.OAuth2Info", - "required": [ - "grantTypes", - "tokenEndpoint" - ], + "required": ["grantTypes", "tokenEndpoint"], "type": "object", "properties": { "grantTypes": { @@ -3223,9 +3003,7 @@ "tokenEndpoint": { "type": "string", "description": "The token endpoint", - "examples": [ - "/mecSerMgmtApi/security/TokenEndPoint" - ] + "examples": ["/mecSerMgmtApi/security/TokenEndPoint"] } }, "description": "Parameters related to use of OAuth 2.0" @@ -3240,9 +3018,7 @@ ], "type": "string", "description": "OAuth 2.0 grant type", - "examples": [ - "OAUTH2_CLIENT_CREDENTIALS" - ] + "examples": ["OAUTH2_CLIENT_CREDENTIALS"] }, "TransportType": { "title": "TransportType", @@ -3257,9 +3033,7 @@ ], "type": "string", "description": "The enumeration TransportType represents types of transports", - "examples": [ - "REST_HTTP" - ] + "examples": ["REST_HTTP"] }, "FeatureDependency": { "properties": { @@ -3272,10 +3046,7 @@ "type": "string" } }, - "required": [ - "featureName", - "version" - ], + "required": ["featureName", "version"], "type": "object" }, "AppProfile": { @@ -3294,9 +3065,7 @@ "easId": { "description": "The identifier of the EAS", "type": "string", - "examples": [ - "appName" - ] + "examples": ["appName"] }, "endPt": { "description": "The version of the feature.", @@ -3326,9 +3095,7 @@ "provId": { "type": "string", "description": "Identifier of the ASP that provides the EAS.", - "examples": [ - "appProvider1" - ] + "examples": ["appProvider1"] }, "type": { "description": "The category or type of EAS.", @@ -3386,9 +3153,7 @@ "type": "integer", "description": "The period indicating to the EES, how often the EES needs to check the EAS's availability after a successful registration.", "contentEncoding": "int32", - "examples": [ - 1577836800 - ] + "examples": [1577836800] }, "status": { "type": "string", @@ -3409,8 +3174,5 @@ "required": true } } - }, - "security": [ - {} - ] + } } \ No newline at end of file diff --git a/MecAppSupportApi.yaml b/MecAppSupportApi.yaml index f2f912f..9e1146c 100644 --- a/MecAppSupportApi.yaml +++ b/MecAppSupportApi.yaml @@ -62,48 +62,71 @@ paths: description: '' examples: - - trafficRuleId: TrafficRule123 - serName: ExampleService filterType: FLOW priority: 1 trafficFilter: - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' dstPort: - '80' action: FORWARD_DECAPSULATED dstInterface: - - dstInterface0: null + - dstInterface: null interfaceType: IP + tunnelInfo: tunnel dstIpAddress: 20.1.1.1 - - dstInterface1: null - interfaceType: IP - dstIpAddress: 20.1.1.2 state: ACTIVE contentMediaType: application/json examples: - TrafficRules: - value: + - TrafficRule: - trafficRuleId: TrafficRule123 - serName: ExampleService filterType: FLOW priority: 1 trafficFilter: - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' dstPort: - '80' action: FORWARD_DECAPSULATED dstInterface: - - dstInterface0: null + - dstInterface: null interfaceType: IP + tunnelInfo: tunnel dstIpAddress: 20.1.1.1 state: ACTIVE + - trafficRuleId: TrafficRule456 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.104/32 + - 192.127.4.105/32 + dstAddress: + - 192.127.4.106/32 + - 192.127.4.107/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.2 + state: ACTIVE '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -180,24 +203,26 @@ paths: schema: $ref: '#/components/schemas/TrafficRule' examples: - TrafficRule: - value: + - TrafficRule: trafficRuleId: TrafficRule123 - serName: ExampleService filterType: FLOW priority: 1 trafficFilter: - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' dstPort: - '80' action: FORWARD_DECAPSULATED dstInterface: - - dstInterface0: null + - dstInterface: null interfaceType: IP + tunnelInfo: tunnel dstIpAddress: 20.1.1.1 state: ACTIVE '400': @@ -284,24 +309,27 @@ paths: schema: $ref: '#/components/schemas/TrafficRule' examples: - TrafficRule: - value: + - TrafficRule: trafficRuleId: TrafficRule123 serName: ExampleService filterType: FLOW priority: 1 trafficFilter: - srcAddress: - - 192.168.2.0/24 - - 192.168.3.0/24 - dstAddress: - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' dstPort: - '80' action: FORWARD_DECAPSULATED dstInterface: - dstInterface0: null interfaceType: IP + tunnelInfo: tunnel dstIpAddress: 20.1.1.1 state: ACTIVE '400': @@ -405,8 +433,7 @@ paths: state: INACTIVE contentMediaType: application/json examples: - DnsRules: - value: + - DnsRules: - dnsRuleId: DnsRule1 domainName: www.example.com ipAddressType: IP_V4 @@ -495,8 +522,7 @@ paths: schema: $ref: '#/components/schemas/DnsRule' examples: - DnsRule: - value: + - DnsRule: dnsRuleId: DnsRule1 domainName: www.example.com ipAddressType: IP_V4 @@ -582,8 +608,7 @@ paths: schema: $ref: '#/components/schemas/DnsRule' examples: - DnsRule: - value: + - DnsRule: dnsRuleId: DnsRule1 domainName: www.example.com ipAddressType: IP_V4 @@ -2360,12 +2385,12 @@ components: type: string description: Destination address of the tunnel examples: - - '?' + - '192.127.4.100/32' tunnelSrcAddress: type: string description: Source address of the tunnel examples: - - '?' + - '192.127.4.101/32' description: This type represents the tunnel information. TimeSourceStatus: title: TimeSourceStatus @@ -2732,6 +2757,4 @@ components: application/json: schema: $ref: '#/components/schemas/AppTerminationNotification' - required: true -security: - - {} + required: true \ No newline at end of file diff --git a/MecServiceMgmtApi.json b/MecServiceMgmtApi.json index ed5e59b..90f84be 100644 --- a/MecServiceMgmtApi.json +++ b/MecServiceMgmtApi.json @@ -50,9 +50,7 @@ "paths": { "/applications/{appInstanceId}/subscriptions": { "get": { - "tags": [ - "appSubscriptions" - ], + "tags": ["appSubscriptions"], "summary": "Get subscriptions", "description": "The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains entity body with all the subscriptions for the requestor.", "operationId": "ApplicationsSubscriptions_GET", @@ -131,9 +129,7 @@ "deprecated": false }, "post": { - "tags": [ - "appSubscriptions" - ], + "tags": ["appSubscriptions"], "summary": "Create subscription", "description": "The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains entity body describing the created subscription.", "operationId": "ApplicationsSubscriptions_POST", @@ -241,9 +237,7 @@ "description": "'Represents the service availability information that is used in the following cases\n when the MEC platform announces the newly available\nservices to the authorized relevant MEC applications (e.g. the applications that indicate the services as \"optional\" or \"required\") that are subscribed to the corresponding service availability notifications when the MEC platform notifies the authorized relevant applications that are subscribed to the corresponding service availability notifications about the service availability changes.'", "operationId": "ServiceAvailabilityNotification_POST", "summary": "Create callback", - "tags": [ - "callbacks" - ], + "tags": ["callbacks"], "requestBody": { "$ref": "#/components/requestBodies/ServiceAvailabilityNotification" }, @@ -261,9 +255,7 @@ }, "/applications/{appInstanceId}/subscriptions/{subscriptionId}": { "get": { - "tags": [ - "appSubscriptions" - ], + "tags": ["appSubscriptions"], "summary": "Get subscription", "description": "The GET method requests information about a subscription for this requestor. Upon success, the response contains message content with the subscription for the requestor.", "operationId": "ApplicationsSubscription_GET", @@ -352,9 +344,7 @@ "deprecated": false }, "delete": { - "tags": [ - "appSubscriptions" - ], + "tags": ["appSubscriptions"], "summary": "delete subscription", "description": "This method deletes a mecSrvMgmtSubscription. This method is typically used in \"Unsubscribing from service availability event notifications\" procedure.", "operationId": "ApplicationsSubscription_DELETE", @@ -422,9 +412,7 @@ }, "/applications/{appInstanceId}/services": { "get": { - "tags": [ - "appServices" - ], + "tags": ["appServices"], "summary": "get services", "description": "This method retrieves information about a list of mecService resources. This method is typically used in \"service availability query\" procedure", "operationId": "AppServices_GET", @@ -548,62 +536,70 @@ }, "security": { "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } }, - "serializer": "JSON" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } } ] ], "contentMediaType": "application/json" }, - "examples": { - "ServiceInfoList": { - "value": [ - { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "addresses": [ - { - "host": "192.0.2.0", - "port": 8080 + "examples": [ + { + "ServiceInfoList": { + "value": [ + { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.0", + "port": 8080 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } - ] + } }, - "security": { - "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" } } - }, - "serializer": "JSON" - } - ] + } + ] + } } - } + ] } } }, @@ -676,9 +672,7 @@ "deprecated": false }, "post": { - "tags": [ - "appServices" - ], + "tags": ["appServices"], "summary": "create service", "description": "This method is used to create a mecService resource. This method is typically used in \"service availability update and new service registration\" procedure", "operationId": "AppServices_POST", @@ -736,44 +730,47 @@ "schema": { "$ref": "#/components/schemas/ServiceInfo" }, - "examples": { - "ServiceInfo": { - "value": { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "uris": [ - "/mecSerMgmtApi/service/EntryPoint" - ] + "examples": [ + { + "ServiceInfo": { + "value": { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" }, - "security": { - "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "uris": ["/mecSerMgmtApi/service/EntryPoint"] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" } } - }, - "serializer": "JSON" + } } } - } + ] } } }, @@ -831,9 +828,7 @@ }, "/applications/{appInstanceId}/services/{serviceId}": { "get": { - "tags": [ - "appServices" - ], + "tags": ["appServices"], "summary": "get service", "description": "This method retrieves information about a mecService resource. This method is typically used in \"service availability query\" procedure", "operationId": "AppServicesServiceId_GET", @@ -868,44 +863,47 @@ "schema": { "$ref": "#/components/schemas/ServiceInfo" }, - "examples": { - "ServiceInfo": { - "value": { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "uris": [ - "/mecSerMgmtApi/service/EntryPoint" - ] + "examples": [ + { + "ServiceInfo": { + "value": { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "uris": ["/mecSerMgmtApi/service/EntryPoint"] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } }, - "security": { - "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" } } - }, - "serializer": "JSON" + } } } - } + ] } } }, @@ -960,9 +958,7 @@ "deprecated": false }, "put": { - "tags": [ - "appServices" - ], + "tags": ["appServices"], "summary": "update service", "description": "This method updates the information about a mecService resource", "operationId": "AppServicesServiceId_PUT", @@ -1008,44 +1004,47 @@ "schema": { "$ref": "#/components/schemas/ServiceInfo" }, - "examples": { - "ServiceInfo": { - "value": { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "uris": [ - "/mecSerMgmtApi/service/EntryPoint" - ] + "examples": [ + { + "ServiceInfo": { + "value": { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" }, - "security": { - "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "uris": ["/mecSerMgmtApi/service/EntryPoint"] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" } } - }, - "serializer": "JSON" + } } } - } + ] } } }, @@ -1118,9 +1117,7 @@ "deprecated": false }, "delete": { - "tags": [ - "appServices" - ], + "tags": ["appServices"], "summary": "delete service", "description": "This method deletes a mecService resource. This method is typically used in the service deregistration procedure. ", "operationId": "AppServicesServiceId_DELETE", @@ -1188,9 +1185,7 @@ }, "/services": { "get": { - "tags": [ - "services" - ], + "tags": ["services"], "summary": "get services", "description": "This method retrieves information about a list of mecService resources. This method is typically used in \"service availability query\" procedure", "operationId": "Services_GET", @@ -1304,22 +1299,25 @@ }, "security": { "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } }, - "serializer": "JSON" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } } ] ], "contentMediaType": "application/json" }, - "examples": { - "ServiceInfoList": { - "value": [ + "examples": [ + { + "ServiceInfoList": [ { "serInstanceId": "ServiceInstance123", "serName": "ExampleService", @@ -1348,18 +1346,61 @@ }, "security": { "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } + }, + { + "serInstanceId": "ServiceInstance345", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.1", + "port": 8080 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } }, - "serializer": "JSON" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } } ] } - } + ] } } }, @@ -1435,9 +1476,7 @@ }, "/services/{serviceId}": { "get": { - "tags": [ - "services" - ], + "tags": ["services"], "summary": "get service", "description": "This method retrieves information about a mecService resource. This method is typically used in \"service availability query\" procedure", "operationId": "ServicesServiceId_GET", @@ -1463,44 +1502,47 @@ "schema": { "$ref": "#/components/schemas/ServiceInfo" }, - "examples": { - "ServiceInfo": { - "value": { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "uris": [ - "/mecSerMgmtApi/service/EntryPoint" - ] + "examples": [ + { + "ServiceInfo": { + "value": { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "uris": ["/mecSerMgmtApi/service/EntryPoint"] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } }, - "security": { - "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" } } - }, - "serializer": "JSON" + } } } - } + ] } } }, @@ -1558,9 +1600,7 @@ }, "/transports": { "get": { - "tags": [ - "transports" - ], + "tags": ["transports"], "summary": "Get transports", "description": "This method retrieves information about a list of available transports. This method is typically used by a service-producing application to discover transports provided by the MEC platform in the \"transport information query\" procedure", "operationId": "Transports_GET", @@ -1636,9 +1676,7 @@ }, "/resource_uri_allocated_by_MEC_platform": { "get": { - "tags": [ - "individualMECservice" - ], + "tags": ["individualMECservice"], "summary": "get mecServiceLiveness", "description": "This method retrieves information about an \"Individual mecServiceLiveness\" resource", "operationId": "get_individual_MEC_service", @@ -1686,9 +1724,7 @@ } }, "patch": { - "tags": [ - "individualMECservice" - ], + "tags": ["individualMECservice"], "summary": "Update mecServiceLiveness", "description": "This method updates a resource on top of the existing resource state with partial changes described by the client.", "operationId": "patch_individual_MEC_service", @@ -1777,76 +1813,54 @@ "schemas": { "CategoryRef": { "title": "CategoryRef", - "required": [ - "href", - "id", - "name", - "version" - ], + "required": ["href", "id", "name", "version"], "type": "object", "properties": { "href": { "type": "string", "description": "Reference of the catalogue", - "examples": [ - "/example/catalogue1" - ] + "examples": ["/example/catalogue1"] }, "id": { "type": "string", "description": "Unique identifier of the category", - "examples": [ - "id12345" - ] + "examples": ["id12345"] }, "name": { "type": "string", "description": "Name of the category, example values include RNI, Location & Bandwidth Management", - "examples": [ - "RNI" - ] + "examples": ["RNI"] }, "version": { "type": "string", "description": "Category version", - "examples": [ - "version1" - ] + "examples": ["version1"] } }, "description": "This type represents the category reference" }, "EndPointInfo.Address": { "title": "EndPointInfo.Address", - "required": [ - "host", - "port" - ], + "required": ["host", "port"], "type": "object", "properties": { "host": { "type": "string", "description": "Host portion of the address", - "examples": [ - "192.0.2.0" - ] + "examples": ["192.0.2.0"] }, "port": { "type": "integer", "description": "Port portion of the address", "contentEncoding": "int32", - "examples": [ - 8080 - ] + "examples": [8080] } }, "description": "A IP address and port pair" }, "EndPointInfo.Addresses": { "title": "EndPointInfo.Addresses", - "required": [ - "addresses" - ], + "required": ["addresses"], "type": "object", "properties": { "addresses": { @@ -1861,9 +1875,7 @@ }, "EndPointInfo.Alternative": { "title": "EndPointInfo.Alternative", - "required": [ - "alternative" - ], + "required": ["alternative"], "type": "object", "properties": { "alternative": { @@ -1875,9 +1887,7 @@ }, "EndPointInfo.Uris": { "title": "EndPointInfo.Uris", - "required": [ - "uris" - ], + "required": ["uris"], "type": "object", "properties": { "uris": { @@ -1892,9 +1902,7 @@ }, "EndPointInfo.Fqdn": { "title": "EndPointInfo.Fqdn", - "required": [ - "fqdn" - ], + "required": ["fqdn"], "type": "object", "properties": { "fqdn": { @@ -1914,18 +1922,14 @@ "href": { "type": "string", "description": "URI referring to a resource", - "examples": [ - "/mecSerMgmtApi/example" - ] + "examples": ["/mecSerMgmtApi/example"] } }, "description": "This type represents a type of link and may be referenced from data structures" }, "MecServiceMgmtApiSubscriptionLinkList.Links": { "title": "MecServiceMgmtApiSubscriptionLinkList.Links", - "required": [ - "self" - ], + "required": ["self"], "type": "object", "properties": { "self": { @@ -1943,18 +1947,13 @@ }, "MecServiceMgmtApiSubscriptionLinkList.Subscription": { "title": "MecServiceMgmtApiSubscriptionLinkList.Subscription", - "required": [ - "href", - "rel" - ], + "required": ["href", "rel"], "type": "object", "properties": { "href": { "type": "string", "description": "URI referring to a resource", - "examples": [ - "/mecSerMgmtApi/example" - ] + "examples": ["/mecSerMgmtApi/example"] }, "rel": { "type": "string", @@ -1965,9 +1964,7 @@ }, "MecServiceMgmtApiSubscriptionLinkList": { "title": "MecServiceMgmtApiSubscriptionLinkList", - "required": [ - "_links" - ], + "required": ["_links"], "type": "object", "properties": { "_links": { @@ -2013,16 +2010,11 @@ ], "type": "string", "description": "OAuth 2.0 grant type", - "examples": [ - "OAUTH2_CLIENT_CREDENTIALS" - ] + "examples": ["OAUTH2_CLIENT_CREDENTIALS"] }, "SecurityInfo.OAuth2Info": { "title": "SecurityInfo.OAuth2Info", - "required": [ - "grantTypes", - "tokenEndpoint" - ], + "required": ["grantTypes", "tokenEndpoint"], "type": "object", "properties": { "grantTypes": { @@ -2037,9 +2029,7 @@ "tokenEndpoint": { "type": "string", "description": "The token endpoint", - "examples": [ - "/mecSerMgmtApi/security/TokenEndPoint" - ] + "examples": ["/mecSerMgmtApi/security/TokenEndPoint"] } }, "description": "Parameters related to use of OAuth 2.0" @@ -2056,9 +2046,7 @@ }, "Self": { "title": "Self", - "required": [ - "self" - ], + "required": ["self"], "type": "object", "properties": { "self": { @@ -2069,19 +2057,13 @@ }, "SerAvailabilityNotificationSubscription": { "title": "SerAvailabilityNotificationSubscription", - "required": [ - "subscriptionType", - "callbackReference", - "_links" - ], + "required": ["subscriptionType", "callbackReference", "_links"], "type": "object", "properties": { "subscriptionType": { "type": "string", "description": "Shall be set to SerAvailabilityNotificationSubscription.", - "examples": [ - "SerAvailabilityNotificationSubscription" - ] + "examples": ["SerAvailabilityNotificationSubscription"] }, "callbackReference": { "type": "string", @@ -2131,28 +2113,20 @@ "isLocal": { "type": "boolean", "description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.", - "examples": [ - true - ] + "examples": [true] } }, "description": "Filtering criteria to match services for which events are requested to be reported. If absent, matches all services. All child attributes are combined with the logical \"AND\" operation." }, "ServiceAvailabilityNotification": { "title": "ServiceAvailabilityNotification", - "required": [ - "notificationType", - "serviceReferences", - "_links" - ], + "required": ["notificationType", "serviceReferences", "_links"], "type": "object", "properties": { "notificationType": { "type": "string", "description": "Shall be set to SerAvailabilityNotificationSubscription.", - "examples": [ - "SerAvailabilityNotificationSubscription" - ] + "examples": ["SerAvailabilityNotificationSubscription"] }, "serviceReferences": { "type": "array", @@ -2169,12 +2143,7 @@ }, "ServiceAvailabilityNotification.ServiceReferences": { "title": "ServiceAvailabilityNotification.ServiceReferences", - "required": [ - "serName", - "serInstanceId", - "state", - "changeType" - ], + "required": ["serName", "serInstanceId", "state", "changeType"], "type": "object", "properties": { "link": { @@ -2183,16 +2152,12 @@ "serName": { "type": "string", "description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.", - "examples": [ - "ExampleService" - ] + "examples": ["ExampleService"] }, "serInstanceId": { "type": "string", "description": "Identifier of the service instance assigned by the MEC platform.", - "examples": [ - "ServiceInstance123" - ] + "examples": ["ServiceInstance123"] }, "state": { "$ref": "#/components/schemas/ServiceState" @@ -2205,30 +2170,17 @@ }, "ServiceAvailabilityNotification.ChangeType": { "title": "ServiceAvailabilityNotification.ChangeType", - "enum": [ - "ADDED", - "REMOVED", - "STATE_CHANGED", - "ATTRIBUTES_CHANGED" - ], + "enum": ["ADDED", "REMOVED", "STATE_CHANGED", "ATTRIBUTES_CHANGED"], "type": "string", "description": "Type of the change. Valid values:\n 1. ADDED: The service was newly added.\n 2. REMOVED: The service was removed.\n 3. STATE_CHANGED: Only the state of the service was changed. \n 4. ATTRIBUTES_CHANGED: At least one attribute of the service other than state was changed. The change may or may not include changing the state.", - "examples": [ - "ADDED" - ] + "examples": ["ADDED"] }, "SerializerType": { "title": "SerializerType", - "enum": [ - "JSON", - "XML", - "PROTOBUF3" - ], + "enum": ["JSON", "XML", "PROTOBUF3"], "type": "string", "description": "The enumeration represents types of serializers", - "examples": [ - "JSON" - ] + "examples": ["JSON"] }, "LocalityType": { "title": "LocalityType", @@ -2242,22 +2194,14 @@ ], "type": "string", "description": "The scope of locality as expressed by \"consumedLocalOnly\" and \"isLocal\". If absent, defaults to MEC_HOST", - "examples": [ - "MEC_SYSTEM" - ] + "examples": ["MEC_SYSTEM"] }, "ServiceState": { "title": "ServiceState", - "enum": [ - "ACTIVE", - "INACTIVE", - "SUSPENDED" - ], + "enum": ["ACTIVE", "INACTIVE", "SUSPENDED"], "type": "string", "description": "This enumeration defines the possible states of a service.", - "examples": [ - "ACTIVE" - ] + "examples": ["ACTIVE"] }, "ServiceInfo": { "title": "ServiceInfo", @@ -2273,16 +2217,12 @@ "serInstanceId": { "type": "string", "description": "Identifier of the service instance assigned by the MEC platform.", - "examples": [ - "ServiceInstance123" - ] + "examples": ["ServiceInstance123"] }, "serName": { "type": "string", "description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.", - "examples": [ - "ExampleService" - ] + "examples": ["ExampleService"] }, "serCategory": { "$ref": "#/components/schemas/CategoryRef" @@ -2290,9 +2230,7 @@ "version": { "type": "string", "description": "Service version", - "examples": [ - "ServiceVersion1" - ] + "examples": ["ServiceVersion1"] }, "state": { "$ref": "#/components/schemas/ServiceState" @@ -2300,9 +2238,7 @@ "transportId": { "type": "string", "description": "Identifier of the platform-provided transport to be used by the service. Valid identifiers may be obtained using the \"Transport information query\" procedure. May be present in POST requests to signal the use of a platform-provided transport for the service, and shall be absent otherwise. See note 2.", - "examples": [ - "transportId1" - ] + "examples": ["transportId1"] }, "transportInfo": { "$ref": "#/components/schemas/TransportInfo" @@ -2316,16 +2252,12 @@ "consumedLocalOnly": { "type": "boolean", "description": "Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance.", - "examples": [ - false - ] + "examples": [false] }, "isLocal": { "type": "boolean", "description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.", - "examples": [ - true - ] + "examples": [true] }, "livenessInterval": { "type": "integer", @@ -2333,9 +2265,7 @@ }, "_links": { "type": "object", - "required": [ - "self" - ], + "required": ["self"], "properties": { "self": { "$ref": "#/components/schemas/LinkType" @@ -2351,11 +2281,7 @@ }, "ServiceLivenessInfo": { "type": "object", - "required": [ - "state", - "timeStamp", - "interval" - ], + "required": ["state", "timeStamp", "interval"], "properties": { "state": { "$ref": "#/components/schemas/ServiceState" @@ -2363,10 +2289,7 @@ "timeStamp": { "type": "object", "description": "The time when the last \"heartbeat\" message was received by MEC platform", - "required": [ - "seconds", - "nanoSeconds" - ], + "required": ["seconds", "nanoSeconds"], "properties": { "seconds": { "type": "integer" @@ -2384,9 +2307,7 @@ }, "ServiceLivenessUpdate": { "type": "object", - "required": [ - "state" - ], + "required": ["state"], "properties": { "state": { "$ref": "#/components/schemas/ServiceState" @@ -2395,9 +2316,7 @@ }, "Subscription": { "title": "Subscription", - "required": [ - "subscription" - ], + "required": ["subscription"], "type": "object", "properties": { "subscription": { @@ -2422,23 +2341,17 @@ "id": { "type": "string", "description": "The identifier of this transport", - "examples": [ - "TransId12345" - ] + "examples": ["TransId12345"] }, "name": { "type": "string", "description": "The name of this transport", - "examples": [ - "REST" - ] + "examples": ["REST"] }, "description": { "type": "string", "description": "Human-readable description of this transport", - "examples": [ - "REST API" - ] + "examples": ["REST API"] }, "type": { "$ref": "#/components/schemas/TransportType" @@ -2446,16 +2359,12 @@ "protocol": { "type": "string", "description": "The name of the protocol used. Shall be set to HTTP for a REST API.", - "examples": [ - "HTTP" - ] + "examples": ["HTTP"] }, "version": { "type": "string", "description": "The version of the protocol used", - "examples": [ - "2.0" - ] + "examples": ["2.0"] }, "endpoint": { "oneOf": [ @@ -2498,9 +2407,7 @@ ], "type": "string", "description": "The enumeration TransportType represents types of transports", - "examples": [ - "REST_HTTP" - ] + "examples": ["REST_HTTP"] } }, "requestBodies": { @@ -2515,8 +2422,5 @@ "required": true } } - }, - "security": [ - {} - ] + } } \ No newline at end of file diff --git a/MecServiceMgmtApi.yaml b/MecServiceMgmtApi.yaml index bbdb072..93c6f00 100644 --- a/MecServiceMgmtApi.yaml +++ b/MecServiceMgmtApi.yaml @@ -466,36 +466,42 @@ paths: - OAUTH2_CLIENT_CREDENTIALS tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint serializer: JSON + _links: + self: + href: http://example.com/ contentMediaType: application/json examples: - ServiceInfoList: - value: - - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.0 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON + - ServiceInfoList: + value: + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -602,33 +608,36 @@ paths: schema: $ref: '#/components/schemas/ServiceInfo' examples: - ServiceInfo: - value: - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - uris: - - /mecSerMgmtApi/service/EntryPoint - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON + - ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -705,33 +714,36 @@ paths: schema: $ref: '#/components/schemas/ServiceInfo' examples: - ServiceInfo: - value: - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - uris: - - /mecSerMgmtApi/service/EntryPoint - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON + - ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -813,33 +825,36 @@ paths: schema: $ref: '#/components/schemas/ServiceInfo' examples: - ServiceInfo: - value: - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - uris: - - /mecSerMgmtApi/service/EntryPoint - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON + - ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -1064,10 +1079,12 @@ paths: - OAUTH2_CLIENT_CREDENTIALS tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint serializer: JSON + _links: + self: + href: http://example.com/ contentMediaType: application/json examples: - ServiceInfoList: - value: + - ServiceInfoList: - serInstanceId: ServiceInstance123 serName: ExampleService serCategory: @@ -1094,6 +1111,38 @@ paths: - OAUTH2_CLIENT_CREDENTIALS tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint serializer: JSON + _links: + self: + href: http://example.com/ + - serInstanceId: ServiceInstance345 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.1 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -1177,33 +1226,36 @@ paths: schema: $ref: '#/components/schemas/ServiceInfo' examples: - ServiceInfo: - value: - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - uris: - - /mecSerMgmtApi/service/EntryPoint - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON + - ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -2033,6 +2085,4 @@ components: application/json: schema: $ref: '#/components/schemas/ServiceAvailabilityNotification' - required: true -security: - - {} + required: true \ No newline at end of file -- GitLab From 503df83b56742c288af147238d8b90bf3ca0b403 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Wed, 18 Jan 2023 17:42:51 +0500 Subject: [PATCH 04/17] fix examples in MEC011 APIs --- MecAppSupportApi.json | 160 ++++++++-------- MecAppSupportApi.yaml | 112 +++++------ MecServiceMgmtApi.json | 426 ++++++++++++++++++++++------------------- MecServiceMgmtApi.yaml | 374 +++++++++++++++++++----------------- 4 files changed, 569 insertions(+), 503 deletions(-) diff --git a/MecAppSupportApi.json b/MecAppSupportApi.json index 3693d41..eb2f876 100644 --- a/MecAppSupportApi.json +++ b/MecAppSupportApi.json @@ -121,66 +121,68 @@ }, "examples": [ { - "TrafficRule": [ - { - "trafficRuleId": "TrafficRule123", - "filterType": "FLOW", - "priority": 1, - "trafficFilter": [ - { - "srcAddress": [ - "192.127.4.100/32", - "192.127.4.101/32" - ], - "dstAddress": [ - "192.127.4.102/32", - "192.127.4.103/32" - ], - "srcPort": ["80"], - "dstPort": ["80"] - } - ], - "action": "FORWARD_DECAPSULATED", - "dstInterface": [ - { - "dstInterface": null, - "interfaceType": "IP", - "tunnelInfo": "tunnel", - "dstIpAddress": "20.1.1.1" - } - ], - "state": "ACTIVE" - }, - { - "trafficRuleId": "TrafficRule456", - "filterType": "FLOW", - "priority": 1, - "trafficFilter": [ - { - "srcAddress": [ - "192.127.4.104/32", - "192.127.4.105/32" - ], - "dstAddress": [ - "192.127.4.106/32", - "192.127.4.107/32" - ], - "srcPort": ["80"], - "dstPort": ["80"] - } - ], - "action": "FORWARD_DECAPSULATED", - "dstInterface": [ - { - "dstInterface": null, - "interfaceType": "IP", - "tunnelInfo": "tunnel", - "dstIpAddress": "20.1.1.2" - } - ], - "state": "ACTIVE" - } - ] + "TrafficRule": { + "value": [ + { + "trafficRuleId": "TrafficRule123", + "filterType": "FLOW", + "priority": 1, + "trafficFilter": [ + { + "srcAddress": [ + "192.127.4.100/32", + "192.127.4.101/32" + ], + "dstAddress": [ + "192.127.4.102/32", + "192.127.4.103/32" + ], + "srcPort": ["80"], + "dstPort": ["80"] + } + ], + "action": "FORWARD_DECAPSULATED", + "dstInterface": [ + { + "dstInterface": null, + "interfaceType": "IP", + "tunnelInfo": "tunnel", + "dstIpAddress": "20.1.1.1" + } + ], + "state": "ACTIVE" + }, + { + "trafficRuleId": "TrafficRule456", + "filterType": "FLOW", + "priority": 1, + "trafficFilter": [ + { + "srcAddress": [ + "192.127.4.104/32", + "192.127.4.105/32" + ], + "dstAddress": [ + "192.127.4.106/32", + "192.127.4.107/32" + ], + "srcPort": ["80"], + "dstPort": ["80"] + } + ], + "action": "FORWARD_DECAPSULATED", + "dstInterface": [ + { + "dstInterface": null, + "interfaceType": "IP", + "tunnelInfo": "tunnel", + "dstIpAddress": "20.1.1.2" + } + ], + "state": "ACTIVE" + } + ] + } } ] } @@ -569,24 +571,26 @@ }, "examples": [ { - "DnsRules": [ - { - "dnsRuleId": "DnsRule1", - "domainName": "www.example.com", - "ipAddressType": "IP_V4", - "ipAddress": "146.241.7.3", - "ttl": 300, - "state": "ACTIVE" - }, - { - "dnsRuleId": "DnsRule2", - "domainName": "www.example.com", - "ipAddressType": "IP_V4", - "ipAddress": "146.241.7.4", - "ttl": 300, - "state": "INACTIVE" - } - ] + "DnsRules": { + "value": [ + { + "dnsRuleId": "DnsRule1", + "domainName": "www.example.com", + "ipAddressType": "IP_V4", + "ipAddress": "146.241.7.3", + "ttl": 300, + "state": "ACTIVE" + }, + { + "dnsRuleId": "DnsRule2", + "domainName": "www.example.com", + "ipAddressType": "IP_V4", + "ipAddress": "146.241.7.4", + "ttl": 300, + "state": "INACTIVE" + } + ] + } } ] } diff --git a/MecAppSupportApi.yaml b/MecAppSupportApi.yaml index 9e1146c..1cee663 100644 --- a/MecAppSupportApi.yaml +++ b/MecAppSupportApi.yaml @@ -84,49 +84,50 @@ paths: state: ACTIVE contentMediaType: application/json examples: - - TrafficRule: - - trafficRuleId: TrafficRule123 - filterType: FLOW - priority: 1 - trafficFilter: - - srcAddress: - - 192.127.4.100/32 - - 192.127.4.101/32 - dstAddress: - - 192.127.4.102/32 - - 192.127.4.103/32 - srcPort: - - '80' - dstPort: - - '80' - action: FORWARD_DECAPSULATED - dstInterface: - - dstInterface: null - interfaceType: IP - tunnelInfo: tunnel - dstIpAddress: 20.1.1.1 - state: ACTIVE - - trafficRuleId: TrafficRule456 - filterType: FLOW - priority: 1 - trafficFilter: - - srcAddress: - - 192.127.4.104/32 - - 192.127.4.105/32 - dstAddress: - - 192.127.4.106/32 - - 192.127.4.107/32 - srcPort: - - '80' - dstPort: - - '80' - action: FORWARD_DECAPSULATED - dstInterface: - - dstInterface: null - interfaceType: IP - tunnelInfo: tunnel - dstIpAddress: 20.1.1.2 - state: ACTIVE + - TrafficRules: + value: + - trafficRuleId: TrafficRule123 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.1 + state: ACTIVE + - trafficRuleId: TrafficRule456 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.104/32 + - 192.127.4.105/32 + dstAddress: + - 192.127.4.106/32 + - 192.127.4.107/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.2 + state: ACTIVE '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -434,18 +435,19 @@ paths: contentMediaType: application/json examples: - DnsRules: - - dnsRuleId: DnsRule1 - domainName: www.example.com - ipAddressType: IP_V4 - ipAddress: 146.241.7.3 - ttl: 300 - state: ACTIVE - - dnsRuleId: DnsRule2 - domainName: www.example.com - ipAddressType: IP_V4 - ipAddress: 146.241.7.4 - ttl: 300 - state: INACTIVE + value: + - dnsRuleId: DnsRule1 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.3 + ttl: 300 + state: ACTIVE + - dnsRuleId: DnsRule2 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.4 + ttl: 300 + state: INACTIVE '400': description: >- Bad Request. It is used to indicate that incorrect parameters were diff --git a/MecServiceMgmtApi.json b/MecServiceMgmtApi.json index 90f84be..5b5e4cd 100644 --- a/MecServiceMgmtApi.json +++ b/MecServiceMgmtApi.json @@ -595,6 +595,46 @@ "href": "http://example.com/" } } + }, + { + "serInstanceId": "ServiceInstance345", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.1", + "port": 8080 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } } ] } @@ -733,40 +773,38 @@ "examples": [ { "ServiceInfo": { - "value": { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "uris": ["/mecSerMgmtApi/service/EntryPoint"] - }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" - } - } + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "uris": ["/mecSerMgmtApi/service/EntryPoint"] }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } + }, + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } } } } @@ -866,40 +904,38 @@ "examples": [ { "ServiceInfo": { - "value": { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "uris": ["/mecSerMgmtApi/service/EntryPoint"] }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "uris": ["/mecSerMgmtApi/service/EntryPoint"] - }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" - } - } - }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } + }, + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } } } } @@ -1007,40 +1043,38 @@ "examples": [ { "ServiceInfo": { - "value": { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "uris": ["/mecSerMgmtApi/service/EntryPoint"] - }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" - } - } + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "uris": ["/mecSerMgmtApi/service/EntryPoint"] }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } + }, + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } } } } @@ -1317,88 +1351,90 @@ }, "examples": [ { - "ServiceInfoList": [ - { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "addresses": [ - { - "host": "192.0.2.0", - "port": 8080 + "ServiceInfoList": { + "value": [ + { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.0", + "port": 8080 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } - ] + } }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" } } }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" - } - } - }, - { - "serInstanceId": "ServiceInstance345", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "addresses": [ - { - "host": "192.0.2.1", - "port": 8080 + { + "serInstanceId": "ServiceInstance345", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.1", + "port": 8080 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } - ] + } }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" } } - }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" - } } - } - ] + ] + } } ] } @@ -1505,40 +1541,38 @@ "examples": [ { "ServiceInfo": { - "value": { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "uris": ["/mecSerMgmtApi/service/EntryPoint"] - }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" - } - } + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "uris": ["/mecSerMgmtApi/service/EntryPoint"] }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } + }, + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } } } } diff --git a/MecServiceMgmtApi.yaml b/MecServiceMgmtApi.yaml index 93c6f00..e48b39e 100644 --- a/MecServiceMgmtApi.yaml +++ b/MecServiceMgmtApi.yaml @@ -502,6 +502,35 @@ paths: _links: self: href: http://example.com/ + - serInstanceId: ServiceInstance345 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.1 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -609,35 +638,34 @@ paths: $ref: '#/components/schemas/ServiceInfo' examples: - ServiceInfo: - value: - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - uris: - - /mecSerMgmtApi/service/EntryPoint - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -715,35 +743,34 @@ paths: $ref: '#/components/schemas/ServiceInfo' examples: - ServiceInfo: - value: - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - uris: - - /mecSerMgmtApi/service/EntryPoint - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -826,35 +853,34 @@ paths: $ref: '#/components/schemas/ServiceInfo' examples: - ServiceInfo: - value: - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - uris: - - /mecSerMgmtApi/service/EntryPoint - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -1085,64 +1111,65 @@ paths: contentMediaType: application/json examples: - ServiceInfoList: - - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.0 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ - - serInstanceId: ServiceInstance345 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.1 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ + value: + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + - serInstanceId: ServiceInstance345 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.1 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -1227,35 +1254,34 @@ paths: $ref: '#/components/schemas/ServiceInfo' examples: - ServiceInfo: - value: - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - uris: - - /mecSerMgmtApi/service/EntryPoint - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were -- GitLab From a3eabd54e6473e0435e346d9d94039711406a681 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Wed, 18 Jan 2023 17:54:40 +0500 Subject: [PATCH 05/17] fix examples and identation in MEC011 APIs --- MecAppSupportApi.json | 154 ++++++++++---------- MecAppSupportApi.yaml | 114 ++++++++------- MecServiceMgmtApi.json | 320 ++++++++++++++++++++--------------------- MecServiceMgmtApi.yaml | 238 +++++++++++++++--------------- 4 files changed, 403 insertions(+), 423 deletions(-) diff --git a/MecAppSupportApi.json b/MecAppSupportApi.json index eb2f876..00f274f 100644 --- a/MecAppSupportApi.json +++ b/MecAppSupportApi.json @@ -119,72 +119,68 @@ ], "contentMediaType": "application/json" }, - "examples": [ - { - "TrafficRule": { - "value": [ + "examples": { + "TrafficRules": [ + { + "trafficRuleId": "TrafficRule123", + "filterType": "FLOW", + "priority": 1, + "trafficFilter": [ { - "trafficRuleId": "TrafficRule123", - "filterType": "FLOW", - "priority": 1, - "trafficFilter": [ - { - "srcAddress": [ - "192.127.4.100/32", - "192.127.4.101/32" - ], - "dstAddress": [ - "192.127.4.102/32", - "192.127.4.103/32" - ], - "srcPort": ["80"], - "dstPort": ["80"] - } + "srcAddress": [ + "192.127.4.100/32", + "192.127.4.101/32" ], - "action": "FORWARD_DECAPSULATED", - "dstInterface": [ - { - "dstInterface": null, - "interfaceType": "IP", - "tunnelInfo": "tunnel", - "dstIpAddress": "20.1.1.1" - } + "dstAddress": [ + "192.127.4.102/32", + "192.127.4.103/32" ], - "state": "ACTIVE" - }, + "srcPort": ["80"], + "dstPort": ["80"] + } + ], + "action": "FORWARD_DECAPSULATED", + "dstInterface": [ + { + "dstInterface": null, + "interfaceType": "IP", + "tunnelInfo": "tunnel", + "dstIpAddress": "20.1.1.1" + } + ], + "state": "ACTIVE" + }, + { + "trafficRuleId": "TrafficRule456", + "filterType": "FLOW", + "priority": 1, + "trafficFilter": [ { - "trafficRuleId": "TrafficRule456", - "filterType": "FLOW", - "priority": 1, - "trafficFilter": [ - { - "srcAddress": [ - "192.127.4.104/32", - "192.127.4.105/32" - ], - "dstAddress": [ - "192.127.4.106/32", - "192.127.4.107/32" - ], - "srcPort": ["80"], - "dstPort": ["80"] - } + "srcAddress": [ + "192.127.4.104/32", + "192.127.4.105/32" ], - "action": "FORWARD_DECAPSULATED", - "dstInterface": [ - { - "dstInterface": null, - "interfaceType": "IP", - "tunnelInfo": "tunnel", - "dstIpAddress": "20.1.1.2" - } + "dstAddress": [ + "192.127.4.106/32", + "192.127.4.107/32" ], - "state": "ACTIVE" + "srcPort": ["80"], + "dstPort": ["80"] + } + ], + "action": "FORWARD_DECAPSULATED", + "dstInterface": [ + { + "dstInterface": null, + "interfaceType": "IP", + "tunnelInfo": "tunnel", + "dstIpAddress": "20.1.1.2" } - ] + ], + "state": "ACTIVE" } - } - ] + ] + } } } }, @@ -569,30 +565,26 @@ ], "contentMediaType": "application/json" }, - "examples": [ - { - "DnsRules": { - "value": [ - { - "dnsRuleId": "DnsRule1", - "domainName": "www.example.com", - "ipAddressType": "IP_V4", - "ipAddress": "146.241.7.3", - "ttl": 300, - "state": "ACTIVE" - }, - { - "dnsRuleId": "DnsRule2", - "domainName": "www.example.com", - "ipAddressType": "IP_V4", - "ipAddress": "146.241.7.4", - "ttl": 300, - "state": "INACTIVE" - } - ] + "examples": { + "DnsRules": [ + { + "dnsRuleId": "DnsRule1", + "domainName": "www.example.com", + "ipAddressType": "IP_V4", + "ipAddress": "146.241.7.3", + "ttl": 300, + "state": "ACTIVE" + }, + { + "dnsRuleId": "DnsRule2", + "domainName": "www.example.com", + "ipAddressType": "IP_V4", + "ipAddress": "146.241.7.4", + "ttl": 300, + "state": "INACTIVE" } - } - ] + ] + } } } }, diff --git a/MecAppSupportApi.yaml b/MecAppSupportApi.yaml index 1cee663..a45231c 100644 --- a/MecAppSupportApi.yaml +++ b/MecAppSupportApi.yaml @@ -84,50 +84,49 @@ paths: state: ACTIVE contentMediaType: application/json examples: - - TrafficRules: - value: - - trafficRuleId: TrafficRule123 - filterType: FLOW - priority: 1 - trafficFilter: - - srcAddress: - - 192.127.4.100/32 - - 192.127.4.101/32 - dstAddress: - - 192.127.4.102/32 - - 192.127.4.103/32 - srcPort: - - '80' - dstPort: - - '80' - action: FORWARD_DECAPSULATED - dstInterface: - - dstInterface: null - interfaceType: IP - tunnelInfo: tunnel - dstIpAddress: 20.1.1.1 - state: ACTIVE - - trafficRuleId: TrafficRule456 - filterType: FLOW - priority: 1 - trafficFilter: - - srcAddress: - - 192.127.4.104/32 - - 192.127.4.105/32 - dstAddress: - - 192.127.4.106/32 - - 192.127.4.107/32 - srcPort: - - '80' - dstPort: - - '80' - action: FORWARD_DECAPSULATED - dstInterface: - - dstInterface: null - interfaceType: IP - tunnelInfo: tunnel - dstIpAddress: 20.1.1.2 - state: ACTIVE + TrafficRules: + - trafficRuleId: TrafficRule123 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.1 + state: ACTIVE + - trafficRuleId: TrafficRule456 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.104/32 + - 192.127.4.105/32 + dstAddress: + - 192.127.4.106/32 + - 192.127.4.107/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.2 + state: ACTIVE '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -434,20 +433,19 @@ paths: state: INACTIVE contentMediaType: application/json examples: - - DnsRules: - value: - - dnsRuleId: DnsRule1 - domainName: www.example.com - ipAddressType: IP_V4 - ipAddress: 146.241.7.3 - ttl: 300 - state: ACTIVE - - dnsRuleId: DnsRule2 - domainName: www.example.com - ipAddressType: IP_V4 - ipAddress: 146.241.7.4 - ttl: 300 - state: INACTIVE + DnsRules: + - dnsRuleId: DnsRule1 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.3 + ttl: 300 + state: ACTIVE + - dnsRuleId: DnsRule2 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.4 + ttl: 300 + state: INACTIVE '400': description: >- Bad Request. It is used to indicate that incorrect parameters were diff --git a/MecServiceMgmtApi.json b/MecServiceMgmtApi.json index 5b5e4cd..c29d60f 100644 --- a/MecServiceMgmtApi.json +++ b/MecServiceMgmtApi.json @@ -552,94 +552,90 @@ ], "contentMediaType": "application/json" }, - "examples": [ - { - "ServiceInfoList": { - "value": [ - { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "addresses": [ - { - "host": "192.0.2.0", - "port": 8080 - } - ] - }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" - } - } - }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" + "examples": { + "ServiceInfoList": [ + { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.0", + "port": 8080 } - } + ] }, - { - "serInstanceId": "ServiceInstance345", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "addresses": [ - { - "host": "192.0.2.1", - "port": 8080 - } - ] - }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" - } - } - }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } + }, + { + "serInstanceId": "ServiceInstance345", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.1", + "port": 8080 } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } - ] + }, + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } } - } - ] + ] + } } } }, @@ -1349,94 +1345,90 @@ ], "contentMediaType": "application/json" }, - "examples": [ - { - "ServiceInfoList": { - "value": [ - { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "addresses": [ - { - "host": "192.0.2.0", - "port": 8080 - } - ] - }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" - } - } - }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" + "examples": { + "ServiceInfoList": [ + { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.0", + "port": 8080 } - } + ] }, - { - "serInstanceId": "ServiceInstance345", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "addresses": [ - { - "host": "192.0.2.1", - "port": 8080 - } - ] - }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" - } - } - }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } + }, + { + "serInstanceId": "ServiceInstance345", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.1", + "port": 8080 } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } - ] + }, + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } } - } - ] + ] + } } } }, diff --git a/MecServiceMgmtApi.yaml b/MecServiceMgmtApi.yaml index e48b39e..85fdc54 100644 --- a/MecServiceMgmtApi.yaml +++ b/MecServiceMgmtApi.yaml @@ -471,66 +471,65 @@ paths: href: http://example.com/ contentMediaType: application/json examples: - - ServiceInfoList: - value: - - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.0 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ - - serInstanceId: ServiceInstance345 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.1 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ + ServiceInfoList: + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + - serInstanceId: ServiceInstance345 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.1 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -1110,66 +1109,65 @@ paths: href: http://example.com/ contentMediaType: application/json examples: - - ServiceInfoList: - value: - - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.0 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ - - serInstanceId: ServiceInstance345 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.1 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ + ServiceInfoList: + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + - serInstanceId: ServiceInstance345 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.1 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were -- GitLab From f2042b0a57123784250da5b7b445209e21c622ab Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Wed, 18 Jan 2023 18:10:39 +0500 Subject: [PATCH 06/17] fix examples in MecAppSupportAPI.yaml --- MecAppSupportApi.yaml | 128 +++++++++++++++++++++--------------------- 1 file changed, 64 insertions(+), 64 deletions(-) diff --git a/MecAppSupportApi.yaml b/MecAppSupportApi.yaml index a45231c..5ae4315 100644 --- a/MecAppSupportApi.yaml +++ b/MecAppSupportApi.yaml @@ -60,8 +60,32 @@ paths: items: $ref: '#/components/schemas/TrafficRule' description: '' - examples: - - - trafficRuleId: TrafficRule123 + # examples: + # - - trafficRuleId: TrafficRule123 + # filterType: FLOW + # priority: 1 + # trafficFilter: + # - srcAddress: + # - 192.127.4.100/32 + # - 192.127.4.101/32 + # dstAddress: + # - 192.127.4.102/32 + # - 192.127.4.103/32 + # srcPort: + # - '80' + # dstPort: + # - '80' + # action: FORWARD_DECAPSULATED + # dstInterface: + # - dstInterface: null + # interfaceType: IP + # tunnelInfo: tunnel + # dstIpAddress: 20.1.1.1 + # state: ACTIVE + contentMediaType: application/json + examples: + - TrafficRules: + - trafficRuleId: TrafficRule123 filterType: FLOW priority: 1 trafficFilter: @@ -82,51 +106,27 @@ paths: tunnelInfo: tunnel dstIpAddress: 20.1.1.1 state: ACTIVE - contentMediaType: application/json - examples: - TrafficRules: - - trafficRuleId: TrafficRule123 - filterType: FLOW - priority: 1 - trafficFilter: - - srcAddress: - - 192.127.4.100/32 - - 192.127.4.101/32 - dstAddress: - - 192.127.4.102/32 - - 192.127.4.103/32 - srcPort: - - '80' - dstPort: - - '80' - action: FORWARD_DECAPSULATED - dstInterface: - - dstInterface: null - interfaceType: IP - tunnelInfo: tunnel - dstIpAddress: 20.1.1.1 - state: ACTIVE - - trafficRuleId: TrafficRule456 - filterType: FLOW - priority: 1 - trafficFilter: - - srcAddress: - - 192.127.4.104/32 - - 192.127.4.105/32 - dstAddress: - - 192.127.4.106/32 - - 192.127.4.107/32 - srcPort: - - '80' - dstPort: - - '80' - action: FORWARD_DECAPSULATED - dstInterface: - - dstInterface: null - interfaceType: IP - tunnelInfo: tunnel - dstIpAddress: 20.1.1.2 - state: ACTIVE + - trafficRuleId: TrafficRule345 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.104/32 + - 192.127.4.105/32 + dstAddress: + - 192.127.4.106/32 + - 192.127.4.107/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.2 + state: ACTIVE '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -418,8 +418,23 @@ paths: items: $ref: '#/components/schemas/DnsRule' description: '' - examples: - - - dnsRuleId: DnsRule1 + # examples: + # - - dnsRuleId: DnsRule1 + # domainName: www.example.com + # ipAddressType: IP_V4 + # ipAddress: 146.241.7.3 + # ttl: 300 + # state: ACTIVE + # - dnsRuleId: DnsRule2 + # domainName: www.example.com + # ipAddressType: IP_V4 + # ipAddress: 146.241.7.4 + # ttl: 300 + # state: INACTIVE + contentMediaType: application/json + examples: + -DnsRules: + - dnsRuleId: DnsRule1 domainName: www.example.com ipAddressType: IP_V4 ipAddress: 146.241.7.3 @@ -431,21 +446,6 @@ paths: ipAddress: 146.241.7.4 ttl: 300 state: INACTIVE - contentMediaType: application/json - examples: - DnsRules: - - dnsRuleId: DnsRule1 - domainName: www.example.com - ipAddressType: IP_V4 - ipAddress: 146.241.7.3 - ttl: 300 - state: ACTIVE - - dnsRuleId: DnsRule2 - domainName: www.example.com - ipAddressType: IP_V4 - ipAddress: 146.241.7.4 - ttl: 300 - state: INACTIVE '400': description: >- Bad Request. It is used to indicate that incorrect parameters were -- GitLab From 1d5478dfc9e2b38e5f8a5b213f298ba6bc5a0889 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Wed, 18 Jan 2023 18:24:58 +0500 Subject: [PATCH 07/17] fix examples in MecAppSupportAPI.yaml --- MecAppSupportApi.yaml | 43 ++++++++++++++++--------------------------- 1 file changed, 16 insertions(+), 27 deletions(-) diff --git a/MecAppSupportApi.yaml b/MecAppSupportApi.yaml index 5ae4315..68cdcc4 100644 --- a/MecAppSupportApi.yaml +++ b/MecAppSupportApi.yaml @@ -84,7 +84,8 @@ paths: # state: ACTIVE contentMediaType: application/json examples: - - TrafficRules: + TrafficRules: + value: - trafficRuleId: TrafficRule123 filterType: FLOW priority: 1 @@ -106,27 +107,6 @@ paths: tunnelInfo: tunnel dstIpAddress: 20.1.1.1 state: ACTIVE - - trafficRuleId: TrafficRule345 - filterType: FLOW - priority: 1 - trafficFilter: - - srcAddress: - - 192.127.4.104/32 - - 192.127.4.105/32 - dstAddress: - - 192.127.4.106/32 - - 192.127.4.107/32 - srcPort: - - '80' - dstPort: - - '80' - action: FORWARD_DECAPSULATED - dstInterface: - - dstInterface: null - interfaceType: IP - tunnelInfo: tunnel - dstIpAddress: 20.1.1.2 - state: ACTIVE '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -203,7 +183,8 @@ paths: schema: $ref: '#/components/schemas/TrafficRule' examples: - - TrafficRule: + TrafficRule: + value: trafficRuleId: TrafficRule123 filterType: FLOW priority: 1 @@ -309,7 +290,8 @@ paths: schema: $ref: '#/components/schemas/TrafficRule' examples: - - TrafficRule: + TrafficRule: + value: trafficRuleId: TrafficRule123 serName: ExampleService filterType: FLOW @@ -433,7 +415,8 @@ paths: # state: INACTIVE contentMediaType: application/json examples: - -DnsRules: + DnsRules: + value: - dnsRuleId: DnsRule1 domainName: www.example.com ipAddressType: IP_V4 @@ -522,7 +505,8 @@ paths: schema: $ref: '#/components/schemas/DnsRule' examples: - - DnsRule: + DnsRule: + value: dnsRuleId: DnsRule1 domainName: www.example.com ipAddressType: IP_V4 @@ -608,7 +592,8 @@ paths: schema: $ref: '#/components/schemas/DnsRule' examples: - - DnsRule: + DnsRule: + value: dnsRuleId: DnsRule1 domainName: www.example.com ipAddressType: IP_V4 @@ -2507,6 +2492,10 @@ components: type: string description: Fully Qualified Domain Name of the service. See note. description: 'This type represents information about a transport endpoint. ' + + Not_specified: + description: 'Not_specified' + ServiceDependency: properties: requestedPermissions: -- GitLab From 97579609ce2a412d7e59cb7fc18519af03f4acfa Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Wed, 18 Jan 2023 18:31:54 +0500 Subject: [PATCH 08/17] fix examples and identation in MEC011 APIs --- MecAppSupportApi.json | 197 +++++++++++++------------ MecAppSupportApi.yaml | 91 +++++++----- MecServiceMgmtApi.json | 324 +++++++++++++++++++++-------------------- MecServiceMgmtApi.yaml | 246 ++++++++++++++++--------------- 4 files changed, 448 insertions(+), 410 deletions(-) diff --git a/MecAppSupportApi.json b/MecAppSupportApi.json index 00f274f..d02ac14 100644 --- a/MecAppSupportApi.json +++ b/MecAppSupportApi.json @@ -120,66 +120,68 @@ "contentMediaType": "application/json" }, "examples": { - "TrafficRules": [ - { - "trafficRuleId": "TrafficRule123", - "filterType": "FLOW", - "priority": 1, - "trafficFilter": [ - { - "srcAddress": [ - "192.127.4.100/32", - "192.127.4.101/32" - ], - "dstAddress": [ - "192.127.4.102/32", - "192.127.4.103/32" - ], - "srcPort": ["80"], - "dstPort": ["80"] - } - ], - "action": "FORWARD_DECAPSULATED", - "dstInterface": [ - { - "dstInterface": null, - "interfaceType": "IP", - "tunnelInfo": "tunnel", - "dstIpAddress": "20.1.1.1" - } - ], - "state": "ACTIVE" - }, - { - "trafficRuleId": "TrafficRule456", - "filterType": "FLOW", - "priority": 1, - "trafficFilter": [ - { - "srcAddress": [ - "192.127.4.104/32", - "192.127.4.105/32" - ], - "dstAddress": [ - "192.127.4.106/32", - "192.127.4.107/32" - ], - "srcPort": ["80"], - "dstPort": ["80"] - } - ], - "action": "FORWARD_DECAPSULATED", - "dstInterface": [ - { - "dstInterface": null, - "interfaceType": "IP", - "tunnelInfo": "tunnel", - "dstIpAddress": "20.1.1.2" - } - ], - "state": "ACTIVE" - } - ] + "TrafficRules": { + "value": [ + { + "trafficRuleId": "TrafficRule123", + "filterType": "FLOW", + "priority": 1, + "trafficFilter": [ + { + "srcAddress": [ + "192.127.4.100/32", + "192.127.4.101/32" + ], + "dstAddress": [ + "192.127.4.102/32", + "192.127.4.103/32" + ], + "srcPort": ["80"], + "dstPort": ["80"] + } + ], + "action": "FORWARD_DECAPSULATED", + "dstInterface": [ + { + "dstInterface": null, + "interfaceType": "IP", + "tunnelInfo": "tunnel", + "dstIpAddress": "20.1.1.1" + } + ], + "state": "ACTIVE" + }, + { + "trafficRuleId": "TrafficRule123", + "filterType": "FLOW", + "priority": 1, + "trafficFilter": [ + { + "srcAddress": [ + "192.127.4.104/32", + "192.127.4.105/32" + ], + "dstAddress": [ + "192.127.4.106/32", + "192.127.4.107/32" + ], + "srcPort": ["80"], + "dstPort": ["80"] + } + ], + "action": "FORWARD_DECAPSULATED", + "dstInterface": [ + { + "dstInterface": null, + "interfaceType": "IP", + "tunnelInfo": "tunnel", + "dstIpAddress": "20.1.1.2" + } + ], + "state": "ACTIVE" + } + ] + } } } } @@ -273,9 +275,9 @@ "schema": { "$ref": "#/components/schemas/TrafficRule" }, - "examples": [ - { - "TrafficRule": { + "examples": { + "TrafficRule": { + "value": { "trafficRuleId": "TrafficRule123", "filterType": "FLOW", "priority": 1, @@ -305,7 +307,7 @@ "state": "ACTIVE" } } - ] + } } } }, @@ -406,9 +408,9 @@ "schema": { "$ref": "#/components/schemas/TrafficRule" }, - "examples": [ - { - "TrafficRule": { + "examples": { + "TrafficRule": { + "value": { "trafficRuleId": "TrafficRule123", "serName": "ExampleService", "filterType": "FLOW", @@ -439,7 +441,7 @@ "state": "ACTIVE" } } - ] + } } } }, @@ -566,24 +568,26 @@ "contentMediaType": "application/json" }, "examples": { - "DnsRules": [ - { - "dnsRuleId": "DnsRule1", - "domainName": "www.example.com", - "ipAddressType": "IP_V4", - "ipAddress": "146.241.7.3", - "ttl": 300, - "state": "ACTIVE" - }, - { - "dnsRuleId": "DnsRule2", - "domainName": "www.example.com", - "ipAddressType": "IP_V4", - "ipAddress": "146.241.7.4", - "ttl": 300, - "state": "INACTIVE" - } - ] + "DnsRules": { + "value": [ + { + "dnsRuleId": "DnsRule1", + "domainName": "www.example.com", + "ipAddressType": "IP_V4", + "ipAddress": "146.241.7.3", + "ttl": 300, + "state": "ACTIVE" + }, + { + "dnsRuleId": "DnsRule2", + "domainName": "www.example.com", + "ipAddressType": "IP_V4", + "ipAddress": "146.241.7.4", + "ttl": 300, + "state": "INACTIVE" + } + ] + } } } } @@ -677,9 +681,9 @@ "schema": { "$ref": "#/components/schemas/DnsRule" }, - "examples": [ - { - "DnsRule": { + "examples": { + "DnsRule": { + "value": { "dnsRuleId": "DnsRule1", "domainName": "www.example.com", "ipAddressType": "IP_V4", @@ -688,7 +692,7 @@ "state": "ACTIVE" } } - ] + } } } }, @@ -789,9 +793,9 @@ "schema": { "$ref": "#/components/schemas/DnsRule" }, - "examples": [ - { - "DnsRule": { + "examples": { + "DnsRule": { + "value": { "dnsRuleId": "DnsRule1", "domainName": "www.example.com", "ipAddressType": "IP_V4", @@ -800,7 +804,7 @@ "state": "ACTIVE" } } - ] + } } } }, @@ -2886,6 +2890,9 @@ }, "description": "This type represents information about a transport endpoint. " }, + "Not_specified": { + "description": "Not_specified" + }, "ServiceDependency": { "properties": { "requestedPermissions": { @@ -3171,4 +3178,4 @@ } } } -} \ No newline at end of file +} diff --git a/MecAppSupportApi.yaml b/MecAppSupportApi.yaml index 68cdcc4..f0b77ab 100644 --- a/MecAppSupportApi.yaml +++ b/MecAppSupportApi.yaml @@ -60,28 +60,28 @@ paths: items: $ref: '#/components/schemas/TrafficRule' description: '' - # examples: - # - - trafficRuleId: TrafficRule123 - # filterType: FLOW - # priority: 1 - # trafficFilter: - # - srcAddress: - # - 192.127.4.100/32 - # - 192.127.4.101/32 - # dstAddress: - # - 192.127.4.102/32 - # - 192.127.4.103/32 - # srcPort: - # - '80' - # dstPort: - # - '80' - # action: FORWARD_DECAPSULATED - # dstInterface: - # - dstInterface: null - # interfaceType: IP - # tunnelInfo: tunnel - # dstIpAddress: 20.1.1.1 - # state: ACTIVE + examples: + - - trafficRuleId: TrafficRule123 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.100/32 + - 192.127.4.101/32 + dstAddress: + - 192.127.4.102/32 + - 192.127.4.103/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.1 + state: ACTIVE contentMediaType: application/json examples: TrafficRules: @@ -107,6 +107,27 @@ paths: tunnelInfo: tunnel dstIpAddress: 20.1.1.1 state: ACTIVE + - trafficRuleId: TrafficRule123 + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.127.4.104/32 + - 192.127.4.105/32 + dstAddress: + - 192.127.4.106/32 + - 192.127.4.107/32 + srcPort: + - '80' + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + - dstInterface: null + interfaceType: IP + tunnelInfo: tunnel + dstIpAddress: 20.1.1.2 + state: ACTIVE '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -400,19 +421,19 @@ paths: items: $ref: '#/components/schemas/DnsRule' description: '' - # examples: - # - - dnsRuleId: DnsRule1 - # domainName: www.example.com - # ipAddressType: IP_V4 - # ipAddress: 146.241.7.3 - # ttl: 300 - # state: ACTIVE - # - dnsRuleId: DnsRule2 - # domainName: www.example.com - # ipAddressType: IP_V4 - # ipAddress: 146.241.7.4 - # ttl: 300 - # state: INACTIVE + examples: + - - dnsRuleId: DnsRule1 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.3 + ttl: 300 + state: ACTIVE + - dnsRuleId: DnsRule2 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.4 + ttl: 300 + state: INACTIVE contentMediaType: application/json examples: DnsRules: diff --git a/MecServiceMgmtApi.json b/MecServiceMgmtApi.json index c29d60f..d6b95c5 100644 --- a/MecServiceMgmtApi.json +++ b/MecServiceMgmtApi.json @@ -553,88 +553,90 @@ "contentMediaType": "application/json" }, "examples": { - "ServiceInfoList": [ - { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "addresses": [ - { - "host": "192.0.2.0", - "port": 8080 + "ServiceInfoList": { + "value": [ + { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.0", + "port": 8080 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } - ] + } }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" } } }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" - } - } - }, - { - "serInstanceId": "ServiceInstance345", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "addresses": [ - { - "host": "192.0.2.1", - "port": 8080 + { + "serInstanceId": "ServiceInstance345", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.1", + "port": 8080 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } - ] + } }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" } } - }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" - } } - } - ] + ] + } } } } @@ -766,9 +768,9 @@ "schema": { "$ref": "#/components/schemas/ServiceInfo" }, - "examples": [ - { - "ServiceInfo": { + "examples": { + "ServiceInfo": { + "value": { "serInstanceId": "ServiceInstance123", "serName": "ExampleService", "serCategory": { @@ -804,7 +806,7 @@ } } } - ] + } } } }, @@ -897,9 +899,9 @@ "schema": { "$ref": "#/components/schemas/ServiceInfo" }, - "examples": [ - { - "ServiceInfo": { + "examples": { + "ServiceInfo": { + "value": { "serInstanceId": "ServiceInstance123", "serName": "ExampleService", "serCategory": { @@ -935,7 +937,7 @@ } } } - ] + } } } }, @@ -1036,9 +1038,9 @@ "schema": { "$ref": "#/components/schemas/ServiceInfo" }, - "examples": [ - { - "ServiceInfo": { + "examples": { + "ServiceInfo": { + "value": { "serInstanceId": "ServiceInstance123", "serName": "ExampleService", "serCategory": { @@ -1074,7 +1076,7 @@ } } } - ] + } } } }, @@ -1346,88 +1348,90 @@ "contentMediaType": "application/json" }, "examples": { - "ServiceInfoList": [ - { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "addresses": [ - { - "host": "192.0.2.0", - "port": 8080 + "ServiceInfoList": { + "value": [ + { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.0", + "port": 8080 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } - ] + } }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" } } }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" - } - } - }, - { - "serInstanceId": "ServiceInstance345", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "addresses": [ - { - "host": "192.0.2.1", - "port": 8080 + { + "serInstanceId": "ServiceInstance345", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.1", + "port": 8080 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } - ] + } }, - "security": { - "oAuth2Info": { - "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" } } - }, - "serializer": "JSON", - "_links": { - "self": { - "href": "http://example.com/" - } } - } - ] + ] + } } } } @@ -1530,9 +1534,9 @@ "schema": { "$ref": "#/components/schemas/ServiceInfo" }, - "examples": [ - { - "ServiceInfo": { + "examples": { + "ServiceInfo": { + "value": { "serInstanceId": "ServiceInstance123", "serName": "ExampleService", "serCategory": { @@ -1568,7 +1572,7 @@ } } } - ] + } } } }, diff --git a/MecServiceMgmtApi.yaml b/MecServiceMgmtApi.yaml index 85fdc54..4b1d12a 100644 --- a/MecServiceMgmtApi.yaml +++ b/MecServiceMgmtApi.yaml @@ -472,64 +472,65 @@ paths: contentMediaType: application/json examples: ServiceInfoList: - - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.0 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ - - serInstanceId: ServiceInstance345 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.1 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ + value: + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + - serInstanceId: ServiceInstance345 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.1 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -636,7 +637,8 @@ paths: schema: $ref: '#/components/schemas/ServiceInfo' examples: - - ServiceInfo: + ServiceInfo: + value: serInstanceId: ServiceInstance123 serName: ExampleService serCategory: @@ -741,7 +743,8 @@ paths: schema: $ref: '#/components/schemas/ServiceInfo' examples: - - ServiceInfo: + ServiceInfo: + value: serInstanceId: ServiceInstance123 serName: ExampleService serCategory: @@ -851,7 +854,8 @@ paths: schema: $ref: '#/components/schemas/ServiceInfo' examples: - - ServiceInfo: + ServiceInfo: + value: serInstanceId: ServiceInstance123 serName: ExampleService serCategory: @@ -1110,64 +1114,65 @@ paths: contentMediaType: application/json examples: ServiceInfoList: - - serInstanceId: ServiceInstance123 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.0 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ - - serInstanceId: ServiceInstance345 - serName: ExampleService - serCategory: - href: catItem1 - id: id12345 - name: RNI - version: version1 - version: ServiceVersion1 - state: ACTIVE - transportInfo: - id: TransId12345 - name: REST - description: REST API - type: REST_HTTP - protocol: HTTP - version: '2.0' - endpoint: - addresses: - - host: 192.0.2.1 - port: 8080 - security: - oAuth2Info: - grantTypes: - - OAUTH2_CLIENT_CREDENTIALS - tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint - serializer: JSON - _links: - self: - href: http://example.com/ + value: + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ + - serInstanceId: ServiceInstance345 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.1 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + _links: + self: + href: http://example.com/ '400': description: >- Bad Request. It is used to indicate that incorrect parameters were @@ -1251,7 +1256,8 @@ paths: schema: $ref: '#/components/schemas/ServiceInfo' examples: - - ServiceInfo: + ServiceInfo: + value: serInstanceId: ServiceInstance123 serName: ExampleService serCategory: -- GitLab From dbc49f753dbb24e587298025663483dadf3d8048 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Wed, 18 Jan 2023 18:43:38 +0500 Subject: [PATCH 09/17] update README files inside proto3 folders --- AppSupport/proto3/README.md | 106 ++++++++++++++++++++++++++++++----- ServiceMgmt/proto3/README.md | 106 ++++++++++++++++++++++++++++++----- 2 files changed, 186 insertions(+), 26 deletions(-) diff --git a/AppSupport/proto3/README.md b/AppSupport/proto3/README.md index a0b1c2d..073d14a 100644 --- a/AppSupport/proto3/README.md +++ b/AppSupport/proto3/README.md @@ -13,19 +13,99 @@ These files were generated by the [OpenAPI Generator](https://openapi-generator. Below are some usage examples for Go and Ruby. For other languages, please refer to https://grpc.io/docs/quickstart/. +### Python + +1. Install the grpcio-tools package + ```sh + $ pip install grpcio-tools + ``` + +2. Create a directory for generated Python stubs + ```sh + $ mkdir python-stubs + ``` + +3. Run the following commands from the root of the directory containing this README that you are reading. + + - Models: + + ```sh + $ python3 -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs ./AppSupport/proto3/models/* + ``` + + The above command will generate .py files for all the data models in the ./models directory + + - Services: + + ```sh + $ python3 -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs --grpc_python_out=./python-stubs .AppSupport/proto3/services/* + ``` + + The above command will generate two files for the each Application Support services: + - _app_confirm_ready_service_pb2.py_: containing the python data models used in the Application Support service file + - _app_confirm_ready_service_pb2_grpc.py_: containing all the classes and functions needed for the supported HTTP methods in the Application Support API + ### Go -``` -# assuming `protoc-gen-go` has been installed with `go get -u github.com/golang/protobuf/protoc-gen-go` -mkdir /var/tmp/go/ -protoc --go_out=/var/tmp/go/ services/* -protoc --go_out=/var/tmp/go/ models/* -``` + +1. Install protocol buffer compiler + ```sh + $ apt install -y protobuf-compiler + ``` +2. Install Go plugins for `protoc` + ```sh + $ go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28.1 + ``` + ```sh + $ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2.0 + ``` +3. Update `PATH` so `protoc` can find the plugins + ```sh + $ export PATH="$PATH:$(go env GOPATH)/bin" + ``` +4. Define a go package by appending `option go_package = "./mec011";` in all .proto files like this: + + ```Go + ... + + syntax = "proto3"; + + package mec011; + + option go_package = "./mec011"; + + import public "models/.proto"; + + ... + ``` +5. Generate Go code for models and services + ```sh + $ mkdir go-stubs + $ protoc --go_out=./go-stubs ./AppSupport/proto3/models/* -I./AppSupport/proto3 + $ protoc --go_out=./go-stubs ./AppSupport/proto3/services/* --go-grpc_out=go-stubs -I./AppSupport/proto3 + ``` + > The generated `.pb.go` files will contain all the protocol buffer code to populate, serialize, and retrieve request and response message types defined in the `models` folder. + > And the `app_confirm_ready_service_grpc.pb.go` will contain the stubs for the methods defined in the `app_confirm_ready_service.proto` file. ### Ruby -``` -# assuming `grpc_tools_ruby_protoc` has been installed via `gem install grpc-tools` -RUBY_OUTPUT_DIR="/var/tmp/ruby/mec011" -mkdir $RUBY_OUTPUT_DIR -grpc_tools_ruby_protoc --ruby_out=$RUBY_OUTPUT_DIR --grpc_out=$RUBY_OUTPUT_DIR/lib services/* -grpc_tools_ruby_protoc --ruby_out=$RUBY_OUTPUT_DIR --grpc_out=$RUBY_OUTPUT_DIR/lib models/* -``` + +1. Install gRPC Ruby Plugin and required tools + ```sh + $ gem install grpc + $ sudo apt install ruby-grpc-tools + ``` + +2. Generate code + ```sh + $ mkdir ruby-stubs + ``` + + Run the following command to create Ruby modules for all the data models defined in the proto files. + + ```sh + $ grpc_tools_ruby_protoc -I./proto3 --ruby_out=ruby-stubs ./proto3/models/* + ``` + Run the following command to generate `app_confirm_ready_service_pb.rb` and `app_confirm_ready_service_pb.rb` files, containing stub and service classes for the endpoints and methods defined in MEC011 App Enablement service. + + ```sh + $ grpc_tools_ruby_protoc -I./AppSupport/proto3 --ruby_out=ruby-stubs --grpc_out=ruby-stubs ./AppSupport/proto3/services/* + ``` \ No newline at end of file diff --git a/ServiceMgmt/proto3/README.md b/ServiceMgmt/proto3/README.md index a8b8410..7c03912 100644 --- a/ServiceMgmt/proto3/README.md +++ b/ServiceMgmt/proto3/README.md @@ -13,19 +13,99 @@ These files were generated by the [OpenAPI Generator](https://openapi-generator. Below are some usage examples for Go and Ruby. For other languages, please refer to https://grpc.io/docs/quickstart/. +### Python + +1. Install the grpcio-tools package + ```sh + $ pip install grpcio-tools + ``` + +2. Create a directory for generated Python stubs + ```sh + $ mkdir python-stubs + ``` + +3. Run the following commands from the root of the directory containing this README that you are reading. + + - Models: + + ```sh + $ python3 -m grpc_tools.protoc -I./ServiceMgmt/proto3 --python_out=./python-stubs ./ServiceMgmt/proto3/models/* + ``` + + The above command will generate .py files for all the data models in the ./models directory + + - Services: + + ```sh + $ python3 -m grpc_tools.protoc -I./ServiceMgmt/proto3 --python_out=./python-stubs --grpc_python_out=./python-stubs .ServiceMgmt/proto3/services/* + ``` + + The above command will generate two files for the each Application Support services: + - _app_confirm_ready_service_pb2.py_: containing the python data models used in the Application Support service file + - _app_confirm_ready_service_pb2_grpc.py_: containing all the classes and functions needed for the supported HTTP methods in the Application Support API + ### Go -``` -# assuming `protoc-gen-go` has been installed with `go get -u github.com/golang/protobuf/protoc-gen-go` -mkdir /var/tmp/go/ -protoc --go_out=/var/tmp/go/ services/* -protoc --go_out=/var/tmp/go/ models/* -``` + +1. Install protocol buffer compiler + ```sh + $ apt install -y protobuf-compiler + ``` +2. Install Go plugins for `protoc` + ```sh + $ go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28.1 + ``` + ```sh + $ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2.0 + ``` +3. Update `PATH` so `protoc` can find the plugins + ```sh + $ export PATH="$PATH:$(go env GOPATH)/bin" + ``` +4. Define a go package by appending `option go_package = "./mec011";` in all .proto files like this: + + ```Go + ... + + syntax = "proto3"; + + package mec011; + + option go_package = "./mec011"; + + import public "models/.proto"; + + ... + ``` +5. Generate Go code for models and services + ```sh + $ mkdir go-stubs + $ protoc --go_out=./go-stubs ./ServiceMgmt/proto3/models/* -I./ServiceMgmt/proto3 + $ protoc --go_out=./go-stubs ./ServiceMgmt/proto3/services/* --go-grpc_out=go-stubs -I./ServiceMgmt/proto3 + ``` + > The generated `.pb.go` files will contain all the protocol buffer code to populate, serialize, and retrieve request and response message types defined in the `models` folder. + > And the `app_confirm_ready_service_grpc.pb.go` will contain the stubs for the methods defined in the `app_confirm_ready_service.proto` file. ### Ruby -``` -# assuming `grpc_tools_ruby_protoc` has been installed via `gem install grpc-tools` -RUBY_OUTPUT_DIR="/var/tmp/ruby/mec011" -mkdir $RUBY_OUTPUT_DIR -grpc_tools_ruby_protoc --ruby_out=$RUBY_OUTPUT_DIR --grpc_out=$RUBY_OUTPUT_DIR/lib services/* -grpc_tools_ruby_protoc --ruby_out=$RUBY_OUTPUT_DIR --grpc_out=$RUBY_OUTPUT_DIR/lib models/* -``` + +1. Install gRPC Ruby Plugin and required tools + ```sh + $ gem install grpc + $ sudo apt install ruby-grpc-tools + ``` + +2. Generate code + ```sh + $ mkdir ruby-stubs + ``` + + Run the following command to create Ruby modules for all the data models defined in the proto files. + + ```sh + $ grpc_tools_ruby_protoc -I./proto3 --ruby_out=ruby-stubs ./proto3/models/* + ``` + Run the following command to generate `app_confirm_ready_service_pb.rb` and `app_confirm_ready_service_pb.rb` files, containing stub and service classes for the endpoints and methods defined in MEC011 App Enablement service. + + ```sh + $ grpc_tools_ruby_protoc -I./ServiceMgmt/proto3 --ruby_out=ruby-stubs --grpc_out=ruby-stubs ./ServiceMgmt/proto3/services/* + ``` \ No newline at end of file -- GitLab From 94041abb17de6196ca2975af177bf64424302f91 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Mon, 23 Jan 2023 13:42:25 +0500 Subject: [PATCH 10/17] fix errors in ServiceMgmt proto3 descriptors --- ServiceMgmt/proto3/models/category_ref.proto | 2 +- .../proto3/models/end_point_info_address.proto | 2 +- ServiceMgmt/proto3/models/link_type.proto | 2 +- ...service_mgmt_api_subscription_link_list.proto | 2 +- ...e_mgmt_api_subscription_link_list_links.proto | 2 +- ...api_subscription_link_list_subscription.proto | 2 +- ServiceMgmt/proto3/models/problem_details.proto | 2 +- ServiceMgmt/proto3/models/security_info.proto | 2 +- .../models/security_info_o_auth2_info.proto | 2 +- ServiceMgmt/proto3/models/self.proto | 2 +- ..._availability_notification_subscription.proto | 2 +- ...ication_subscription_filtering_criteria.proto | 2 +- .../service_availability_notification.proto | 2 +- ...ability_notification_service_references.proto | 2 +- ServiceMgmt/proto3/models/service_info.proto | 2 +- .../proto3/models/service_info_links.proto | 2 +- .../proto3/models/service_liveness_info.proto | 2 +- .../service_liveness_info_time_stamp.proto | 2 +- .../proto3/models/service_liveness_update.proto | 2 +- ServiceMgmt/proto3/models/subscription.proto | 2 +- ServiceMgmt/proto3/models/transport_info.proto | 6 +++--- .../proto3/models/transport_info_endpoint.proto | 16 ++++++++-------- 22 files changed, 31 insertions(+), 31 deletions(-) diff --git a/ServiceMgmt/proto3/models/category_ref.proto b/ServiceMgmt/proto3/models/category_ref.proto index ae58b04..00a76da 100644 --- a/ServiceMgmt/proto3/models/category_ref.proto +++ b/ServiceMgmt/proto3/models/category_ref.proto @@ -18,7 +18,7 @@ package mec011; message CategoryRef { // Reference of the catalogue - string href = 0; + string href = 4; // Unique identifier of the category string id = 1; diff --git a/ServiceMgmt/proto3/models/end_point_info_address.proto b/ServiceMgmt/proto3/models/end_point_info_address.proto index e338590..bd27866 100644 --- a/ServiceMgmt/proto3/models/end_point_info_address.proto +++ b/ServiceMgmt/proto3/models/end_point_info_address.proto @@ -18,7 +18,7 @@ package mec011; message EndPointInfoAddress { // Host portion of the address - string host = 0; + string host = 2; // Port portion of the address int32 port = 1; diff --git a/ServiceMgmt/proto3/models/link_type.proto b/ServiceMgmt/proto3/models/link_type.proto index 58c43fa..4e014e3 100644 --- a/ServiceMgmt/proto3/models/link_type.proto +++ b/ServiceMgmt/proto3/models/link_type.proto @@ -18,6 +18,6 @@ package mec011; message LinkType { // URI referring to a resource - string href = 0; + string href = 1; } diff --git a/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list.proto b/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list.proto index a59d941..526348a 100644 --- a/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list.proto +++ b/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list.proto @@ -18,6 +18,6 @@ import public "models/mec_service_mgmt_api_subscription_link_list_links.proto"; message MecServiceMgmtApiSubscriptionLinkList { - MecServiceMgmtApiSubscriptionLinkListLinks _links = 0; + MecServiceMgmtApiSubscriptionLinkListLinks _links = 1; } diff --git a/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto b/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto index daf6be9..57b8383 100644 --- a/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto +++ b/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto @@ -19,7 +19,7 @@ import public "models/mec_service_mgmt_api_subscription_link_list_subscription.p message MecServiceMgmtApiSubscriptionLinkListLinks { - LinkType self = 0; + LinkType self = 2; // The MEC application instance's subscriptions repeated MecServiceMgmtApiSubscriptionLinkListSubscription subscriptions = 1; diff --git a/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto b/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto index 73b8dc8..f30e435 100644 --- a/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto +++ b/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto @@ -18,7 +18,7 @@ package mec011; message MecServiceMgmtApiSubscriptionLinkListSubscription { // URI referring to a resource - string href = 0; + string href = 2; // The value shall be se to SerAvailabilityNotificationSubscription. string rel = 1; diff --git a/ServiceMgmt/proto3/models/problem_details.proto b/ServiceMgmt/proto3/models/problem_details.proto index 85c3db4..b1488e5 100644 --- a/ServiceMgmt/proto3/models/problem_details.proto +++ b/ServiceMgmt/proto3/models/problem_details.proto @@ -18,7 +18,7 @@ package mec011; message ProblemDetails { // A URI reference according to IETF RFC 3986 that identifies the problem type - string type = 0; + string type = 5; // A short, human-readable summary of the problem type string title = 1; diff --git a/ServiceMgmt/proto3/models/security_info.proto b/ServiceMgmt/proto3/models/security_info.proto index 5cfa171..a7f78d4 100644 --- a/ServiceMgmt/proto3/models/security_info.proto +++ b/ServiceMgmt/proto3/models/security_info.proto @@ -18,6 +18,6 @@ import public "models/security_info_o_auth2_info.proto"; message SecurityInfo { - SecurityInfoOAuth2Info oAuth2Info = 0; + SecurityInfoOAuth2Info oAuth2Info = 1; } diff --git a/ServiceMgmt/proto3/models/security_info_o_auth2_info.proto b/ServiceMgmt/proto3/models/security_info_o_auth2_info.proto index 4993202..53fd6ec 100644 --- a/ServiceMgmt/proto3/models/security_info_o_auth2_info.proto +++ b/ServiceMgmt/proto3/models/security_info_o_auth2_info.proto @@ -19,7 +19,7 @@ import public "models/security_info_o_auth2_info_grant_type.proto"; message SecurityInfoOAuth2Info { // List of supported OAuth 2.0 grant types. - repeated SecurityInfoOAuth2InfoGrantType grantTypes = 0; + repeated SecurityInfoOAuth2InfoGrantType grantTypes = 2; // The token endpoint string tokenEndpoint = 1; diff --git a/ServiceMgmt/proto3/models/self.proto b/ServiceMgmt/proto3/models/self.proto index 9bff274..8612710 100644 --- a/ServiceMgmt/proto3/models/self.proto +++ b/ServiceMgmt/proto3/models/self.proto @@ -18,6 +18,6 @@ import public "models/link_type.proto"; message Self { - LinkType self = 0; + LinkType self = 1; } diff --git a/ServiceMgmt/proto3/models/ser_availability_notification_subscription.proto b/ServiceMgmt/proto3/models/ser_availability_notification_subscription.proto index dd23d6e..37ed76b 100644 --- a/ServiceMgmt/proto3/models/ser_availability_notification_subscription.proto +++ b/ServiceMgmt/proto3/models/ser_availability_notification_subscription.proto @@ -20,7 +20,7 @@ import public "models/ser_availability_notification_subscription_filtering_crite message SerAvailabilityNotificationSubscription { // Shall be set to SerAvailabilityNotificationSubscription. - string subscriptionType = 0; + string subscriptionType = 4; // URI selected by the MEC application instance to receive notifications on the subscribed MEC service availability information. This shall be included in both the request and the response. string callbackReference = 1; diff --git a/ServiceMgmt/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto b/ServiceMgmt/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto index 8186a33..60053b4 100644 --- a/ServiceMgmt/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto +++ b/ServiceMgmt/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto @@ -20,7 +20,7 @@ import public "models/service_state.proto"; message SerAvailabilityNotificationSubscriptionFilteringCriteria { // Identifiers of service instances about which to report events. - repeated string serInstanceIds = 0; + repeated string serInstanceIds = 5; // Names of services about which to report events. repeated string serNames = 1; diff --git a/ServiceMgmt/proto3/models/service_availability_notification.proto b/ServiceMgmt/proto3/models/service_availability_notification.proto index 5d13a65..4ee0e9a 100644 --- a/ServiceMgmt/proto3/models/service_availability_notification.proto +++ b/ServiceMgmt/proto3/models/service_availability_notification.proto @@ -20,7 +20,7 @@ import public "models/subscription.proto"; message ServiceAvailabilityNotification { // Shall be set to SerAvailabilityNotificationSubscription. - string notificationType = 0; + string notificationType = 3; // repeated ServiceAvailabilityNotificationServiceReferences serviceReferences = 1; diff --git a/ServiceMgmt/proto3/models/service_availability_notification_service_references.proto b/ServiceMgmt/proto3/models/service_availability_notification_service_references.proto index 4e1a897..bfc331e 100644 --- a/ServiceMgmt/proto3/models/service_availability_notification_service_references.proto +++ b/ServiceMgmt/proto3/models/service_availability_notification_service_references.proto @@ -20,7 +20,7 @@ import public "models/service_state.proto"; message ServiceAvailabilityNotificationServiceReferences { - LinkType link = 0; + LinkType link = 5; // The name of the service. This is how the service producing MEC application identifies the service instance it produces. string serName = 1; diff --git a/ServiceMgmt/proto3/models/service_info.proto b/ServiceMgmt/proto3/models/service_info.proto index 431ba3a..d5175e2 100644 --- a/ServiceMgmt/proto3/models/service_info.proto +++ b/ServiceMgmt/proto3/models/service_info.proto @@ -24,7 +24,7 @@ import public "models/transport_info.proto"; message ServiceInfo { // Identifier of the service instance assigned by the MEC platform. - string serInstanceId = 0; + string serInstanceId = 13; // The name of the service. This is how the service producing MEC application identifies the service instance it produces. string serName = 1; diff --git a/ServiceMgmt/proto3/models/service_info_links.proto b/ServiceMgmt/proto3/models/service_info_links.proto index b8e3469..26d4449 100644 --- a/ServiceMgmt/proto3/models/service_info_links.proto +++ b/ServiceMgmt/proto3/models/service_info_links.proto @@ -18,7 +18,7 @@ import public "models/link_type.proto"; message ServiceInfoLinks { - LinkType self = 0; + LinkType self = 2; LinkType liveness = 1; diff --git a/ServiceMgmt/proto3/models/service_liveness_info.proto b/ServiceMgmt/proto3/models/service_liveness_info.proto index d411c0c..4a27310 100644 --- a/ServiceMgmt/proto3/models/service_liveness_info.proto +++ b/ServiceMgmt/proto3/models/service_liveness_info.proto @@ -19,7 +19,7 @@ import public "models/service_state.proto"; message ServiceLivenessInfo { - ServiceState state = 0; + ServiceState state = 3; ServiceLivenessInfoTimeStamp timeStamp = 1; diff --git a/ServiceMgmt/proto3/models/service_liveness_info_time_stamp.proto b/ServiceMgmt/proto3/models/service_liveness_info_time_stamp.proto index 9029485..fa1de90 100644 --- a/ServiceMgmt/proto3/models/service_liveness_info_time_stamp.proto +++ b/ServiceMgmt/proto3/models/service_liveness_info_time_stamp.proto @@ -17,7 +17,7 @@ package mec011; message ServiceLivenessInfoTimeStamp { - int32 seconds = 0; + int32 seconds = 2; int32 nanoSeconds = 1; diff --git a/ServiceMgmt/proto3/models/service_liveness_update.proto b/ServiceMgmt/proto3/models/service_liveness_update.proto index 516440a..d8260cd 100644 --- a/ServiceMgmt/proto3/models/service_liveness_update.proto +++ b/ServiceMgmt/proto3/models/service_liveness_update.proto @@ -18,6 +18,6 @@ import public "models/service_state.proto"; message ServiceLivenessUpdate { - ServiceState state = 0; + ServiceState state = 1; } diff --git a/ServiceMgmt/proto3/models/subscription.proto b/ServiceMgmt/proto3/models/subscription.proto index a16be0b..6e2f664 100644 --- a/ServiceMgmt/proto3/models/subscription.proto +++ b/ServiceMgmt/proto3/models/subscription.proto @@ -18,6 +18,6 @@ import public "models/link_type.proto"; message Subscription { - LinkType subscription = 0; + LinkType subscription = 1; } diff --git a/ServiceMgmt/proto3/models/transport_info.proto b/ServiceMgmt/proto3/models/transport_info.proto index 4bfdaaa..8e5629d 100644 --- a/ServiceMgmt/proto3/models/transport_info.proto +++ b/ServiceMgmt/proto3/models/transport_info.proto @@ -15,14 +15,14 @@ syntax = "proto3"; package mec011; import public "models/security_info.proto"; -import public "models/todo_object_mapping.proto"; +// import public "models/todo_object_mapping.proto"; import public "models/transport_info_endpoint.proto"; import public "models/transport_type.proto"; message TransportInfo { // The identifier of this transport - string id = 0; + string id = 8; // The name of this transport string name = 1; @@ -43,6 +43,6 @@ message TransportInfo { SecurityInfo security = 7; // Additional implementation specific details of the transport - TODO_OBJECT_MAPPING implSpecificInfo = 109027520; + // TODO_OBJECT_MAPPING implSpecificInfo = 109027520; } diff --git a/ServiceMgmt/proto3/models/transport_info_endpoint.proto b/ServiceMgmt/proto3/models/transport_info_endpoint.proto index 08d936d..4fd4048 100644 --- a/ServiceMgmt/proto3/models/transport_info_endpoint.proto +++ b/ServiceMgmt/proto3/models/transport_info_endpoint.proto @@ -16,20 +16,20 @@ package mec011; import public "models/end_point_info_address.proto"; import public "models/end_point_info_addresses.proto"; -import public "models/end_point_info_alternative.proto"; -import public "models/end_point_info_fqdn.proto"; -import public "models/end_point_info_uris.proto"; -import public "models/todo_object_mapping.proto"; +// import public "models/end_point_info_alternative.proto"; +// import public "models/end_point_info_fqdn.proto"; +// import public "models/end_point_info_uris.proto"; +// import public "models/todo_object_mapping.proto"; message TransportInfoEndpoint { - oneOf EndpointInfo { + oneof EndpointInfo { // Entry point information of the service as string, formatted according to URI syntax - repeated string uris = 0; + string uris = 4; // Fully Qualified Domain Name of the service. See note. - repeated string fqdn = 1; + string fqdn = 1; // Entry point information of the service as one or more pairs of IP address and port. See note. - repeated EndPointInfoAddress addresses = 2; + EndPointInfoAddress addresses = 2; // Entry point information of the service in a format defined by an implementation, or in an external specification. See note. string alternative = 3; } -- GitLab From c2cf4e4f63a0dc300911e8be402778097c12ac18 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Mon, 23 Jan 2023 14:01:31 +0500 Subject: [PATCH 11/17] fix errors in AppSupport proto3 descriptors --- AppSupport/proto3/models/app_info.proto | 2 +- .../proto3/models/app_info_endpoint.proto | 18 +++++++++--------- AppSupport/proto3/models/app_profile.proto | 4 ++-- .../proto3/models/app_ready_confirmation.proto | 2 +- .../models/app_termination_confirmation.proto | 2 +- .../models/app_termination_notification.proto | 2 +- .../app_termination_notification_links.proto | 3 +-- ...termination_notification_subscription.proto | 2 +- AppSupport/proto3/models/category_ref.proto | 2 +- AppSupport/proto3/models/current_time.proto | 2 +- .../proto3/models/destination_interface.proto | 2 +- AppSupport/proto3/models/dns_rule.proto | 2 +- .../proto3/models/end_point_info_address.proto | 2 +- .../proto3/models/feature_dependency.proto | 2 +- AppSupport/proto3/models/link_type.proto | 2 +- ...c_app_supt_api_subscription_link_list.proto | 2 +- ...supt_api_subscription_link_list_links.proto | 2 +- ...i_subscription_link_list_subscription.proto | 2 +- AppSupport/proto3/models/problem_details.proto | 2 +- AppSupport/proto3/models/security_info.proto | 2 +- .../models/security_info_o_auth2_info.proto | 2 +- AppSupport/proto3/models/self.proto | 2 +- .../proto3/models/service_dependency.proto | 2 +- AppSupport/proto3/models/timing_caps.proto | 2 +- .../models/timing_caps_ntp_servers.proto | 2 +- .../models/timing_caps_ptp_masters.proto | 2 +- .../proto3/models/timing_caps_time_stamp.proto | 2 +- AppSupport/proto3/models/traffic_filter.proto | 2 +- AppSupport/proto3/models/traffic_rule.proto | 2 +- .../proto3/models/transport_dependency.proto | 2 +- .../proto3/models/transport_descriptor.proto | 2 +- AppSupport/proto3/models/tunnel_info.proto | 2 +- .../services/app_confirm_ready_service.proto | 2 +- .../app_confirm_termination_service.proto | 2 +- .../services/app_dns_rules_service.proto | 2 +- .../services/app_registrations_service.proto | 2 +- .../services/app_subscriptions_service.proto | 2 +- .../services/app_traffic_rules_service.proto | 2 +- .../proto3/services/timing_service.proto | 2 +- 39 files changed, 48 insertions(+), 49 deletions(-) diff --git a/AppSupport/proto3/models/app_info.proto b/AppSupport/proto3/models/app_info.proto index 64e3966..594353d 100644 --- a/AppSupport/proto3/models/app_info.proto +++ b/AppSupport/proto3/models/app_info.proto @@ -23,7 +23,7 @@ import public "models/service_dependency.proto"; message AppInfo { // Name of the application. It shall be consistent with the appName in the AppD, if an AppD is available. - string appName = 0; + string appName = 12; // Provider of the application. It shall be consistent with the appProvider in the AppD, if an AppD is available. See note 1. string appProvider = 1; diff --git a/AppSupport/proto3/models/app_info_endpoint.proto b/AppSupport/proto3/models/app_info_endpoint.proto index 2777804..2a49f7f 100644 --- a/AppSupport/proto3/models/app_info_endpoint.proto +++ b/AppSupport/proto3/models/app_info_endpoint.proto @@ -15,24 +15,24 @@ syntax = "proto3"; package mec011; import public "models/end_point_info_address.proto"; -import public "models/end_point_info_addresses.proto"; -import public "models/end_point_info_alternative.proto"; -import public "models/end_point_info_fqdn.proto"; -import public "models/end_point_info_uris.proto"; -import public "models/todo_object_mapping.proto"; +// import public "models/end_point_info_addresses.proto"; +// import public "models/end_point_info_alternative.proto"; +// import public "models/end_point_info_fqdn.proto"; +// import public "models/end_point_info_uris.proto"; +// import public "models/todo_object_mapping.proto"; message AppInfoEndpoint { -oneOf EndpointInfo { +oneof EndpointInfo { // Entry point information of the service as string, formatted according to URI syntax - repeated string uris = 0; + string uris = 4; // Fully Qualified Domain Name of the service. See note. - repeated string fqdn = 1; + string fqdn = 1; // Entry point information of the service as one or more pairs of IP address and port. See note. - repeated EndPointInfoAddress addresses = 2; + EndPointInfoAddress addresses = 2; // Entry point information of the service in a format defined by an implementation, or in an external specification. See note. string alternative = 3; diff --git a/AppSupport/proto3/models/app_profile.proto b/AppSupport/proto3/models/app_profile.proto index 946725f..c6365e0 100644 --- a/AppSupport/proto3/models/app_profile.proto +++ b/AppSupport/proto3/models/app_profile.proto @@ -14,12 +14,12 @@ syntax = "proto3"; package mec011; -import public "models/app_profile_end_pt.proto"; +import public "models/app_info_endpoint.proto"; message AppProfile { // The identifier of the EAS - string easId = 0; + string easId = 14; AppInfoEndpoint endPt = 1; diff --git a/AppSupport/proto3/models/app_ready_confirmation.proto b/AppSupport/proto3/models/app_ready_confirmation.proto index a7cf30a..b3b5d2d 100644 --- a/AppSupport/proto3/models/app_ready_confirmation.proto +++ b/AppSupport/proto3/models/app_ready_confirmation.proto @@ -18,6 +18,6 @@ package mec011; message AppReadyConfirmation { // Indication about the MEC application instance. - string indication = 0; + string indication = 1; } diff --git a/AppSupport/proto3/models/app_termination_confirmation.proto b/AppSupport/proto3/models/app_termination_confirmation.proto index 4b5399d..8db200c 100644 --- a/AppSupport/proto3/models/app_termination_confirmation.proto +++ b/AppSupport/proto3/models/app_termination_confirmation.proto @@ -18,6 +18,6 @@ import public "models/operation_action_type.proto"; message AppTerminationConfirmation { - OperationActionType operationAction = 0; + OperationActionType operationAction = 1; } diff --git a/AppSupport/proto3/models/app_termination_notification.proto b/AppSupport/proto3/models/app_termination_notification.proto index 983e27a..61078a0 100644 --- a/AppSupport/proto3/models/app_termination_notification.proto +++ b/AppSupport/proto3/models/app_termination_notification.proto @@ -20,7 +20,7 @@ import public "models/operation_action_type.proto"; message AppTerminationNotification { // Shall be set to AppTerminationNotification. - string notificationType = 0; + string notificationType = 4; OperationActionType operationAction = 1; diff --git a/AppSupport/proto3/models/app_termination_notification_links.proto b/AppSupport/proto3/models/app_termination_notification_links.proto index 1a98b75..0a3b42b 100644 --- a/AppSupport/proto3/models/app_termination_notification_links.proto +++ b/AppSupport/proto3/models/app_termination_notification_links.proto @@ -15,11 +15,10 @@ syntax = "proto3"; package mec011; import public "models/link_type.proto"; -import public "models/link_type_confirm_termination.proto"; message AppTerminationNotificationLinks { - LinkType subscription = 0; + LinkType subscription = 2; LinkType confirmTermination = 1; diff --git a/AppSupport/proto3/models/app_termination_notification_subscription.proto b/AppSupport/proto3/models/app_termination_notification_subscription.proto index db7e068..0763aaf 100644 --- a/AppSupport/proto3/models/app_termination_notification_subscription.proto +++ b/AppSupport/proto3/models/app_termination_notification_subscription.proto @@ -19,7 +19,7 @@ import public "models/self.proto"; message AppTerminationNotificationSubscription { // Shall be set to AppTerminationNotificationSubscription. - string subscriptionType = 0; + string subscriptionType = 4; // URI selected by the MEC application instance to receive notifications on the subscribed MEC application instance management information. This shall be included in both the request and the response. string callbackReference = 1; diff --git a/AppSupport/proto3/models/category_ref.proto b/AppSupport/proto3/models/category_ref.proto index 3517fd1..c088e1a 100644 --- a/AppSupport/proto3/models/category_ref.proto +++ b/AppSupport/proto3/models/category_ref.proto @@ -18,7 +18,7 @@ package mec011; message CategoryRef { // Reference of the catalogue - string href = 0; + string href = 4; // Unique identifier of the category string id = 1; diff --git a/AppSupport/proto3/models/current_time.proto b/AppSupport/proto3/models/current_time.proto index 33e9f6e..148d760 100644 --- a/AppSupport/proto3/models/current_time.proto +++ b/AppSupport/proto3/models/current_time.proto @@ -19,7 +19,7 @@ import public "models/time_source_status.proto"; message CurrentTime { // The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC - int32 seconds = 0; + int32 seconds = 3; // The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC int32 nanoSeconds = 1; diff --git a/AppSupport/proto3/models/destination_interface.proto b/AppSupport/proto3/models/destination_interface.proto index b798312..bf8e86d 100644 --- a/AppSupport/proto3/models/destination_interface.proto +++ b/AppSupport/proto3/models/destination_interface.proto @@ -19,7 +19,7 @@ import public "models/tunnel_info.proto"; message DestinationInterface { - DestinationInterfaceInterfaceType interfaceType = 0; + DestinationInterfaceInterfaceType interfaceType = 5; TunnelInfo tunnelInfo = 1; diff --git a/AppSupport/proto3/models/dns_rule.proto b/AppSupport/proto3/models/dns_rule.proto index 6bbd49e..f9ea842 100644 --- a/AppSupport/proto3/models/dns_rule.proto +++ b/AppSupport/proto3/models/dns_rule.proto @@ -20,7 +20,7 @@ import public "models/dns_rule_state.proto"; message DnsRule { // Identifies the DNS Rule - string dnsRuleId = 0; + string dnsRuleId = 6; // FQDN resolved by the DNS rule string domainName = 1; diff --git a/AppSupport/proto3/models/end_point_info_address.proto b/AppSupport/proto3/models/end_point_info_address.proto index 748de87..d456828 100644 --- a/AppSupport/proto3/models/end_point_info_address.proto +++ b/AppSupport/proto3/models/end_point_info_address.proto @@ -18,7 +18,7 @@ package mec011; message EndPointInfoAddress { // Host portion of the address - string host = 0; + string host = 2; // Port portion of the address int32 port = 1; diff --git a/AppSupport/proto3/models/feature_dependency.proto b/AppSupport/proto3/models/feature_dependency.proto index f633e75..838a7a3 100644 --- a/AppSupport/proto3/models/feature_dependency.proto +++ b/AppSupport/proto3/models/feature_dependency.proto @@ -18,7 +18,7 @@ package mec011; message FeatureDependency { // The name of the feature, for example, UserApps, UEIdentity, etc. - string featureName = 0; + string featureName = 2; // The version of the feature. string version = 1; diff --git a/AppSupport/proto3/models/link_type.proto b/AppSupport/proto3/models/link_type.proto index f4c4bab..e0f66da 100644 --- a/AppSupport/proto3/models/link_type.proto +++ b/AppSupport/proto3/models/link_type.proto @@ -18,6 +18,6 @@ package mec011; message LinkType { // URI referring to a resource - string href = 0; + string href = 1; } diff --git a/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list.proto b/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list.proto index 5be384f..0b464f1 100644 --- a/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list.proto +++ b/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list.proto @@ -18,6 +18,6 @@ import public "models/mec_app_supt_api_subscription_link_list_links.proto"; message MecAppSuptApiSubscriptionLinkList { - MecAppSuptApiSubscriptionLinkListLinks _links = 0; + MecAppSuptApiSubscriptionLinkListLinks _links = 1; } diff --git a/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_links.proto b/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_links.proto index 1ad36a0..cd311b0 100644 --- a/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_links.proto +++ b/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_links.proto @@ -19,7 +19,7 @@ import public "models/mec_app_supt_api_subscription_link_list_subscription.proto message MecAppSuptApiSubscriptionLinkListLinks { - LinkType self = 0; + LinkType self = 2; // The MEC application instance's subscriptions repeated MecAppSuptApiSubscriptionLinkListSubscription subscriptions = 1; diff --git a/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto b/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto index 58fc21c..39e1749 100644 --- a/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto +++ b/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto @@ -18,7 +18,7 @@ package mec011; message MecAppSuptApiSubscriptionLinkListSubscription { // URI referring to a resource - string href = 0; + string href = 2; // The values shall be set to AppTerminationNotificationSubscription. string subscriptionType = 1; diff --git a/AppSupport/proto3/models/problem_details.proto b/AppSupport/proto3/models/problem_details.proto index b87ec4b..714ff19 100644 --- a/AppSupport/proto3/models/problem_details.proto +++ b/AppSupport/proto3/models/problem_details.proto @@ -18,7 +18,7 @@ package mec011; message ProblemDetails { // A URI reference according to IETF RFC 3986 that identifies the problem type - string type = 0; + string type = 5; // A short, human-readable summary of the problem type string title = 1; diff --git a/AppSupport/proto3/models/security_info.proto b/AppSupport/proto3/models/security_info.proto index e903865..9df3419 100644 --- a/AppSupport/proto3/models/security_info.proto +++ b/AppSupport/proto3/models/security_info.proto @@ -18,6 +18,6 @@ import public "models/security_info_o_auth2_info.proto"; message SecurityInfo { - SecurityInfoOAuth2Info oAuth2Info = 0; + SecurityInfoOAuth2Info oAuth2Info = 1; } diff --git a/AppSupport/proto3/models/security_info_o_auth2_info.proto b/AppSupport/proto3/models/security_info_o_auth2_info.proto index 64aa211..87923c3 100644 --- a/AppSupport/proto3/models/security_info_o_auth2_info.proto +++ b/AppSupport/proto3/models/security_info_o_auth2_info.proto @@ -19,7 +19,7 @@ import public "models/security_info_o_auth2_info_grant_type.proto"; message SecurityInfoOAuth2Info { // List of supported OAuth 2.0 grant types. - repeated SecurityInfoOAuth2InfoGrantType grantTypes = 0; + repeated SecurityInfoOAuth2InfoGrantType grantTypes = 2; // The token endpoint string tokenEndpoint = 1; diff --git a/AppSupport/proto3/models/self.proto b/AppSupport/proto3/models/self.proto index 5246935..e1bdcd6 100644 --- a/AppSupport/proto3/models/self.proto +++ b/AppSupport/proto3/models/self.proto @@ -18,6 +18,6 @@ import public "models/link_type.proto"; message Self { - LinkType self = 0; + LinkType self = 1; } diff --git a/AppSupport/proto3/models/service_dependency.proto b/AppSupport/proto3/models/service_dependency.proto index 1bd4051..0584186 100644 --- a/AppSupport/proto3/models/service_dependency.proto +++ b/AppSupport/proto3/models/service_dependency.proto @@ -20,7 +20,7 @@ import public "models/transport_dependency.proto"; message ServiceDependency { // Requested permissions regarding the access of the application to the service. See clause 8.2 of ETSI GS MEC 009 [4]. The format of this attribute is left for the data model design stage. - repeated string requestedPermissions = 0; + repeated string requestedPermissions = 5; CategoryRef serCategory = 1; diff --git a/AppSupport/proto3/models/timing_caps.proto b/AppSupport/proto3/models/timing_caps.proto index 5dc9332..d80f614 100644 --- a/AppSupport/proto3/models/timing_caps.proto +++ b/AppSupport/proto3/models/timing_caps.proto @@ -20,7 +20,7 @@ import public "models/timing_caps_time_stamp.proto"; message TimingCaps { - TimingCapsTimeStamp timeStamp = 0; + TimingCapsTimeStamp timeStamp = 3; // Available NTP servers repeated TimingCapsNtpServers ntpServers = 1; diff --git a/AppSupport/proto3/models/timing_caps_ntp_servers.proto b/AppSupport/proto3/models/timing_caps_ntp_servers.proto index 0c8eec9..9427ee6 100644 --- a/AppSupport/proto3/models/timing_caps_ntp_servers.proto +++ b/AppSupport/proto3/models/timing_caps_ntp_servers.proto @@ -19,7 +19,7 @@ import public "models/timing_caps_ntp_servers_ntp_server_addr_type.proto"; message TimingCapsNtpServers { - TimingCapsNtpServersNtpServerAddrType ntpServerAddrType = 0; + TimingCapsNtpServersNtpServerAddrType ntpServerAddrType = 7; // NTP server address string ntpServerAddr = 1; diff --git a/AppSupport/proto3/models/timing_caps_ptp_masters.proto b/AppSupport/proto3/models/timing_caps_ptp_masters.proto index 72e32c6..d361d04 100644 --- a/AppSupport/proto3/models/timing_caps_ptp_masters.proto +++ b/AppSupport/proto3/models/timing_caps_ptp_masters.proto @@ -18,7 +18,7 @@ package mec011; message TimingCapsPtpMasters { // PTP Server (referred to as \"master\" in IEEE 1588-2019) IP Address - string ptpMasterIpAddress = 0; + string ptpMasterIpAddress = 3; // PTP Server (referred to as \"master\" in IEEE 1588-2019 ) local priority int32 ptpMasterLocalPriority = 1; diff --git a/AppSupport/proto3/models/timing_caps_time_stamp.proto b/AppSupport/proto3/models/timing_caps_time_stamp.proto index 3203fb4..834a73a 100644 --- a/AppSupport/proto3/models/timing_caps_time_stamp.proto +++ b/AppSupport/proto3/models/timing_caps_time_stamp.proto @@ -18,7 +18,7 @@ package mec011; message TimingCapsTimeStamp { // The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC - int32 seconds = 0; + int32 seconds = 2; // The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC int32 nanoSeconds = 1; diff --git a/AppSupport/proto3/models/traffic_filter.proto b/AppSupport/proto3/models/traffic_filter.proto index d0613ec..a606994 100644 --- a/AppSupport/proto3/models/traffic_filter.proto +++ b/AppSupport/proto3/models/traffic_filter.proto @@ -18,7 +18,7 @@ package mec011; message TrafficFilter { // An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes. - repeated string srcAddress = 0; + repeated string srcAddress = 13; // An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes. repeated string dstAddress = 1; diff --git a/AppSupport/proto3/models/traffic_rule.proto b/AppSupport/proto3/models/traffic_rule.proto index 2eb9d61..87e5c26 100644 --- a/AppSupport/proto3/models/traffic_rule.proto +++ b/AppSupport/proto3/models/traffic_rule.proto @@ -23,7 +23,7 @@ import public "models/traffic_rule_state.proto"; message TrafficRule { // Identify the traffic rule. - string trafficRuleId = 0; + string trafficRuleId = 7; TrafficRuleFilterType filterType = 1; diff --git a/AppSupport/proto3/models/transport_dependency.proto b/AppSupport/proto3/models/transport_dependency.proto index 14366ed..d5b92a7 100644 --- a/AppSupport/proto3/models/transport_dependency.proto +++ b/AppSupport/proto3/models/transport_dependency.proto @@ -20,7 +20,7 @@ import public "models/transport_descriptor.proto"; message TransportDependency { // Set of labels that allow to define groups of transport bindings. The mechanism of the grouping is defined below this table. - repeated string labels = 0; + repeated string labels = 3; // Information about the serializers in this transport binding, as defined in the SerializerType type in ETSI GS MEC 011 [i.4]. Support for at least one of the entries is required in conjunction with the transport. repeated SerializerType serializers = 1; diff --git a/AppSupport/proto3/models/transport_descriptor.proto b/AppSupport/proto3/models/transport_descriptor.proto index 49471ba..e5f27ad 100644 --- a/AppSupport/proto3/models/transport_descriptor.proto +++ b/AppSupport/proto3/models/transport_descriptor.proto @@ -20,7 +20,7 @@ import public "models/transport_type.proto"; message TransportDescriptor { // The name of the protocol used. Shall be set to \"HTTP\" for a REST API. - string protocol = 0; + string protocol = 4; SecurityInfo security = 1; diff --git a/AppSupport/proto3/models/tunnel_info.proto b/AppSupport/proto3/models/tunnel_info.proto index 5e35392..b7c7c71 100644 --- a/AppSupport/proto3/models/tunnel_info.proto +++ b/AppSupport/proto3/models/tunnel_info.proto @@ -18,7 +18,7 @@ import public "models/tunnel_info_tunnel_type.proto"; message TunnelInfo { - TunnelInfoTunnelType tunnelType = 0; + TunnelInfoTunnelType tunnelType = 3; // Destination address of the tunnel string tunnelDstAddress = 1; diff --git a/AppSupport/proto3/services/app_confirm_ready_service.proto b/AppSupport/proto3/services/app_confirm_ready_service.proto index 31a1e42..3a0925c 100644 --- a/AppSupport/proto3/services/app_confirm_ready_service.proto +++ b/AppSupport/proto3/services/app_confirm_ready_service.proto @@ -17,7 +17,7 @@ package mec011.services.appconfirmreadyservice; import "google/protobuf/empty.proto"; import public "models/app_ready_confirmation.proto"; import public "models/problem_details.proto"; -import public "models/todo_object_mapping.proto"; +// import public "models/todo_object_mapping.proto"; service AppConfirmReadyService { rpc ApplicationsConfirmReadyPOST (ApplicationsConfirmReadyPOSTRequest) returns (google.protobuf.Empty); diff --git a/AppSupport/proto3/services/app_confirm_termination_service.proto b/AppSupport/proto3/services/app_confirm_termination_service.proto index 554b157..fe1dfaa 100644 --- a/AppSupport/proto3/services/app_confirm_termination_service.proto +++ b/AppSupport/proto3/services/app_confirm_termination_service.proto @@ -17,7 +17,7 @@ package mec011.services.appconfirmterminationservice; import "google/protobuf/empty.proto"; import public "models/app_termination_confirmation.proto"; import public "models/problem_details.proto"; -import public "models/todo_object_mapping.proto"; +// import public "models/todo_object_mapping.proto"; service AppConfirmTerminationService { rpc ApplicationsConfirmTerminationPOST (ApplicationsConfirmTerminationPOSTRequest) returns (google.protobuf.Empty); diff --git a/AppSupport/proto3/services/app_dns_rules_service.proto b/AppSupport/proto3/services/app_dns_rules_service.proto index d18c045..f6a2941 100644 --- a/AppSupport/proto3/services/app_dns_rules_service.proto +++ b/AppSupport/proto3/services/app_dns_rules_service.proto @@ -17,7 +17,7 @@ package mec011.services.appdnsrulesservice; import "google/protobuf/empty.proto"; import public "models/dns_rule.proto"; import public "models/problem_details.proto"; -import public "models/todo_object_mapping.proto"; +// import public "models/todo_object_mapping.proto"; service AppDnsRulesService { rpc ApplicationsDnsRuleGET (ApplicationsDnsRuleGETRequest) returns (DnsRule); diff --git a/AppSupport/proto3/services/app_registrations_service.proto b/AppSupport/proto3/services/app_registrations_service.proto index b5eed62..c202fc7 100644 --- a/AppSupport/proto3/services/app_registrations_service.proto +++ b/AppSupport/proto3/services/app_registrations_service.proto @@ -17,7 +17,7 @@ package mec011.services.appregistrationsservice; import "google/protobuf/empty.proto"; import public "models/app_info.proto"; import public "models/problem_details.proto"; -import public "models/todo_object_mapping.proto"; +// import public "models/todo_object_mapping.proto"; service AppRegistrationsService { rpc ApplicationsRegistrationDELETE (ApplicationsRegistrationDELETERequest) returns (google.protobuf.Empty); diff --git a/AppSupport/proto3/services/app_subscriptions_service.proto b/AppSupport/proto3/services/app_subscriptions_service.proto index d3a6a00..c9f9525 100644 --- a/AppSupport/proto3/services/app_subscriptions_service.proto +++ b/AppSupport/proto3/services/app_subscriptions_service.proto @@ -18,7 +18,7 @@ import "google/protobuf/empty.proto"; import public "models/app_termination_notification_subscription.proto"; import public "models/mec_app_supt_api_subscription_link_list.proto"; import public "models/problem_details.proto"; -import public "models/todo_object_mapping.proto"; +// import public "models/todo_object_mapping.proto"; service AppSubscriptionsService { rpc ApplicationsSubscriptionDELETE (ApplicationsSubscriptionDELETERequest) returns (google.protobuf.Empty); diff --git a/AppSupport/proto3/services/app_traffic_rules_service.proto b/AppSupport/proto3/services/app_traffic_rules_service.proto index a62b805..52c83ac 100644 --- a/AppSupport/proto3/services/app_traffic_rules_service.proto +++ b/AppSupport/proto3/services/app_traffic_rules_service.proto @@ -16,7 +16,7 @@ package mec011.services.apptrafficrulesservice; import "google/protobuf/empty.proto"; import public "models/problem_details.proto"; -import public "models/todo_object_mapping.proto"; +// import public "models/todo_object_mapping.proto"; import public "models/traffic_rule.proto"; service AppTrafficRulesService { diff --git a/AppSupport/proto3/services/timing_service.proto b/AppSupport/proto3/services/timing_service.proto index 90466ea..a81fdb9 100644 --- a/AppSupport/proto3/services/timing_service.proto +++ b/AppSupport/proto3/services/timing_service.proto @@ -17,7 +17,7 @@ package mec011.services.timingservice; import "google/protobuf/empty.proto"; import public "models/current_time.proto"; import public "models/problem_details.proto"; -import public "models/todo_object_mapping.proto"; +// import public "models/todo_object_mapping.proto"; import public "models/timing_caps.proto"; service TimingService { -- GitLab From 8a03e70e49e0f30bc9898131bd4186e4f7549c75 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Mon, 23 Jan 2023 14:09:45 +0500 Subject: [PATCH 12/17] fix errors in AppSupport proto3 services --- AppSupport/proto3/README.md | 4 ++-- AppSupport/proto3/services/app_dns_rules_service.proto | 1 - AppSupport/proto3/services/app_traffic_rules_service.proto | 1 - 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/AppSupport/proto3/README.md b/AppSupport/proto3/README.md index 073d14a..a8a7ecd 100644 --- a/AppSupport/proto3/README.md +++ b/AppSupport/proto3/README.md @@ -30,7 +30,7 @@ Below are some usage examples for Go and Ruby. For other languages, please refer - Models: ```sh - $ python3 -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs ./AppSupport/proto3/models/* + $ python -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs ./AppSupport/proto3/models/* ``` The above command will generate .py files for all the data models in the ./models directory @@ -38,7 +38,7 @@ Below are some usage examples for Go and Ruby. For other languages, please refer - Services: ```sh - $ python3 -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs --grpc_python_out=./python-stubs .AppSupport/proto3/services/* + $ python -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs --grpc_python_out=./python-stubs ./AppSupport/proto3/services/* ``` The above command will generate two files for the each Application Support services: diff --git a/AppSupport/proto3/services/app_dns_rules_service.proto b/AppSupport/proto3/services/app_dns_rules_service.proto index f6a2941..10425f7 100644 --- a/AppSupport/proto3/services/app_dns_rules_service.proto +++ b/AppSupport/proto3/services/app_dns_rules_service.proto @@ -14,7 +14,6 @@ syntax = "proto3"; package mec011.services.appdnsrulesservice; -import "google/protobuf/empty.proto"; import public "models/dns_rule.proto"; import public "models/problem_details.proto"; // import public "models/todo_object_mapping.proto"; diff --git a/AppSupport/proto3/services/app_traffic_rules_service.proto b/AppSupport/proto3/services/app_traffic_rules_service.proto index 52c83ac..606eb39 100644 --- a/AppSupport/proto3/services/app_traffic_rules_service.proto +++ b/AppSupport/proto3/services/app_traffic_rules_service.proto @@ -14,7 +14,6 @@ syntax = "proto3"; package mec011.services.apptrafficrulesservice; -import "google/protobuf/empty.proto"; import public "models/problem_details.proto"; // import public "models/todo_object_mapping.proto"; import public "models/traffic_rule.proto"; -- GitLab From c6fea83d9676a97a236e6679fb12a2ea3e8de1b9 Mon Sep 17 00:00:00 2001 From: Ayesha Ayub Date: Mon, 23 Jan 2023 14:57:49 +0500 Subject: [PATCH 13/17] fix issues in TransportInfo data model --- AppSupport/proto3/.openapi-generator/FILES | 3 --- AppSupport/proto3/models/app_info_endpoint.proto | 5 +---- MecServiceMgmtApi.json | 2 +- MecServiceMgmtApi.yaml | 2 +- ServiceMgmt/proto3/models/transport_info.proto | 3 +-- ServiceMgmt/proto3/models/transport_info_endpoint.proto | 4 ---- 6 files changed, 4 insertions(+), 15 deletions(-) diff --git a/AppSupport/proto3/.openapi-generator/FILES b/AppSupport/proto3/.openapi-generator/FILES index ffc6a53..5b60edb 100644 --- a/AppSupport/proto3/.openapi-generator/FILES +++ b/AppSupport/proto3/.openapi-generator/FILES @@ -18,9 +18,6 @@ models/dns_rule_ip_address_type.proto models/dns_rule_state.proto models/end_point_info_address.proto models/end_point_info_addresses.proto -models/end_point_info_alternative.proto -models/end_point_info_fqdn.proto -models/end_point_info_uris.proto models/feature_dependency.proto models/link_type.proto models/link_type_confirm_termination.proto diff --git a/AppSupport/proto3/models/app_info_endpoint.proto b/AppSupport/proto3/models/app_info_endpoint.proto index 2a49f7f..cd1f9f7 100644 --- a/AppSupport/proto3/models/app_info_endpoint.proto +++ b/AppSupport/proto3/models/app_info_endpoint.proto @@ -16,10 +16,7 @@ package mec011; import public "models/end_point_info_address.proto"; // import public "models/end_point_info_addresses.proto"; -// import public "models/end_point_info_alternative.proto"; -// import public "models/end_point_info_fqdn.proto"; -// import public "models/end_point_info_uris.proto"; -// import public "models/todo_object_mapping.proto"; + message AppInfoEndpoint { diff --git a/MecServiceMgmtApi.json b/MecServiceMgmtApi.json index d6b95c5..ae96c77 100644 --- a/MecServiceMgmtApi.json +++ b/MecServiceMgmtApi.json @@ -2418,7 +2418,7 @@ "$ref": "#/components/schemas/SecurityInfo" }, "implSpecificInfo": { - "type": "object", + "type": "string", "description": "Additional implementation specific details of the transport" } }, diff --git a/MecServiceMgmtApi.yaml b/MecServiceMgmtApi.yaml index 4b1d12a..5925d05 100644 --- a/MecServiceMgmtApi.yaml +++ b/MecServiceMgmtApi.yaml @@ -2092,7 +2092,7 @@ components: security: $ref: '#/components/schemas/SecurityInfo' implSpecificInfo: - type: object + type: string description: Additional implementation specific details of the transport description: This type represents the general information of a MEC service. TransportType: diff --git a/ServiceMgmt/proto3/models/transport_info.proto b/ServiceMgmt/proto3/models/transport_info.proto index 8e5629d..4f0ec17 100644 --- a/ServiceMgmt/proto3/models/transport_info.proto +++ b/ServiceMgmt/proto3/models/transport_info.proto @@ -15,7 +15,6 @@ syntax = "proto3"; package mec011; import public "models/security_info.proto"; -// import public "models/todo_object_mapping.proto"; import public "models/transport_info_endpoint.proto"; import public "models/transport_type.proto"; @@ -43,6 +42,6 @@ message TransportInfo { SecurityInfo security = 7; // Additional implementation specific details of the transport - // TODO_OBJECT_MAPPING implSpecificInfo = 109027520; + string implSpecificInfo = 109027520; } diff --git a/ServiceMgmt/proto3/models/transport_info_endpoint.proto b/ServiceMgmt/proto3/models/transport_info_endpoint.proto index 4fd4048..62ce657 100644 --- a/ServiceMgmt/proto3/models/transport_info_endpoint.proto +++ b/ServiceMgmt/proto3/models/transport_info_endpoint.proto @@ -16,10 +16,6 @@ package mec011; import public "models/end_point_info_address.proto"; import public "models/end_point_info_addresses.proto"; -// import public "models/end_point_info_alternative.proto"; -// import public "models/end_point_info_fqdn.proto"; -// import public "models/end_point_info_uris.proto"; -// import public "models/todo_object_mapping.proto"; message TransportInfoEndpoint { -- GitLab From e4aef4e53c781a30871df94a338e0d87e549bd09 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Mon, 23 Jan 2023 15:07:42 +0500 Subject: [PATCH 14/17] update README files for proto3 --- AppSupport/proto3/README.md | 12 +++++------- ServiceMgmt/proto3/README.md | 16 +++++++--------- proto3-gen.md | 18 +++++++++--------- 3 files changed, 21 insertions(+), 25 deletions(-) diff --git a/AppSupport/proto3/README.md b/AppSupport/proto3/README.md index a8a7ecd..ba6af92 100644 --- a/AppSupport/proto3/README.md +++ b/AppSupport/proto3/README.md @@ -33,7 +33,7 @@ Below are some usage examples for Go and Ruby. For other languages, please refer $ python -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs ./AppSupport/proto3/models/* ``` - The above command will generate .py files for all the data models in the ./models directory + The above command will generate .py files for all the data models in the ./python-stubs/models directory - Services: @@ -41,9 +41,7 @@ Below are some usage examples for Go and Ruby. For other languages, please refer $ python -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs --grpc_python_out=./python-stubs ./AppSupport/proto3/services/* ``` - The above command will generate two files for the each Application Support services: - - _app_confirm_ready_service_pb2.py_: containing the python data models used in the Application Support service file - - _app_confirm_ready_service_pb2_grpc.py_: containing all the classes and functions needed for the supported HTTP methods in the Application Support API + The above command will generate .py files for all the services in the ./python-stubs/services directory ### Go @@ -84,7 +82,7 @@ Below are some usage examples for Go and Ruby. For other languages, please refer $ protoc --go_out=./go-stubs ./AppSupport/proto3/services/* --go-grpc_out=go-stubs -I./AppSupport/proto3 ``` > The generated `.pb.go` files will contain all the protocol buffer code to populate, serialize, and retrieve request and response message types defined in the `models` folder. - > And the `app_confirm_ready_service_grpc.pb.go` will contain the stubs for the methods defined in the `app_confirm_ready_service.proto` file. + > And the `<*_service_grpc>.pb.go` will contain the stubs for the methods defined in the `./AppSupport/proto3/services/*` folder. ### Ruby @@ -99,12 +97,12 @@ Below are some usage examples for Go and Ruby. For other languages, please refer $ mkdir ruby-stubs ``` - Run the following command to create Ruby modules for all the data models defined in the proto files. + Run the following command to create Ruby modules for all the data models defined in the `./AppSupport/proto3/models/*` folder. ```sh $ grpc_tools_ruby_protoc -I./proto3 --ruby_out=ruby-stubs ./proto3/models/* ``` - Run the following command to generate `app_confirm_ready_service_pb.rb` and `app_confirm_ready_service_pb.rb` files, containing stub and service classes for the endpoints and methods defined in MEC011 App Enablement service. + Run the following command to generate `<*_service_pb>.rb` files, containing stub and service classes for the endpoints and methods defined in MEC011 App Enablement service. ```sh $ grpc_tools_ruby_protoc -I./AppSupport/proto3 --ruby_out=ruby-stubs --grpc_out=ruby-stubs ./AppSupport/proto3/services/* diff --git a/ServiceMgmt/proto3/README.md b/ServiceMgmt/proto3/README.md index 7c03912..6b83ad1 100644 --- a/ServiceMgmt/proto3/README.md +++ b/ServiceMgmt/proto3/README.md @@ -30,20 +30,18 @@ Below are some usage examples for Go and Ruby. For other languages, please refer - Models: ```sh - $ python3 -m grpc_tools.protoc -I./ServiceMgmt/proto3 --python_out=./python-stubs ./ServiceMgmt/proto3/models/* + $ python -m grpc_tools.protoc -I./ServiceMgmt/proto3 --python_out=./python-stubs ./ServiceMgmt/proto3/models/* ``` - The above command will generate .py files for all the data models in the ./models directory + The above command will generate .py files for all the data models in the ./python-stubs/models directory - Services: ```sh - $ python3 -m grpc_tools.protoc -I./ServiceMgmt/proto3 --python_out=./python-stubs --grpc_python_out=./python-stubs .ServiceMgmt/proto3/services/* + $ python -m grpc_tools.protoc -I./ServiceMgmt/proto3 --python_out=./python-stubs --grpc_python_out=./python-stubs ./ServiceMgmt/proto3/services/* ``` - The above command will generate two files for the each Application Support services: - - _app_confirm_ready_service_pb2.py_: containing the python data models used in the Application Support service file - - _app_confirm_ready_service_pb2_grpc.py_: containing all the classes and functions needed for the supported HTTP methods in the Application Support API + The above command will generate .py files for all the services in the ./python-stubs/services directory ### Go @@ -84,7 +82,7 @@ Below are some usage examples for Go and Ruby. For other languages, please refer $ protoc --go_out=./go-stubs ./ServiceMgmt/proto3/services/* --go-grpc_out=go-stubs -I./ServiceMgmt/proto3 ``` > The generated `.pb.go` files will contain all the protocol buffer code to populate, serialize, and retrieve request and response message types defined in the `models` folder. - > And the `app_confirm_ready_service_grpc.pb.go` will contain the stubs for the methods defined in the `app_confirm_ready_service.proto` file. + > And the `<*_service_grpc>.pb.go` will contain the stubs for the methods defined in the `./ServiceMgmt/proto3/services/*` folder. ### Ruby @@ -99,12 +97,12 @@ Below are some usage examples for Go and Ruby. For other languages, please refer $ mkdir ruby-stubs ``` - Run the following command to create Ruby modules for all the data models defined in the proto files. + Run the following command to create Ruby modules for all the data models defined in the `./ServiceMgmt/proto3/models/*` folder. ```sh $ grpc_tools_ruby_protoc -I./proto3 --ruby_out=ruby-stubs ./proto3/models/* ``` - Run the following command to generate `app_confirm_ready_service_pb.rb` and `app_confirm_ready_service_pb.rb` files, containing stub and service classes for the endpoints and methods defined in MEC011 App Enablement service. + Run the following command to generate `<*_service_pb>.rb` files, containing stub and service classes for the endpoints and methods defined in MEC011 App Enablement service. ```sh $ grpc_tools_ruby_protoc -I./ServiceMgmt/proto3 --ruby_out=ruby-stubs --grpc_out=ruby-stubs ./ServiceMgmt/proto3/services/* diff --git a/proto3-gen.md b/proto3-gen.md index dd10737..f40d75e 100644 --- a/proto3-gen.md +++ b/proto3-gen.md @@ -33,6 +33,8 @@ Below are some code generation examples for Python, Go and Ruby. For other languages, please refer to https://grpc.io/docs/quickstart/. +>**NOTE:** In the below example commands we are generating proto3 descriptions for AppSupport API. + ### Python 1. Install the grpcio-tools package @@ -50,20 +52,18 @@ Below are some code generation examples for Python, Go and Ruby. For other langu - Models: ```sh - $ python3 -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs ./AppSupport/proto3/models/* + $ python -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs ./AppSupport/proto3/models/* ``` - The above command will generate .py files for all the data models in the ./models directory + The above command will generate .py files for all the data models in the ./python-stubs/models directory - Services: ```sh - $ python3 -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs --grpc_python_out=./python-stubs .AppSupport/proto3/services/* + $ python -m grpc_tools.protoc -I./AppSupport/proto3 --python_out=./python-stubs --grpc_python_out=./python-stubs ./AppSupport/proto3/services/* ``` - The above command will generate two files for the each Application Support services: - - _app_confirm_ready_service_pb2.py_: containing the python data models used in the Application Support service file - - _app_confirm_ready_service_pb2_grpc.py_: containing all the classes and functions needed for the supported HTTP methods in the Application Support API + The above command will generate .py files for all the services in the ./python-stubs/services directory ### Go @@ -104,7 +104,7 @@ Below are some code generation examples for Python, Go and Ruby. For other langu $ protoc --go_out=./go-stubs ./AppSupport/proto3/services/* --go-grpc_out=go-stubs -I./AppSupport/proto3 ``` > The generated `.pb.go` files will contain all the protocol buffer code to populate, serialize, and retrieve request and response message types defined in the `models` folder. - > And the `app_confirm_ready_service_grpc.pb.go` will contain the stubs for the methods defined in the `app_confirm_ready_service.proto` file. + > And the `<*_service_grpc>.pb.go` will contain the stubs for the methods defined in the `./AppSupport/proto3/services/*` folder. ### Ruby @@ -119,12 +119,12 @@ Below are some code generation examples for Python, Go and Ruby. For other langu $ mkdir ruby-stubs ``` - Run the following command to create Ruby modules for all the data models defined in the proto files. + Run the following command to create Ruby modules for all the data models defined in the `./AppSupport/proto3/models/*` folder. ```sh $ grpc_tools_ruby_protoc -I./proto3 --ruby_out=ruby-stubs ./proto3/models/* ``` - Run the following command to generate `app_confirm_ready_service_pb.rb` and `app_confirm_ready_service_pb.rb` files, containing stub and service classes for the endpoints and methods defined in MEC011 App Enablement service. + Run the following command to generate `<*_service_pb>.rb` files, containing stub and service classes for the endpoints and methods defined in MEC011 App Enablement service. ```sh $ grpc_tools_ruby_protoc -I./AppSupport/proto3 --ruby_out=ruby-stubs --grpc_out=ruby-stubs ./AppSupport/proto3/services/* -- GitLab From b2fe91dbc4c086506dc9802a0f79220ac2316d76 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Mon, 23 Jan 2023 15:41:53 +0500 Subject: [PATCH 15/17] add .gitignore file --- .gitignore | 6 ++++++ .vscode/settings.json | 3 --- 2 files changed, 6 insertions(+), 3 deletions(-) create mode 100644 .gitignore delete mode 100644 .vscode/settings.json diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..84c2738 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +protoc/ +go-stubs/ +ruby-stubs/ +.proto-gen/ +python-stubs/ +.vscode \ No newline at end of file diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index 3b66410..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "git.ignoreLimitWarning": true -} \ No newline at end of file -- GitLab From 834bb780e2a2ccc07d9d79984b063230a2ce96a8 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Mon, 23 Jan 2023 15:42:57 +0500 Subject: [PATCH 16/17] update .gitignore file --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 84c2738..8b5c618 100644 --- a/.gitignore +++ b/.gitignore @@ -3,4 +3,4 @@ go-stubs/ ruby-stubs/ .proto-gen/ python-stubs/ -.vscode \ No newline at end of file +.vscode/ \ No newline at end of file -- GitLab From 4cf9c98936ca81b89934400b7515445ae73e7ae7 Mon Sep 17 00:00:00 2001 From: "M. Hamza" Date: Wed, 25 Jan 2023 18:13:03 +0500 Subject: [PATCH 17/17] update proto3 folders name for each API --- {AppSupport => AppSupportProto3}/proto3/.openapi-generator-ignore | 0 {AppSupport => AppSupportProto3}/proto3/.openapi-generator/FILES | 0 .../proto3/.openapi-generator/VERSION | 0 {AppSupport => AppSupportProto3}/proto3/README.md | 0 {AppSupport => AppSupportProto3}/proto3/models/app_info.proto | 0 .../proto3/models/app_info_endpoint.proto | 0 {AppSupport => AppSupportProto3}/proto3/models/app_profile.proto | 0 .../proto3/models/app_ready_confirmation.proto | 0 .../proto3/models/app_termination_confirmation.proto | 0 .../proto3/models/app_termination_notification.proto | 0 .../proto3/models/app_termination_notification_links.proto | 0 .../proto3/models/app_termination_notification_subscription.proto | 0 {AppSupport => AppSupportProto3}/proto3/models/category_ref.proto | 0 {AppSupport => AppSupportProto3}/proto3/models/current_time.proto | 0 .../proto3/models/destination_interface.proto | 0 .../proto3/models/destination_interface_interface_type.proto | 0 {AppSupport => AppSupportProto3}/proto3/models/dns_rule.proto | 0 .../proto3/models/dns_rule_ip_address_type.proto | 0 .../proto3/models/dns_rule_state.proto | 0 .../proto3/models/end_point_info_address.proto | 0 .../proto3/models/feature_dependency.proto | 0 {AppSupport => AppSupportProto3}/proto3/models/link_type.proto | 0 .../proto3/models/mec_app_supt_api_subscription_link_list.proto | 0 .../models/mec_app_supt_api_subscription_link_list_links.proto | 0 .../mec_app_supt_api_subscription_link_list_subscription.proto | 0 .../proto3/models/operation_action_type.proto | 0 .../proto3/models/problem_details.proto | 0 .../proto3/models/security_info.proto | 0 .../proto3/models/security_info_o_auth2_info.proto | 0 .../proto3/models/security_info_o_auth2_info_grant_type.proto | 0 {AppSupport => AppSupportProto3}/proto3/models/self.proto | 0 .../proto3/models/serializer_type.proto | 0 .../proto3/models/service_dependency.proto | 0 .../proto3/models/time_source_status.proto | 0 {AppSupport => AppSupportProto3}/proto3/models/timing_caps.proto | 0 .../proto3/models/timing_caps_ntp_servers.proto | 0 .../models/timing_caps_ntp_servers_authentication_option.proto | 0 .../models/timing_caps_ntp_servers_ntp_server_addr_type.proto | 0 .../proto3/models/timing_caps_ptp_masters.proto | 0 .../proto3/models/timing_caps_time_stamp.proto | 0 .../proto3/models/traffic_filter.proto | 0 {AppSupport => AppSupportProto3}/proto3/models/traffic_rule.proto | 0 .../proto3/models/traffic_rule_action.proto | 0 .../proto3/models/traffic_rule_filter_type.proto | 0 .../proto3/models/traffic_rule_state.proto | 0 .../proto3/models/transport_dependency.proto | 0 .../proto3/models/transport_descriptor.proto | 0 .../proto3/models/transport_type.proto | 0 {AppSupport => AppSupportProto3}/proto3/models/tunnel_info.proto | 0 .../proto3/models/tunnel_info_tunnel_type.proto | 0 .../proto3/services/app_confirm_ready_service.proto | 0 .../proto3/services/app_confirm_termination_service.proto | 0 .../proto3/services/app_dns_rules_service.proto | 0 .../proto3/services/app_registrations_service.proto | 0 .../proto3/services/app_subscriptions_service.proto | 0 .../proto3/services/app_traffic_rules_service.proto | 0 .../proto3/services/timing_service.proto | 0 .../proto3/.openapi-generator-ignore | 0 .../proto3/.openapi-generator/FILES | 0 .../proto3/.openapi-generator/VERSION | 0 {ServiceMgmt => ServiceMgmtProto3}/proto3/README.md | 0 .../proto3/models/category_ref.proto | 0 .../proto3/models/end_point_info_address.proto | 0 .../proto3/models/end_point_info_addresses.proto | 0 {ServiceMgmt => ServiceMgmtProto3}/proto3/models/link_type.proto | 0 .../proto3/models/locality_type.proto | 0 .../models/mec_service_mgmt_api_subscription_link_list.proto | 0 .../mec_service_mgmt_api_subscription_link_list_links.proto | 0 ...mec_service_mgmt_api_subscription_link_list_subscription.proto | 0 .../proto3/models/problem_details.proto | 0 .../proto3/models/security_info.proto | 0 .../proto3/models/security_info_o_auth2_info.proto | 0 .../proto3/models/security_info_o_auth2_info_grant_type.proto | 0 {ServiceMgmt => ServiceMgmtProto3}/proto3/models/self.proto | 0 .../models/ser_availability_notification_subscription.proto | 0 ...vailability_notification_subscription_filtering_criteria.proto | 0 .../proto3/models/serializer_type.proto | 0 .../proto3/models/service_availability_notification.proto | 0 .../models/service_availability_notification_change_type.proto | 0 .../service_availability_notification_service_references.proto | 0 .../proto3/models/service_info.proto | 0 .../proto3/models/service_info_links.proto | 0 .../proto3/models/service_liveness_info.proto | 0 .../proto3/models/service_liveness_info_time_stamp.proto | 0 .../proto3/models/service_liveness_update.proto | 0 .../proto3/models/service_state.proto | 0 .../proto3/models/subscription.proto | 0 .../proto3/models/transport_info.proto | 0 .../proto3/models/transport_info_endpoint.proto | 0 .../proto3/models/transport_type.proto | 0 .../proto3/services/app_services_service.proto | 0 .../proto3/services/app_subscriptions_service.proto | 0 .../proto3/services/individual_me_cservice_service.proto | 0 .../proto3/services/services_service.proto | 0 .../proto3/services/transports_service.proto | 0 95 files changed, 0 insertions(+), 0 deletions(-) rename {AppSupport => AppSupportProto3}/proto3/.openapi-generator-ignore (100%) rename {AppSupport => AppSupportProto3}/proto3/.openapi-generator/FILES (100%) rename {AppSupport => AppSupportProto3}/proto3/.openapi-generator/VERSION (100%) rename {AppSupport => AppSupportProto3}/proto3/README.md (100%) rename {AppSupport => AppSupportProto3}/proto3/models/app_info.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/app_info_endpoint.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/app_profile.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/app_ready_confirmation.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/app_termination_confirmation.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/app_termination_notification.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/app_termination_notification_links.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/app_termination_notification_subscription.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/category_ref.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/current_time.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/destination_interface.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/destination_interface_interface_type.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/dns_rule.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/dns_rule_ip_address_type.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/dns_rule_state.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/end_point_info_address.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/feature_dependency.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/link_type.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/mec_app_supt_api_subscription_link_list.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/mec_app_supt_api_subscription_link_list_links.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/operation_action_type.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/problem_details.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/security_info.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/security_info_o_auth2_info.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/security_info_o_auth2_info_grant_type.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/self.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/serializer_type.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/service_dependency.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/time_source_status.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/timing_caps.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/timing_caps_ntp_servers.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/timing_caps_ntp_servers_authentication_option.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/timing_caps_ntp_servers_ntp_server_addr_type.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/timing_caps_ptp_masters.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/timing_caps_time_stamp.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/traffic_filter.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/traffic_rule.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/traffic_rule_action.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/traffic_rule_filter_type.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/traffic_rule_state.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/transport_dependency.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/transport_descriptor.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/transport_type.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/tunnel_info.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/models/tunnel_info_tunnel_type.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/services/app_confirm_ready_service.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/services/app_confirm_termination_service.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/services/app_dns_rules_service.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/services/app_registrations_service.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/services/app_subscriptions_service.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/services/app_traffic_rules_service.proto (100%) rename {AppSupport => AppSupportProto3}/proto3/services/timing_service.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/.openapi-generator-ignore (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/.openapi-generator/FILES (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/.openapi-generator/VERSION (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/README.md (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/category_ref.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/end_point_info_address.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/end_point_info_addresses.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/link_type.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/locality_type.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/mec_service_mgmt_api_subscription_link_list.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/problem_details.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/security_info.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/security_info_o_auth2_info.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/security_info_o_auth2_info_grant_type.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/self.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/ser_availability_notification_subscription.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/serializer_type.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/service_availability_notification.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/service_availability_notification_change_type.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/service_availability_notification_service_references.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/service_info.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/service_info_links.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/service_liveness_info.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/service_liveness_info_time_stamp.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/service_liveness_update.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/service_state.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/subscription.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/transport_info.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/transport_info_endpoint.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/models/transport_type.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/services/app_services_service.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/services/app_subscriptions_service.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/services/individual_me_cservice_service.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/services/services_service.proto (100%) rename {ServiceMgmt => ServiceMgmtProto3}/proto3/services/transports_service.proto (100%) diff --git a/AppSupport/proto3/.openapi-generator-ignore b/AppSupportProto3/proto3/.openapi-generator-ignore similarity index 100% rename from AppSupport/proto3/.openapi-generator-ignore rename to AppSupportProto3/proto3/.openapi-generator-ignore diff --git a/AppSupport/proto3/.openapi-generator/FILES b/AppSupportProto3/proto3/.openapi-generator/FILES similarity index 100% rename from AppSupport/proto3/.openapi-generator/FILES rename to AppSupportProto3/proto3/.openapi-generator/FILES diff --git a/AppSupport/proto3/.openapi-generator/VERSION b/AppSupportProto3/proto3/.openapi-generator/VERSION similarity index 100% rename from AppSupport/proto3/.openapi-generator/VERSION rename to AppSupportProto3/proto3/.openapi-generator/VERSION diff --git a/AppSupport/proto3/README.md b/AppSupportProto3/proto3/README.md similarity index 100% rename from AppSupport/proto3/README.md rename to AppSupportProto3/proto3/README.md diff --git a/AppSupport/proto3/models/app_info.proto b/AppSupportProto3/proto3/models/app_info.proto similarity index 100% rename from AppSupport/proto3/models/app_info.proto rename to AppSupportProto3/proto3/models/app_info.proto diff --git a/AppSupport/proto3/models/app_info_endpoint.proto b/AppSupportProto3/proto3/models/app_info_endpoint.proto similarity index 100% rename from AppSupport/proto3/models/app_info_endpoint.proto rename to AppSupportProto3/proto3/models/app_info_endpoint.proto diff --git a/AppSupport/proto3/models/app_profile.proto b/AppSupportProto3/proto3/models/app_profile.proto similarity index 100% rename from AppSupport/proto3/models/app_profile.proto rename to AppSupportProto3/proto3/models/app_profile.proto diff --git a/AppSupport/proto3/models/app_ready_confirmation.proto b/AppSupportProto3/proto3/models/app_ready_confirmation.proto similarity index 100% rename from AppSupport/proto3/models/app_ready_confirmation.proto rename to AppSupportProto3/proto3/models/app_ready_confirmation.proto diff --git a/AppSupport/proto3/models/app_termination_confirmation.proto b/AppSupportProto3/proto3/models/app_termination_confirmation.proto similarity index 100% rename from AppSupport/proto3/models/app_termination_confirmation.proto rename to AppSupportProto3/proto3/models/app_termination_confirmation.proto diff --git a/AppSupport/proto3/models/app_termination_notification.proto b/AppSupportProto3/proto3/models/app_termination_notification.proto similarity index 100% rename from AppSupport/proto3/models/app_termination_notification.proto rename to AppSupportProto3/proto3/models/app_termination_notification.proto diff --git a/AppSupport/proto3/models/app_termination_notification_links.proto b/AppSupportProto3/proto3/models/app_termination_notification_links.proto similarity index 100% rename from AppSupport/proto3/models/app_termination_notification_links.proto rename to AppSupportProto3/proto3/models/app_termination_notification_links.proto diff --git a/AppSupport/proto3/models/app_termination_notification_subscription.proto b/AppSupportProto3/proto3/models/app_termination_notification_subscription.proto similarity index 100% rename from AppSupport/proto3/models/app_termination_notification_subscription.proto rename to AppSupportProto3/proto3/models/app_termination_notification_subscription.proto diff --git a/AppSupport/proto3/models/category_ref.proto b/AppSupportProto3/proto3/models/category_ref.proto similarity index 100% rename from AppSupport/proto3/models/category_ref.proto rename to AppSupportProto3/proto3/models/category_ref.proto diff --git a/AppSupport/proto3/models/current_time.proto b/AppSupportProto3/proto3/models/current_time.proto similarity index 100% rename from AppSupport/proto3/models/current_time.proto rename to AppSupportProto3/proto3/models/current_time.proto diff --git a/AppSupport/proto3/models/destination_interface.proto b/AppSupportProto3/proto3/models/destination_interface.proto similarity index 100% rename from AppSupport/proto3/models/destination_interface.proto rename to AppSupportProto3/proto3/models/destination_interface.proto diff --git a/AppSupport/proto3/models/destination_interface_interface_type.proto b/AppSupportProto3/proto3/models/destination_interface_interface_type.proto similarity index 100% rename from AppSupport/proto3/models/destination_interface_interface_type.proto rename to AppSupportProto3/proto3/models/destination_interface_interface_type.proto diff --git a/AppSupport/proto3/models/dns_rule.proto b/AppSupportProto3/proto3/models/dns_rule.proto similarity index 100% rename from AppSupport/proto3/models/dns_rule.proto rename to AppSupportProto3/proto3/models/dns_rule.proto diff --git a/AppSupport/proto3/models/dns_rule_ip_address_type.proto b/AppSupportProto3/proto3/models/dns_rule_ip_address_type.proto similarity index 100% rename from AppSupport/proto3/models/dns_rule_ip_address_type.proto rename to AppSupportProto3/proto3/models/dns_rule_ip_address_type.proto diff --git a/AppSupport/proto3/models/dns_rule_state.proto b/AppSupportProto3/proto3/models/dns_rule_state.proto similarity index 100% rename from AppSupport/proto3/models/dns_rule_state.proto rename to AppSupportProto3/proto3/models/dns_rule_state.proto diff --git a/AppSupport/proto3/models/end_point_info_address.proto b/AppSupportProto3/proto3/models/end_point_info_address.proto similarity index 100% rename from AppSupport/proto3/models/end_point_info_address.proto rename to AppSupportProto3/proto3/models/end_point_info_address.proto diff --git a/AppSupport/proto3/models/feature_dependency.proto b/AppSupportProto3/proto3/models/feature_dependency.proto similarity index 100% rename from AppSupport/proto3/models/feature_dependency.proto rename to AppSupportProto3/proto3/models/feature_dependency.proto diff --git a/AppSupport/proto3/models/link_type.proto b/AppSupportProto3/proto3/models/link_type.proto similarity index 100% rename from AppSupport/proto3/models/link_type.proto rename to AppSupportProto3/proto3/models/link_type.proto diff --git a/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list.proto b/AppSupportProto3/proto3/models/mec_app_supt_api_subscription_link_list.proto similarity index 100% rename from AppSupport/proto3/models/mec_app_supt_api_subscription_link_list.proto rename to AppSupportProto3/proto3/models/mec_app_supt_api_subscription_link_list.proto diff --git a/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_links.proto b/AppSupportProto3/proto3/models/mec_app_supt_api_subscription_link_list_links.proto similarity index 100% rename from AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_links.proto rename to AppSupportProto3/proto3/models/mec_app_supt_api_subscription_link_list_links.proto diff --git a/AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto b/AppSupportProto3/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto similarity index 100% rename from AppSupport/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto rename to AppSupportProto3/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto diff --git a/AppSupport/proto3/models/operation_action_type.proto b/AppSupportProto3/proto3/models/operation_action_type.proto similarity index 100% rename from AppSupport/proto3/models/operation_action_type.proto rename to AppSupportProto3/proto3/models/operation_action_type.proto diff --git a/AppSupport/proto3/models/problem_details.proto b/AppSupportProto3/proto3/models/problem_details.proto similarity index 100% rename from AppSupport/proto3/models/problem_details.proto rename to AppSupportProto3/proto3/models/problem_details.proto diff --git a/AppSupport/proto3/models/security_info.proto b/AppSupportProto3/proto3/models/security_info.proto similarity index 100% rename from AppSupport/proto3/models/security_info.proto rename to AppSupportProto3/proto3/models/security_info.proto diff --git a/AppSupport/proto3/models/security_info_o_auth2_info.proto b/AppSupportProto3/proto3/models/security_info_o_auth2_info.proto similarity index 100% rename from AppSupport/proto3/models/security_info_o_auth2_info.proto rename to AppSupportProto3/proto3/models/security_info_o_auth2_info.proto diff --git a/AppSupport/proto3/models/security_info_o_auth2_info_grant_type.proto b/AppSupportProto3/proto3/models/security_info_o_auth2_info_grant_type.proto similarity index 100% rename from AppSupport/proto3/models/security_info_o_auth2_info_grant_type.proto rename to AppSupportProto3/proto3/models/security_info_o_auth2_info_grant_type.proto diff --git a/AppSupport/proto3/models/self.proto b/AppSupportProto3/proto3/models/self.proto similarity index 100% rename from AppSupport/proto3/models/self.proto rename to AppSupportProto3/proto3/models/self.proto diff --git a/AppSupport/proto3/models/serializer_type.proto b/AppSupportProto3/proto3/models/serializer_type.proto similarity index 100% rename from AppSupport/proto3/models/serializer_type.proto rename to AppSupportProto3/proto3/models/serializer_type.proto diff --git a/AppSupport/proto3/models/service_dependency.proto b/AppSupportProto3/proto3/models/service_dependency.proto similarity index 100% rename from AppSupport/proto3/models/service_dependency.proto rename to AppSupportProto3/proto3/models/service_dependency.proto diff --git a/AppSupport/proto3/models/time_source_status.proto b/AppSupportProto3/proto3/models/time_source_status.proto similarity index 100% rename from AppSupport/proto3/models/time_source_status.proto rename to AppSupportProto3/proto3/models/time_source_status.proto diff --git a/AppSupport/proto3/models/timing_caps.proto b/AppSupportProto3/proto3/models/timing_caps.proto similarity index 100% rename from AppSupport/proto3/models/timing_caps.proto rename to AppSupportProto3/proto3/models/timing_caps.proto diff --git a/AppSupport/proto3/models/timing_caps_ntp_servers.proto b/AppSupportProto3/proto3/models/timing_caps_ntp_servers.proto similarity index 100% rename from AppSupport/proto3/models/timing_caps_ntp_servers.proto rename to AppSupportProto3/proto3/models/timing_caps_ntp_servers.proto diff --git a/AppSupport/proto3/models/timing_caps_ntp_servers_authentication_option.proto b/AppSupportProto3/proto3/models/timing_caps_ntp_servers_authentication_option.proto similarity index 100% rename from AppSupport/proto3/models/timing_caps_ntp_servers_authentication_option.proto rename to AppSupportProto3/proto3/models/timing_caps_ntp_servers_authentication_option.proto diff --git a/AppSupport/proto3/models/timing_caps_ntp_servers_ntp_server_addr_type.proto b/AppSupportProto3/proto3/models/timing_caps_ntp_servers_ntp_server_addr_type.proto similarity index 100% rename from AppSupport/proto3/models/timing_caps_ntp_servers_ntp_server_addr_type.proto rename to AppSupportProto3/proto3/models/timing_caps_ntp_servers_ntp_server_addr_type.proto diff --git a/AppSupport/proto3/models/timing_caps_ptp_masters.proto b/AppSupportProto3/proto3/models/timing_caps_ptp_masters.proto similarity index 100% rename from AppSupport/proto3/models/timing_caps_ptp_masters.proto rename to AppSupportProto3/proto3/models/timing_caps_ptp_masters.proto diff --git a/AppSupport/proto3/models/timing_caps_time_stamp.proto b/AppSupportProto3/proto3/models/timing_caps_time_stamp.proto similarity index 100% rename from AppSupport/proto3/models/timing_caps_time_stamp.proto rename to AppSupportProto3/proto3/models/timing_caps_time_stamp.proto diff --git a/AppSupport/proto3/models/traffic_filter.proto b/AppSupportProto3/proto3/models/traffic_filter.proto similarity index 100% rename from AppSupport/proto3/models/traffic_filter.proto rename to AppSupportProto3/proto3/models/traffic_filter.proto diff --git a/AppSupport/proto3/models/traffic_rule.proto b/AppSupportProto3/proto3/models/traffic_rule.proto similarity index 100% rename from AppSupport/proto3/models/traffic_rule.proto rename to AppSupportProto3/proto3/models/traffic_rule.proto diff --git a/AppSupport/proto3/models/traffic_rule_action.proto b/AppSupportProto3/proto3/models/traffic_rule_action.proto similarity index 100% rename from AppSupport/proto3/models/traffic_rule_action.proto rename to AppSupportProto3/proto3/models/traffic_rule_action.proto diff --git a/AppSupport/proto3/models/traffic_rule_filter_type.proto b/AppSupportProto3/proto3/models/traffic_rule_filter_type.proto similarity index 100% rename from AppSupport/proto3/models/traffic_rule_filter_type.proto rename to AppSupportProto3/proto3/models/traffic_rule_filter_type.proto diff --git a/AppSupport/proto3/models/traffic_rule_state.proto b/AppSupportProto3/proto3/models/traffic_rule_state.proto similarity index 100% rename from AppSupport/proto3/models/traffic_rule_state.proto rename to AppSupportProto3/proto3/models/traffic_rule_state.proto diff --git a/AppSupport/proto3/models/transport_dependency.proto b/AppSupportProto3/proto3/models/transport_dependency.proto similarity index 100% rename from AppSupport/proto3/models/transport_dependency.proto rename to AppSupportProto3/proto3/models/transport_dependency.proto diff --git a/AppSupport/proto3/models/transport_descriptor.proto b/AppSupportProto3/proto3/models/transport_descriptor.proto similarity index 100% rename from AppSupport/proto3/models/transport_descriptor.proto rename to AppSupportProto3/proto3/models/transport_descriptor.proto diff --git a/AppSupport/proto3/models/transport_type.proto b/AppSupportProto3/proto3/models/transport_type.proto similarity index 100% rename from AppSupport/proto3/models/transport_type.proto rename to AppSupportProto3/proto3/models/transport_type.proto diff --git a/AppSupport/proto3/models/tunnel_info.proto b/AppSupportProto3/proto3/models/tunnel_info.proto similarity index 100% rename from AppSupport/proto3/models/tunnel_info.proto rename to AppSupportProto3/proto3/models/tunnel_info.proto diff --git a/AppSupport/proto3/models/tunnel_info_tunnel_type.proto b/AppSupportProto3/proto3/models/tunnel_info_tunnel_type.proto similarity index 100% rename from AppSupport/proto3/models/tunnel_info_tunnel_type.proto rename to AppSupportProto3/proto3/models/tunnel_info_tunnel_type.proto diff --git a/AppSupport/proto3/services/app_confirm_ready_service.proto b/AppSupportProto3/proto3/services/app_confirm_ready_service.proto similarity index 100% rename from AppSupport/proto3/services/app_confirm_ready_service.proto rename to AppSupportProto3/proto3/services/app_confirm_ready_service.proto diff --git a/AppSupport/proto3/services/app_confirm_termination_service.proto b/AppSupportProto3/proto3/services/app_confirm_termination_service.proto similarity index 100% rename from AppSupport/proto3/services/app_confirm_termination_service.proto rename to AppSupportProto3/proto3/services/app_confirm_termination_service.proto diff --git a/AppSupport/proto3/services/app_dns_rules_service.proto b/AppSupportProto3/proto3/services/app_dns_rules_service.proto similarity index 100% rename from AppSupport/proto3/services/app_dns_rules_service.proto rename to AppSupportProto3/proto3/services/app_dns_rules_service.proto diff --git a/AppSupport/proto3/services/app_registrations_service.proto b/AppSupportProto3/proto3/services/app_registrations_service.proto similarity index 100% rename from AppSupport/proto3/services/app_registrations_service.proto rename to AppSupportProto3/proto3/services/app_registrations_service.proto diff --git a/AppSupport/proto3/services/app_subscriptions_service.proto b/AppSupportProto3/proto3/services/app_subscriptions_service.proto similarity index 100% rename from AppSupport/proto3/services/app_subscriptions_service.proto rename to AppSupportProto3/proto3/services/app_subscriptions_service.proto diff --git a/AppSupport/proto3/services/app_traffic_rules_service.proto b/AppSupportProto3/proto3/services/app_traffic_rules_service.proto similarity index 100% rename from AppSupport/proto3/services/app_traffic_rules_service.proto rename to AppSupportProto3/proto3/services/app_traffic_rules_service.proto diff --git a/AppSupport/proto3/services/timing_service.proto b/AppSupportProto3/proto3/services/timing_service.proto similarity index 100% rename from AppSupport/proto3/services/timing_service.proto rename to AppSupportProto3/proto3/services/timing_service.proto diff --git a/ServiceMgmt/proto3/.openapi-generator-ignore b/ServiceMgmtProto3/proto3/.openapi-generator-ignore similarity index 100% rename from ServiceMgmt/proto3/.openapi-generator-ignore rename to ServiceMgmtProto3/proto3/.openapi-generator-ignore diff --git a/ServiceMgmt/proto3/.openapi-generator/FILES b/ServiceMgmtProto3/proto3/.openapi-generator/FILES similarity index 100% rename from ServiceMgmt/proto3/.openapi-generator/FILES rename to ServiceMgmtProto3/proto3/.openapi-generator/FILES diff --git a/ServiceMgmt/proto3/.openapi-generator/VERSION b/ServiceMgmtProto3/proto3/.openapi-generator/VERSION similarity index 100% rename from ServiceMgmt/proto3/.openapi-generator/VERSION rename to ServiceMgmtProto3/proto3/.openapi-generator/VERSION diff --git a/ServiceMgmt/proto3/README.md b/ServiceMgmtProto3/proto3/README.md similarity index 100% rename from ServiceMgmt/proto3/README.md rename to ServiceMgmtProto3/proto3/README.md diff --git a/ServiceMgmt/proto3/models/category_ref.proto b/ServiceMgmtProto3/proto3/models/category_ref.proto similarity index 100% rename from ServiceMgmt/proto3/models/category_ref.proto rename to ServiceMgmtProto3/proto3/models/category_ref.proto diff --git a/ServiceMgmt/proto3/models/end_point_info_address.proto b/ServiceMgmtProto3/proto3/models/end_point_info_address.proto similarity index 100% rename from ServiceMgmt/proto3/models/end_point_info_address.proto rename to ServiceMgmtProto3/proto3/models/end_point_info_address.proto diff --git a/ServiceMgmt/proto3/models/end_point_info_addresses.proto b/ServiceMgmtProto3/proto3/models/end_point_info_addresses.proto similarity index 100% rename from ServiceMgmt/proto3/models/end_point_info_addresses.proto rename to ServiceMgmtProto3/proto3/models/end_point_info_addresses.proto diff --git a/ServiceMgmt/proto3/models/link_type.proto b/ServiceMgmtProto3/proto3/models/link_type.proto similarity index 100% rename from ServiceMgmt/proto3/models/link_type.proto rename to ServiceMgmtProto3/proto3/models/link_type.proto diff --git a/ServiceMgmt/proto3/models/locality_type.proto b/ServiceMgmtProto3/proto3/models/locality_type.proto similarity index 100% rename from ServiceMgmt/proto3/models/locality_type.proto rename to ServiceMgmtProto3/proto3/models/locality_type.proto diff --git a/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list.proto b/ServiceMgmtProto3/proto3/models/mec_service_mgmt_api_subscription_link_list.proto similarity index 100% rename from ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list.proto rename to ServiceMgmtProto3/proto3/models/mec_service_mgmt_api_subscription_link_list.proto diff --git a/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto b/ServiceMgmtProto3/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto similarity index 100% rename from ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto rename to ServiceMgmtProto3/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto diff --git a/ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto b/ServiceMgmtProto3/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto similarity index 100% rename from ServiceMgmt/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto rename to ServiceMgmtProto3/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto diff --git a/ServiceMgmt/proto3/models/problem_details.proto b/ServiceMgmtProto3/proto3/models/problem_details.proto similarity index 100% rename from ServiceMgmt/proto3/models/problem_details.proto rename to ServiceMgmtProto3/proto3/models/problem_details.proto diff --git a/ServiceMgmt/proto3/models/security_info.proto b/ServiceMgmtProto3/proto3/models/security_info.proto similarity index 100% rename from ServiceMgmt/proto3/models/security_info.proto rename to ServiceMgmtProto3/proto3/models/security_info.proto diff --git a/ServiceMgmt/proto3/models/security_info_o_auth2_info.proto b/ServiceMgmtProto3/proto3/models/security_info_o_auth2_info.proto similarity index 100% rename from ServiceMgmt/proto3/models/security_info_o_auth2_info.proto rename to ServiceMgmtProto3/proto3/models/security_info_o_auth2_info.proto diff --git a/ServiceMgmt/proto3/models/security_info_o_auth2_info_grant_type.proto b/ServiceMgmtProto3/proto3/models/security_info_o_auth2_info_grant_type.proto similarity index 100% rename from ServiceMgmt/proto3/models/security_info_o_auth2_info_grant_type.proto rename to ServiceMgmtProto3/proto3/models/security_info_o_auth2_info_grant_type.proto diff --git a/ServiceMgmt/proto3/models/self.proto b/ServiceMgmtProto3/proto3/models/self.proto similarity index 100% rename from ServiceMgmt/proto3/models/self.proto rename to ServiceMgmtProto3/proto3/models/self.proto diff --git a/ServiceMgmt/proto3/models/ser_availability_notification_subscription.proto b/ServiceMgmtProto3/proto3/models/ser_availability_notification_subscription.proto similarity index 100% rename from ServiceMgmt/proto3/models/ser_availability_notification_subscription.proto rename to ServiceMgmtProto3/proto3/models/ser_availability_notification_subscription.proto diff --git a/ServiceMgmt/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto b/ServiceMgmtProto3/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto similarity index 100% rename from ServiceMgmt/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto rename to ServiceMgmtProto3/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto diff --git a/ServiceMgmt/proto3/models/serializer_type.proto b/ServiceMgmtProto3/proto3/models/serializer_type.proto similarity index 100% rename from ServiceMgmt/proto3/models/serializer_type.proto rename to ServiceMgmtProto3/proto3/models/serializer_type.proto diff --git a/ServiceMgmt/proto3/models/service_availability_notification.proto b/ServiceMgmtProto3/proto3/models/service_availability_notification.proto similarity index 100% rename from ServiceMgmt/proto3/models/service_availability_notification.proto rename to ServiceMgmtProto3/proto3/models/service_availability_notification.proto diff --git a/ServiceMgmt/proto3/models/service_availability_notification_change_type.proto b/ServiceMgmtProto3/proto3/models/service_availability_notification_change_type.proto similarity index 100% rename from ServiceMgmt/proto3/models/service_availability_notification_change_type.proto rename to ServiceMgmtProto3/proto3/models/service_availability_notification_change_type.proto diff --git a/ServiceMgmt/proto3/models/service_availability_notification_service_references.proto b/ServiceMgmtProto3/proto3/models/service_availability_notification_service_references.proto similarity index 100% rename from ServiceMgmt/proto3/models/service_availability_notification_service_references.proto rename to ServiceMgmtProto3/proto3/models/service_availability_notification_service_references.proto diff --git a/ServiceMgmt/proto3/models/service_info.proto b/ServiceMgmtProto3/proto3/models/service_info.proto similarity index 100% rename from ServiceMgmt/proto3/models/service_info.proto rename to ServiceMgmtProto3/proto3/models/service_info.proto diff --git a/ServiceMgmt/proto3/models/service_info_links.proto b/ServiceMgmtProto3/proto3/models/service_info_links.proto similarity index 100% rename from ServiceMgmt/proto3/models/service_info_links.proto rename to ServiceMgmtProto3/proto3/models/service_info_links.proto diff --git a/ServiceMgmt/proto3/models/service_liveness_info.proto b/ServiceMgmtProto3/proto3/models/service_liveness_info.proto similarity index 100% rename from ServiceMgmt/proto3/models/service_liveness_info.proto rename to ServiceMgmtProto3/proto3/models/service_liveness_info.proto diff --git a/ServiceMgmt/proto3/models/service_liveness_info_time_stamp.proto b/ServiceMgmtProto3/proto3/models/service_liveness_info_time_stamp.proto similarity index 100% rename from ServiceMgmt/proto3/models/service_liveness_info_time_stamp.proto rename to ServiceMgmtProto3/proto3/models/service_liveness_info_time_stamp.proto diff --git a/ServiceMgmt/proto3/models/service_liveness_update.proto b/ServiceMgmtProto3/proto3/models/service_liveness_update.proto similarity index 100% rename from ServiceMgmt/proto3/models/service_liveness_update.proto rename to ServiceMgmtProto3/proto3/models/service_liveness_update.proto diff --git a/ServiceMgmt/proto3/models/service_state.proto b/ServiceMgmtProto3/proto3/models/service_state.proto similarity index 100% rename from ServiceMgmt/proto3/models/service_state.proto rename to ServiceMgmtProto3/proto3/models/service_state.proto diff --git a/ServiceMgmt/proto3/models/subscription.proto b/ServiceMgmtProto3/proto3/models/subscription.proto similarity index 100% rename from ServiceMgmt/proto3/models/subscription.proto rename to ServiceMgmtProto3/proto3/models/subscription.proto diff --git a/ServiceMgmt/proto3/models/transport_info.proto b/ServiceMgmtProto3/proto3/models/transport_info.proto similarity index 100% rename from ServiceMgmt/proto3/models/transport_info.proto rename to ServiceMgmtProto3/proto3/models/transport_info.proto diff --git a/ServiceMgmt/proto3/models/transport_info_endpoint.proto b/ServiceMgmtProto3/proto3/models/transport_info_endpoint.proto similarity index 100% rename from ServiceMgmt/proto3/models/transport_info_endpoint.proto rename to ServiceMgmtProto3/proto3/models/transport_info_endpoint.proto diff --git a/ServiceMgmt/proto3/models/transport_type.proto b/ServiceMgmtProto3/proto3/models/transport_type.proto similarity index 100% rename from ServiceMgmt/proto3/models/transport_type.proto rename to ServiceMgmtProto3/proto3/models/transport_type.proto diff --git a/ServiceMgmt/proto3/services/app_services_service.proto b/ServiceMgmtProto3/proto3/services/app_services_service.proto similarity index 100% rename from ServiceMgmt/proto3/services/app_services_service.proto rename to ServiceMgmtProto3/proto3/services/app_services_service.proto diff --git a/ServiceMgmt/proto3/services/app_subscriptions_service.proto b/ServiceMgmtProto3/proto3/services/app_subscriptions_service.proto similarity index 100% rename from ServiceMgmt/proto3/services/app_subscriptions_service.proto rename to ServiceMgmtProto3/proto3/services/app_subscriptions_service.proto diff --git a/ServiceMgmt/proto3/services/individual_me_cservice_service.proto b/ServiceMgmtProto3/proto3/services/individual_me_cservice_service.proto similarity index 100% rename from ServiceMgmt/proto3/services/individual_me_cservice_service.proto rename to ServiceMgmtProto3/proto3/services/individual_me_cservice_service.proto diff --git a/ServiceMgmt/proto3/services/services_service.proto b/ServiceMgmtProto3/proto3/services/services_service.proto similarity index 100% rename from ServiceMgmt/proto3/services/services_service.proto rename to ServiceMgmtProto3/proto3/services/services_service.proto diff --git a/ServiceMgmt/proto3/services/transports_service.proto b/ServiceMgmtProto3/proto3/services/transports_service.proto similarity index 100% rename from ServiceMgmt/proto3/services/transports_service.proto rename to ServiceMgmtProto3/proto3/services/transports_service.proto -- GitLab