diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000000000000000000000000000000000000..8b5c6187184da2b5d0401d5129544f6782540f3c --- /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 3b664107303df336bab8010caad42ddaed24550e..0000000000000000000000000000000000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "git.ignoreLimitWarning": true -} \ No newline at end of file diff --git a/AppSupportProto3/proto3/.openapi-generator-ignore b/AppSupportProto3/proto3/.openapi-generator-ignore new file mode 100644 index 0000000000000000000000000000000000000000..7484ee590a3894506cf063799b885428f95a71be --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/.openapi-generator/FILES b/AppSupportProto3/proto3/.openapi-generator/FILES new file mode 100644 index 0000000000000000000000000000000000000000..5b60edb7a3baf8ea0eb13f137229a97bc8803c27 --- /dev/null +++ b/AppSupportProto3/proto3/.openapi-generator/FILES @@ -0,0 +1,58 @@ +.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/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/AppSupportProto3/proto3/.openapi-generator/VERSION b/AppSupportProto3/proto3/.openapi-generator/VERSION new file mode 100644 index 0000000000000000000000000000000000000000..0df17dd0f6a3118d982764919cb95064635877a8 --- /dev/null +++ b/AppSupportProto3/proto3/.openapi-generator/VERSION @@ -0,0 +1 @@ +6.2.1 \ No newline at end of file diff --git a/AppSupportProto3/proto3/README.md b/AppSupportProto3/proto3/README.md new file mode 100644 index 0000000000000000000000000000000000000000..ba6af929460398bfdf523ca834781bf6576c59b9 --- /dev/null +++ b/AppSupportProto3/proto3/README.md @@ -0,0 +1,109 @@ +# 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/. + +### 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 + $ 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 ./python-stubs/models directory + + - Services: + + ```sh + $ 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 .py files for all the services in the ./python-stubs/services directory + +### 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 `<*_service_grpc>.pb.go` will contain the stubs for the methods defined in the `./AppSupport/proto3/services/*` folder. + +### 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 `./AppSupport/proto3/models/*` folder. + + ```sh + $ grpc_tools_ruby_protoc -I./proto3 --ruby_out=ruby-stubs ./proto3/models/* + ``` + 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/* + ``` \ No newline at end of file diff --git a/AppSupportProto3/proto3/models/app_info.proto b/AppSupportProto3/proto3/models/app_info.proto new file mode 100644 index 0000000000000000000000000000000000000000..594353d5f13d58e464a5618dfe932349c124a85d --- /dev/null +++ b/AppSupportProto3/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 = 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; + + 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/AppSupportProto3/proto3/models/app_info_endpoint.proto b/AppSupportProto3/proto3/models/app_info_endpoint.proto new file mode 100644 index 0000000000000000000000000000000000000000..cd1f9f7616e6fbce3f879a10ba1dd8e15fa5e376 --- /dev/null +++ b/AppSupportProto3/proto3/models/app_info_endpoint.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/end_point_info_address.proto"; +// import public "models/end_point_info_addresses.proto"; + + +message AppInfoEndpoint { + +oneof EndpointInfo { + + // Entry point information of the service as string, formatted according to URI syntax + string uris = 4; + + // Fully Qualified Domain Name of the service. See note. + string fqdn = 1; + + // Entry point information of the service as one or more pairs of IP address and port. See note. + 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/AppSupportProto3/proto3/models/app_profile.proto b/AppSupportProto3/proto3/models/app_profile.proto new file mode 100644 index 0000000000000000000000000000000000000000..c6365e032053d3eed5ba15b16b4c11ca7387693e --- /dev/null +++ b/AppSupportProto3/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_info_endpoint.proto"; + +message AppProfile { + + // The identifier of the EAS + string easId = 14; + + 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/AppSupportProto3/proto3/models/app_ready_confirmation.proto b/AppSupportProto3/proto3/models/app_ready_confirmation.proto new file mode 100644 index 0000000000000000000000000000000000000000..b3b5d2da509571d674d5eefd3e72f4e5d2338eef --- /dev/null +++ b/AppSupportProto3/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 = 1; + +} diff --git a/AppSupportProto3/proto3/models/app_termination_confirmation.proto b/AppSupportProto3/proto3/models/app_termination_confirmation.proto new file mode 100644 index 0000000000000000000000000000000000000000..8db200cdb32ad05c45ae59b6a19d6a1c83de7a43 --- /dev/null +++ b/AppSupportProto3/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 = 1; + +} diff --git a/AppSupportProto3/proto3/models/app_termination_notification.proto b/AppSupportProto3/proto3/models/app_termination_notification.proto new file mode 100644 index 0000000000000000000000000000000000000000..61078a07ec26f1bca9ca955f8daf75378151fe50 --- /dev/null +++ b/AppSupportProto3/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 = 4; + + 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/AppSupportProto3/proto3/models/app_termination_notification_links.proto b/AppSupportProto3/proto3/models/app_termination_notification_links.proto new file mode 100644 index 0000000000000000000000000000000000000000..0a3b42b29666c169b9f2ac15fe303db42bfab6f4 --- /dev/null +++ b/AppSupportProto3/proto3/models/app_termination_notification_links.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; + +import public "models/link_type.proto"; + +message AppTerminationNotificationLinks { + + LinkType subscription = 2; + + LinkType confirmTermination = 1; + +} diff --git a/AppSupportProto3/proto3/models/app_termination_notification_subscription.proto b/AppSupportProto3/proto3/models/app_termination_notification_subscription.proto new file mode 100644 index 0000000000000000000000000000000000000000..0763aaf9fd7221cec226cc937ce50a54afdbc96d --- /dev/null +++ b/AppSupportProto3/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 = 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; + + Self _links = 2; + + // It is used as the filtering criterion for the subscribed events. + string appInstanceId = 3; + +} diff --git a/AppSupportProto3/proto3/models/category_ref.proto b/AppSupportProto3/proto3/models/category_ref.proto new file mode 100644 index 0000000000000000000000000000000000000000..c088e1a76f611102b2cdc27c39a7e8096d17b0b8 --- /dev/null +++ b/AppSupportProto3/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 = 4; + + // 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/AppSupportProto3/proto3/models/current_time.proto b/AppSupportProto3/proto3/models/current_time.proto new file mode 100644 index 0000000000000000000000000000000000000000..148d7601c3cf7f83f8f47929764d1033007a1fab --- /dev/null +++ b/AppSupportProto3/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 = 3; + + // 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/AppSupportProto3/proto3/models/destination_interface.proto b/AppSupportProto3/proto3/models/destination_interface.proto new file mode 100644 index 0000000000000000000000000000000000000000..bf8e86dd0db8b06703329cd539c0d365bf33344c --- /dev/null +++ b/AppSupportProto3/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 = 5; + + 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/AppSupportProto3/proto3/models/destination_interface_interface_type.proto b/AppSupportProto3/proto3/models/destination_interface_interface_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..41fb545462cc14bd1ab501121466492466012d88 --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/models/dns_rule.proto b/AppSupportProto3/proto3/models/dns_rule.proto new file mode 100644 index 0000000000000000000000000000000000000000..f9ea842a3bcf601c84acd04a339658f25728e4d9 --- /dev/null +++ b/AppSupportProto3/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 = 6; + + // 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/AppSupportProto3/proto3/models/dns_rule_ip_address_type.proto b/AppSupportProto3/proto3/models/dns_rule_ip_address_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..842a2cd3f040508096f1ff0900c026c20769a81e --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/models/dns_rule_state.proto b/AppSupportProto3/proto3/models/dns_rule_state.proto new file mode 100644 index 0000000000000000000000000000000000000000..28169ff5d762a8c57cc4a422d3a9c8947b0c333b --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/models/end_point_info_address.proto b/AppSupportProto3/proto3/models/end_point_info_address.proto new file mode 100644 index 0000000000000000000000000000000000000000..d456828b9ffa1a5e437aaa81014eb37b49298694 --- /dev/null +++ b/AppSupportProto3/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 = 2; + + // Port portion of the address + int32 port = 1; + +} diff --git a/AppSupportProto3/proto3/models/feature_dependency.proto b/AppSupportProto3/proto3/models/feature_dependency.proto new file mode 100644 index 0000000000000000000000000000000000000000..838a7a3b966b78d6792b7b57599dd38c38a54829 --- /dev/null +++ b/AppSupportProto3/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 = 2; + + // The version of the feature. + string version = 1; + +} diff --git a/AppSupportProto3/proto3/models/link_type.proto b/AppSupportProto3/proto3/models/link_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..e0f66daf79c851be96fd8d6dede91ebe19075aa7 --- /dev/null +++ b/AppSupportProto3/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 = 1; + +} diff --git a/AppSupportProto3/proto3/models/mec_app_supt_api_subscription_link_list.proto b/AppSupportProto3/proto3/models/mec_app_supt_api_subscription_link_list.proto new file mode 100644 index 0000000000000000000000000000000000000000..0b464f16aaf3d8264828c16799479cf1fa995c00 --- /dev/null +++ b/AppSupportProto3/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 = 1; + +} diff --git a/AppSupportProto3/proto3/models/mec_app_supt_api_subscription_link_list_links.proto b/AppSupportProto3/proto3/models/mec_app_supt_api_subscription_link_list_links.proto new file mode 100644 index 0000000000000000000000000000000000000000..cd311b02dac5988360f89300da3a8eb3f761cdce --- /dev/null +++ b/AppSupportProto3/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 = 2; + + // The MEC application instance's subscriptions + repeated MecAppSuptApiSubscriptionLinkListSubscription subscriptions = 1; + +} diff --git a/AppSupportProto3/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto b/AppSupportProto3/proto3/models/mec_app_supt_api_subscription_link_list_subscription.proto new file mode 100644 index 0000000000000000000000000000000000000000..39e1749eeb0284a5b96b5e580e390746f2f80b3c --- /dev/null +++ b/AppSupportProto3/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 = 2; + + // The values shall be set to AppTerminationNotificationSubscription. + string subscriptionType = 1; + +} diff --git a/AppSupportProto3/proto3/models/operation_action_type.proto b/AppSupportProto3/proto3/models/operation_action_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..d5b5b75b3a1af0879a518d8133fb03f255439e7e --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/models/problem_details.proto b/AppSupportProto3/proto3/models/problem_details.proto new file mode 100644 index 0000000000000000000000000000000000000000..714ff1958082104848332c3718cb3caaabbf11f1 --- /dev/null +++ b/AppSupportProto3/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 = 5; + + // 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/AppSupportProto3/proto3/models/security_info.proto b/AppSupportProto3/proto3/models/security_info.proto new file mode 100644 index 0000000000000000000000000000000000000000..9df3419ec64e12c6b976daef99f8837ea6b88345 --- /dev/null +++ b/AppSupportProto3/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 = 1; + +} diff --git a/AppSupportProto3/proto3/models/security_info_o_auth2_info.proto b/AppSupportProto3/proto3/models/security_info_o_auth2_info.proto new file mode 100644 index 0000000000000000000000000000000000000000..87923c360a569bfd2f38adf624ce61604aff69d4 --- /dev/null +++ b/AppSupportProto3/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 = 2; + + // The token endpoint + string tokenEndpoint = 1; + +} diff --git a/AppSupportProto3/proto3/models/security_info_o_auth2_info_grant_type.proto b/AppSupportProto3/proto3/models/security_info_o_auth2_info_grant_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..df8e2ac20114a1f206290499c1905433c8d7aa61 --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/models/self.proto b/AppSupportProto3/proto3/models/self.proto new file mode 100644 index 0000000000000000000000000000000000000000..e1bdcd6e1cae8d51d440d6ff2cc95b751df170ab --- /dev/null +++ b/AppSupportProto3/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 = 1; + +} diff --git a/AppSupportProto3/proto3/models/serializer_type.proto b/AppSupportProto3/proto3/models/serializer_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..f1820dd1ced8ff2c7721e2caf5f53cb2b08c933c --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/models/service_dependency.proto b/AppSupportProto3/proto3/models/service_dependency.proto new file mode 100644 index 0000000000000000000000000000000000000000..05841860c475c67545e88d3e22e8c3ddd37a4109 --- /dev/null +++ b/AppSupportProto3/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 = 5; + + 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/AppSupportProto3/proto3/models/time_source_status.proto b/AppSupportProto3/proto3/models/time_source_status.proto new file mode 100644 index 0000000000000000000000000000000000000000..3443628d3942df83b814809ee2a25be2df70bf8c --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/models/timing_caps.proto b/AppSupportProto3/proto3/models/timing_caps.proto new file mode 100644 index 0000000000000000000000000000000000000000..d80f614d0e9fb0edcc7a2a2f0149593177de3a07 --- /dev/null +++ b/AppSupportProto3/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 = 3; + + // 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/AppSupportProto3/proto3/models/timing_caps_ntp_servers.proto b/AppSupportProto3/proto3/models/timing_caps_ntp_servers.proto new file mode 100644 index 0000000000000000000000000000000000000000..9427ee69562534d3b9b9286233e2dab5d85045cd --- /dev/null +++ b/AppSupportProto3/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 = 7; + + // 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/AppSupportProto3/proto3/models/timing_caps_ntp_servers_authentication_option.proto b/AppSupportProto3/proto3/models/timing_caps_ntp_servers_authentication_option.proto new file mode 100644 index 0000000000000000000000000000000000000000..64a4e04bd513173b59097386d96d58df0129b203 --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/models/timing_caps_ntp_servers_ntp_server_addr_type.proto b/AppSupportProto3/proto3/models/timing_caps_ntp_servers_ntp_server_addr_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..2df1a75999d010c384446d3e3700316d889c2840 --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/models/timing_caps_ptp_masters.proto b/AppSupportProto3/proto3/models/timing_caps_ptp_masters.proto new file mode 100644 index 0000000000000000000000000000000000000000..d361d04b7534c4cad4260693cb63afa12f9110a8 --- /dev/null +++ b/AppSupportProto3/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 = 3; + + // 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/AppSupportProto3/proto3/models/timing_caps_time_stamp.proto b/AppSupportProto3/proto3/models/timing_caps_time_stamp.proto new file mode 100644 index 0000000000000000000000000000000000000000..834a73a956a3e2dc78d80c1a6c70179504a52dc4 --- /dev/null +++ b/AppSupportProto3/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 = 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/AppSupportProto3/proto3/models/traffic_filter.proto b/AppSupportProto3/proto3/models/traffic_filter.proto new file mode 100644 index 0000000000000000000000000000000000000000..a606994b871ef7ba9da3a3238d39907361d4814c --- /dev/null +++ b/AppSupportProto3/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 = 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; + + // 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/AppSupportProto3/proto3/models/traffic_rule.proto b/AppSupportProto3/proto3/models/traffic_rule.proto new file mode 100644 index 0000000000000000000000000000000000000000..87e5c2675c7fa823149cc21ca74834dcfe13cc64 --- /dev/null +++ b/AppSupportProto3/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 = 7; + + 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/AppSupportProto3/proto3/models/traffic_rule_action.proto b/AppSupportProto3/proto3/models/traffic_rule_action.proto new file mode 100644 index 0000000000000000000000000000000000000000..dbdc0267794159cf385931646584956a58faabfa --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/models/traffic_rule_filter_type.proto b/AppSupportProto3/proto3/models/traffic_rule_filter_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..1d1055a953d23e6503e856513f08221065cacb04 --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/models/traffic_rule_state.proto b/AppSupportProto3/proto3/models/traffic_rule_state.proto new file mode 100644 index 0000000000000000000000000000000000000000..be4b00478255731f6e0a0613fb8a93730bb7649b --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/models/transport_dependency.proto b/AppSupportProto3/proto3/models/transport_dependency.proto new file mode 100644 index 0000000000000000000000000000000000000000..d5b92a7a777119b2ee087d5cc5fcbe1255b226a1 --- /dev/null +++ b/AppSupportProto3/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 = 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; + + TransportDescriptor transport = 2; + +} diff --git a/AppSupportProto3/proto3/models/transport_descriptor.proto b/AppSupportProto3/proto3/models/transport_descriptor.proto new file mode 100644 index 0000000000000000000000000000000000000000..e5f27add7f7caede67493483a1478b6f5969f45e --- /dev/null +++ b/AppSupportProto3/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 = 4; + + SecurityInfo security = 1; + + TransportType type = 2; + + // The version of the protocol used. + string version = 3; + +} diff --git a/AppSupportProto3/proto3/models/transport_type.proto b/AppSupportProto3/proto3/models/transport_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..95508e3fe39d50c6e69d321372b97936df58a3a8 --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/models/tunnel_info.proto b/AppSupportProto3/proto3/models/tunnel_info.proto new file mode 100644 index 0000000000000000000000000000000000000000..b7c7c710bd8465f6496cf967f53b0db5db6e09a2 --- /dev/null +++ b/AppSupportProto3/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 = 3; + + // Destination address of the tunnel + string tunnelDstAddress = 1; + + // Source address of the tunnel + string tunnelSrcAddress = 2; + +} diff --git a/AppSupportProto3/proto3/models/tunnel_info_tunnel_type.proto b/AppSupportProto3/proto3/models/tunnel_info_tunnel_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..4ede5fba2c9a248c9c6e8ead5846afbe4426c8cf --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/services/app_confirm_ready_service.proto b/AppSupportProto3/proto3/services/app_confirm_ready_service.proto new file mode 100644 index 0000000000000000000000000000000000000000..3a0925c5535346333d0d67d42e8285f6a1298f91 --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/services/app_confirm_termination_service.proto b/AppSupportProto3/proto3/services/app_confirm_termination_service.proto new file mode 100644 index 0000000000000000000000000000000000000000..fe1dfaa78d57fe400c36dd3a36ce86eee069e0f4 --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/services/app_dns_rules_service.proto b/AppSupportProto3/proto3/services/app_dns_rules_service.proto new file mode 100644 index 0000000000000000000000000000000000000000..10425f7cf54b35d9e92efbfe65c4afdc81468a59 --- /dev/null +++ b/AppSupportProto3/proto3/services/app_dns_rules_service.proto @@ -0,0 +1,57 @@ +/* + 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 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/AppSupportProto3/proto3/services/app_registrations_service.proto b/AppSupportProto3/proto3/services/app_registrations_service.proto new file mode 100644 index 0000000000000000000000000000000000000000..c202fc7713cdbabddd8f45ba13433559fe489a91 --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/services/app_subscriptions_service.proto b/AppSupportProto3/proto3/services/app_subscriptions_service.proto new file mode 100644 index 0000000000000000000000000000000000000000..c9f95257d8b9bef3abcc83eefa081d88eab611ae --- /dev/null +++ b/AppSupportProto3/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/AppSupportProto3/proto3/services/app_traffic_rules_service.proto b/AppSupportProto3/proto3/services/app_traffic_rules_service.proto new file mode 100644 index 0000000000000000000000000000000000000000..606eb39178b5bdd60c5bea59cd0daef5ad0a3fd9 --- /dev/null +++ b/AppSupportProto3/proto3/services/app_traffic_rules_service.proto @@ -0,0 +1,57 @@ +/* + 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 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/AppSupportProto3/proto3/services/timing_service.proto b/AppSupportProto3/proto3/services/timing_service.proto new file mode 100644 index 0000000000000000000000000000000000000000..a81fdb983d03b14ede6090828cb7a790f53b1115 --- /dev/null +++ b/AppSupportProto3/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 e36259c84b32173c1b5f58c2ea74c087a711f7cd..d02ac14acb8d997e03367412eae0e26b7f08396d 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,27 +37,26 @@ }, { "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": { "/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", @@ -75,9 +74,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": { @@ -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" @@ -131,32 +124,61 @@ "value": [ { "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": "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" } ] } @@ -166,8 +188,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 +206,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 +217,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,15 +236,11 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/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", @@ -253,9 +268,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": { @@ -265,28 +279,28 @@ "TrafficRule": { "value": { "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" } ], @@ -299,8 +313,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 +331,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 +342,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": { @@ -351,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", @@ -380,7 +389,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 +401,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": { @@ -410,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", @@ -426,6 +434,7 @@ { "dstInterface0": null, "interfaceType": "IP", + "tunnelInfo": "tunnel", "dstIpAddress": "20.1.1.1" } ], @@ -438,8 +447,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 +465,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 +476,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 +494,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,15 +513,11 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/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", @@ -534,9 +535,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 +594,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 +612,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 +623,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,15 +642,11 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/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", @@ -681,9 +674,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 +698,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 +716,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 +727,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": { @@ -758,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", @@ -787,7 +774,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 +786,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 +810,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 +828,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 +839,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 +857,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,17 +876,13 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/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.", + "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 +898,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 +910,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 +928,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 +939,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": { @@ -985,11 +959,9 @@ "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.", + "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 +976,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 +1013,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 +1031,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 +1042,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": { @@ -1097,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" @@ -1114,17 +1081,13 @@ } } }, - "parameters": [ - - ] + "parameters": [] }, "/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 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 +1113,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 +1125,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 +1143,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 +1154,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": { @@ -1215,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", @@ -1246,15 +1203,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 +1219,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,15 +1238,11 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/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", @@ -1310,7 +1259,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 +1271,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 +1295,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 +1306,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 +1324,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 +1342,7 @@ }, "429": { "description": "Too Many Requests. It is used when a rate limiter has triggered.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1419,15 +1361,11 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/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", @@ -1444,7 +1382,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 +1395,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 +1418,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 +1429,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 +1447,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 +1465,7 @@ }, "429": { "description": "Too Many Requests. It is used when a rate limiter has triggered.", - "headers": { - }, + "headers": {}, "content": { "application/problem+json": { "schema": { @@ -1553,38 +1484,72 @@ }, "deprecated": false }, - "parameters": [ - - ] + "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": [ - - ], + "/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": { - "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 +1567,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 +1578,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 +1597,41 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, - "/timing/current_time": { + "/registrations/{appInstanceId}": { "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", + "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": "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 +1649,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 +1660,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,36 +1679,457 @@ }, "deprecated": false }, - "parameters": [ - - ] - } - }, - "components": { - "schemas": { - "AppReadyConfirmation": { - "title": "AppReadyConfirmation", - "required": [ - "indication" + "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" + } + } ], - "type": "object", - "properties": { - "indication": { - "const": "READY", + "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", + "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" - ] + "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": ["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.\nDefault to FALSE if absent.", + "examples": [false] + }, + "appProfile": { + "$ref": "#/components/schemas/AppProfile" } }, - "description": "This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running." + "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" - ], + "required": ["operationAction"], "type": "object", "properties": { "operationAction": { @@ -1755,9 +2140,7 @@ }, "AppTerminationNotification.Links": { "title": "AppTerminationNotification.Links", - "required": [ - "subscription" - ], + "required": ["subscription"], "type": "object", "properties": { "subscription": { @@ -1782,9 +2165,7 @@ "notificationType": { "type": "string", "description": "Shall be set to AppTerminationNotification.", - "examples": [ - "AppTerminationNotification" - ] + "examples": ["AppTerminationNotification"] }, "operationAction": { "$ref": "#/components/schemas/OperationActionType" @@ -1793,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" @@ -1816,9 +2195,7 @@ "subscriptionType": { "type": "string", "description": "Shall be set to AppTerminationNotificationSubscription.", - "examples": [ - "AppTerminationNotificationSubscription" - ] + "examples": ["AppTerminationNotificationSubscription"] }, "callbackReference": { "type": "string", @@ -1830,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" @@ -1870,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": { @@ -1897,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", @@ -1956,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" @@ -1973,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", @@ -1986,7 +2323,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", @@ -1995,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" @@ -2009,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": { @@ -2038,31 +2370,24 @@ }, "MecAppSuptApiSubscriptionLinkList.Subscription": { "title": "MecAppSuptApiSubscriptionLinkList.Subscription", - "required": [ - "href", - "rel" - ], + "required": ["href", "subscriptionType"], "type": "object", "properties": { "href": { "type": "string", "description": "URI referring to a resource", - "examples": [ - "/mecAppSuptApi/example" - ] + "examples": ["/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." }, "MecAppSuptApiSubscriptionLinkList": { "title": "MecAppSuptApiSubscriptionLinkList", - "required": [ - "_links" - ], + "required": ["_links"], "type": "object", "properties": { "_links": { @@ -2073,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", @@ -2112,9 +2432,7 @@ }, "Self": { "title": "Self", - "required": [ - "self" - ], + "required": ["self"], "type": "object", "properties": { "self": { @@ -2125,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", @@ -2156,8 +2463,7 @@ "minPollingInterval", "maxPollingInterval", "localPriority", - "authenticationOption", - "authenticationKeyNum" + "authenticationOption" ], "type": "object", "properties": { @@ -2167,44 +2473,34 @@ "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" }, "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 - ] + "examples": [1] } }, "description": "NTP server detail." @@ -2221,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" @@ -2334,7 +2617,7 @@ }, "description": "Specify the protocol of the traffic filter" }, - "token": { + "tag": { "type": "array", "items": { "type": "string" @@ -2373,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." @@ -2408,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", @@ -2451,9 +2716,7 @@ "trafficRuleId": { "type": "string", "description": "Identify the traffic rule.", - "examples": [ - "TrafficRule1" - ] + "examples": ["TrafficRule1"] }, "filterType": { "$ref": "#/components/schemas/TrafficRule.FilterType" @@ -2462,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", @@ -2487,25 +2748,19 @@ "$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", - "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": { @@ -2514,31 +2769,400 @@ "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"], + "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"] + }, + "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. " + }, + "Not_specified": { + "description": "Not_specified" + }, + "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": [ - "TRACEABLE", - "NONTRACEABLE" + "OAUTH2_AUTHORIZATION_CODE", + "OAUTH2_IMPLICIT_GRANT", + "OAUTH2_RESOURCE_OWNER", + "OAUTH2_CLIENT_CREDENTIALS" ], "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" - ] + "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": { @@ -2553,9 +3177,5 @@ "required": true } } - }, - "security": [ - { - } - ] + } } diff --git a/MecAppSupportApi.yaml b/MecAppSupportApi.yaml index 9a6ecdf2ab5f302b6b2863b8a22e371ecbaea6e2..f0b77ab964690cdaff64f64cc8bba589333c9a5e 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,77 @@ 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 + 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: 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 + 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 '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 +143,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 +167,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: @@ -163,25 +207,30 @@ paths: TrafficRule: 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' + - 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: - - dstInterface0: + - dstInterface: null interfaceType: IP + tunnelInfo: tunnel 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 +242,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 +267,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 +302,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 +318,27 @@ 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.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: + - dstInterface0: null interfaceType: IP + tunnelInfo: tunnel 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 +350,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 +373,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 +389,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 +422,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 +465,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 +489,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 +535,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 +549,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 +574,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 +604,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 +622,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 +636,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 +659,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 +675,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 +720,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 +745,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 +774,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 +791,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 +805,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 +828,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 +902,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 +927,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 +983,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 +1013,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 +1033,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 +1056,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 +1084,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 +1118,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 +1132,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 +1155,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 +1183,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 +1538,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 +1565,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 +1597,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 +1626,7 @@ components: AppReadyConfirmation: title: AppReadyConfirmation required: - - indication + - indication type: object properties: indication: @@ -1093,21 +1634,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 +1767,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 +1879,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 +1948,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 +1957,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 +1969,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 +1990,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 +2062,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 +2095,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 +2198,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 +2212,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 +2241,7 @@ components: items: type: string description: Specify the protocol of the traffic filter - token: + tag: type: array items: type: string @@ -1557,78 +2268,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 +2364,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,30 +2391,380 @@ 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 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. ' + + Not_specified: + description: 'Not_specified' + + 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: 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 1e78b24bf1736abaf97397db4a627b161c92fd71..ae96c774e3a798f87761daf12d84875442b4ccb9 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": [ @@ -52,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", @@ -72,9 +68,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 +80,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 +98,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 +109,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": { @@ -137,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", @@ -156,7 +146,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 +183,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 +201,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 +212,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": { @@ -250,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" }, @@ -266,17 +251,13 @@ } } }, - "parameters": [ - - ] + "parameters": [] }, "/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 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 +283,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 +295,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 +313,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 +324,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": { @@ -367,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", @@ -398,15 +373,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 +389,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,15 +408,11 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/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", @@ -529,9 +496,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": { @@ -570,14 +536,17 @@ }, "security": { "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } }, - "serializer": "JSON" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } } ] ], @@ -614,14 +583,57 @@ }, "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/" + } + } } ] } @@ -631,8 +643,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 +661,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 +672,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 +690,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": { @@ -702,9 +710,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", @@ -783,20 +789,21 @@ "protocol": "HTTP", "version": "2.0", "endpoint": { - "uris": [ - "/mecSerMgmtApi/service/EntryPoint" - ] + "uris": ["/mecSerMgmtApi/service/EntryPoint"] }, "security": { "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } }, - "serializer": "JSON" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } } } } @@ -805,8 +812,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 +830,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 +841,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,15 +860,11 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/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", @@ -882,7 +882,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 +892,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": { @@ -921,20 +920,21 @@ "protocol": "HTTP", "version": "2.0", "endpoint": { - "uris": [ - "/mecSerMgmtApi/service/EntryPoint" - ] + "uris": ["/mecSerMgmtApi/service/EntryPoint"] }, "security": { "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } }, - "serializer": "JSON" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } } } } @@ -943,8 +943,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 +961,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 +972,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": { @@ -995,9 +992,7 @@ "deprecated": false }, "put": { - "tags": [ - "appServices" - ], + "tags": ["appServices"], "summary": "update service", "description": "This method updates the information about a mecService resource", "operationId": "AppServicesServiceId_PUT", @@ -1015,7 +1010,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 +1031,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": { @@ -1065,20 +1059,21 @@ "protocol": "HTTP", "version": "2.0", "endpoint": { - "uris": [ - "/mecSerMgmtApi/service/EntryPoint" - ] + "uris": ["/mecSerMgmtApi/service/EntryPoint"] }, "security": { "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } }, - "serializer": "JSON" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } } } } @@ -1087,8 +1082,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 +1100,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 +1111,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 +1129,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": { @@ -1158,9 +1149,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", @@ -1178,7 +1167,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 +1178,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 +1194,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,15 +1213,11 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/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", @@ -1310,9 +1291,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": { @@ -1351,14 +1331,17 @@ }, "security": { "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } }, - "serializer": "JSON" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } } ] ], @@ -1395,14 +1378,57 @@ }, "security": { "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } }, - "serializer": "JSON" + "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/" + } + } } ] } @@ -1412,8 +1438,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 +1456,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 +1467,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 +1485,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,15 +1504,11 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/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", @@ -1498,19 +1516,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": { @@ -1537,20 +1555,21 @@ "protocol": "HTTP", "version": "2.0", "endpoint": { - "uris": [ - "/mecSerMgmtApi/service/EntryPoint" - ] + "uris": ["/mecSerMgmtApi/service/EntryPoint"] }, "security": { "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], + "grantTypes": ["OAUTH2_CLIENT_CREDENTIALS"], "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" } } }, - "serializer": "JSON" + "serializer": "JSON", + "_links": { + "self": { + "href": "http://example.com/" + } + } } } } @@ -1559,8 +1578,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 +1596,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 +1607,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,26 +1626,19 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/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", - "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 +1654,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 +1672,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 +1683,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,21 +1702,17 @@ }, "deprecated": false }, - "parameters": [ - - ] + "parameters": [] }, "/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", "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 +1731,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 +1741,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": { @@ -1752,9 +1754,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", @@ -1771,7 +1771,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 +1782,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 +1795,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 +1805,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": { @@ -1845,76 +1843,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": { @@ -1922,29 +1898,26 @@ "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", - "required": [ - "alternative" - ], + "required": ["alternative"], "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", - "required": [ - "uris" - ], + "required": ["uris"], "type": "object", "properties": { "uris": { @@ -1952,10 +1925,25 @@ "items": { "type": "string" }, - "description": "" + "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": "Entry point information of the service as string, formatted according to URI syntax" + "description": "This type represents information about a transport endpoint. " }, "LinkType": { "title": "LinkType", @@ -1964,18 +1952,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": { @@ -1993,18 +1977,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", @@ -2015,9 +1994,7 @@ }, "MecServiceMgmtApiSubscriptionLinkList": { "title": "MecServiceMgmtApiSubscriptionLinkList", - "required": [ - "_links" - ], + "required": ["_links"], "type": "object", "properties": { "_links": { @@ -2063,16 +2040,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": { @@ -2087,9 +2059,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" @@ -2106,9 +2076,7 @@ }, "Self": { "title": "Self", - "required": [ - "self" - ], + "required": ["self"], "type": "object", "properties": { "self": { @@ -2119,19 +2087,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", @@ -2143,7 +2105,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", @@ -2180,28 +2143,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", @@ -2218,12 +2173,7 @@ }, "ServiceAvailabilityNotification.ServiceReferences": { "title": "ServiceAvailabilityNotification.ServiceReferences", - "required": [ - "serName", - "serInstanceId", - "state", - "changeType" - ], + "required": ["serName", "serInstanceId", "state", "changeType"], "type": "object", "properties": { "link": { @@ -2232,16 +2182,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" @@ -2254,30 +2200,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", @@ -2291,22 +2224,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", @@ -2322,16 +2247,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" @@ -2339,13 +2260,16 @@ "version": { "type": "string", "description": "Service version", - "examples": [ - "ServiceVersion1" - ] + "examples": ["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" }, @@ -2358,16 +2282,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", @@ -2375,9 +2295,7 @@ }, "_links": { "type": "object", - "required": [ - "self" - ], + "required": ["self"], "properties": { "self": { "$ref": "#/components/schemas/LinkType" @@ -2388,15 +2306,12 @@ } } }, - "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", - "required": [ - "state", - "timeStamp", - "interval" - ], + "required": ["state", "timeStamp", "interval"], "properties": { "state": { "$ref": "#/components/schemas/ServiceState" @@ -2404,10 +2319,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" @@ -2425,9 +2337,7 @@ }, "ServiceLivenessUpdate": { "type": "object", - "required": [ - "state" - ], + "required": ["state"], "properties": { "state": { "$ref": "#/components/schemas/ServiceState" @@ -2436,9 +2346,7 @@ }, "Subscription": { "title": "Subscription", - "required": [ - "subscription" - ], + "required": ["subscription"], "type": "object", "properties": { "subscription": { @@ -2463,23 +2371,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" @@ -2487,22 +2389,21 @@ "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": [ { "$ref": "#/components/schemas/EndPointInfo.Uris" }, + { + "$ref": "#/components/schemas/EndPointInfo.Fqdn" + }, { "$ref": "#/components/schemas/EndPointInfo.Addresses" }, @@ -2510,13 +2411,14 @@ "$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" }, "implSpecificInfo": { - "type": "object", + "type": "string", "description": "Additional implementation specific details of the transport" } }, @@ -2535,9 +2437,7 @@ ], "type": "string", "description": "The enumeration TransportType represents types of transports", - "examples": [ - "REST_HTTP" - ] + "examples": ["REST_HTTP"] } }, "requestBodies": { @@ -2552,9 +2452,5 @@ "required": true } } - }, - "security": [ - { - } - ] -} + } +} \ No newline at end of file diff --git a/MecServiceMgmtApi.yaml b/MecServiceMgmtApi.yaml index a325d529121e8a49b08e1dafeca7ee5c692b6474..5925d05ad3d18b4f3ebc771f6ab4c17944b15c8d 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,101 @@ 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 + _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 + - 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 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 +546,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 +569,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 +586,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 +657,20 @@ 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 + _links: + self: + href: http://example.com/ '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 +682,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 +706,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 +763,20 @@ 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 + _links: + self: + href: http://example.com/ '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 +788,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 +813,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 +845,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 +874,20 @@ 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 + _links: + self: + href: http://example.com/ '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 +899,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 +922,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 +939,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 +995,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 +1082,101 @@ 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 + _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 + - 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 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 +1188,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 +1211,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 +1227,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 +1276,20 @@ 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 + _links: + self: + href: http://example.com/ '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 +1301,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 +1328,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 +1352,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 +1366,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 +1390,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 +1452,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 +1626,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 +1641,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 +1664,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 +1728,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 +1740,7 @@ components: Self: title: Self required: - - self + - self type: object properties: self: @@ -1402,24 +1749,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 +1795,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 +1835,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 +1863,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 +1959,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 +1996,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 +2010,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 +2020,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 +2033,10 @@ components: properties: state: $ref: '#/components/schemas/ServiceState' - - Subscription: title: Subscription required: - - subscription + - subscription type: object properties: subscription: @@ -1648,75 +2045,74 @@ 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: - type: object + type: string description: Additional implementation specific details of the transport description: This type represents the general information of a MEC service. 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: application/json: schema: $ref: '#/components/schemas/ServiceAvailabilityNotification' - required: true -security: -- {} - + required: true \ No newline at end of file diff --git a/README.md b/README.md index d1340b6646bd4aa24d7ecd0130831f2292ea0ea8..9c827ef3e9e8dcf732b8c10fea2cb874e6e01a1d 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/ServiceMgmtProto3/proto3/.openapi-generator-ignore b/ServiceMgmtProto3/proto3/.openapi-generator-ignore new file mode 100644 index 0000000000000000000000000000000000000000..7484ee590a3894506cf063799b885428f95a71be --- /dev/null +++ b/ServiceMgmtProto3/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/ServiceMgmtProto3/proto3/.openapi-generator/FILES b/ServiceMgmtProto3/proto3/.openapi-generator/FILES new file mode 100644 index 0000000000000000000000000000000000000000..259bc7016fc42afacdc179b7a1022d0aecc95d7f --- /dev/null +++ b/ServiceMgmtProto3/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/ServiceMgmtProto3/proto3/.openapi-generator/VERSION b/ServiceMgmtProto3/proto3/.openapi-generator/VERSION new file mode 100644 index 0000000000000000000000000000000000000000..0df17dd0f6a3118d982764919cb95064635877a8 --- /dev/null +++ b/ServiceMgmtProto3/proto3/.openapi-generator/VERSION @@ -0,0 +1 @@ +6.2.1 \ No newline at end of file diff --git a/ServiceMgmtProto3/proto3/README.md b/ServiceMgmtProto3/proto3/README.md new file mode 100644 index 0000000000000000000000000000000000000000..6b83ad1b1122f7c1d3e8dd5517c3c91cc266daeb --- /dev/null +++ b/ServiceMgmtProto3/proto3/README.md @@ -0,0 +1,109 @@ +# 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/. + +### 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 + $ 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 ./python-stubs/models directory + + - Services: + + ```sh + $ 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 .py files for all the services in the ./python-stubs/services directory + +### 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 ./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 `<*_service_grpc>.pb.go` will contain the stubs for the methods defined in the `./ServiceMgmt/proto3/services/*` folder. + +### 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 `./ServiceMgmt/proto3/models/*` folder. + + ```sh + $ grpc_tools_ruby_protoc -I./proto3 --ruby_out=ruby-stubs ./proto3/models/* + ``` + 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/* + ``` \ No newline at end of file diff --git a/ServiceMgmtProto3/proto3/models/category_ref.proto b/ServiceMgmtProto3/proto3/models/category_ref.proto new file mode 100644 index 0000000000000000000000000000000000000000..00a76da67b439be99b1224b114109a171b6d5562 --- /dev/null +++ b/ServiceMgmtProto3/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 = 4; + + // 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/ServiceMgmtProto3/proto3/models/end_point_info_address.proto b/ServiceMgmtProto3/proto3/models/end_point_info_address.proto new file mode 100644 index 0000000000000000000000000000000000000000..bd2786646198683e94c7ef55bf6b0eda301c4f3c --- /dev/null +++ b/ServiceMgmtProto3/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 = 2; + + // Port portion of the address + int32 port = 1; + +} diff --git a/ServiceMgmtProto3/proto3/models/end_point_info_addresses.proto b/ServiceMgmtProto3/proto3/models/end_point_info_addresses.proto new file mode 100644 index 0000000000000000000000000000000000000000..a7c7c7932fa3e3bf6da23193422bfbdf5e5db6a5 --- /dev/null +++ b/ServiceMgmtProto3/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/ServiceMgmtProto3/proto3/models/link_type.proto b/ServiceMgmtProto3/proto3/models/link_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..4e014e3199e9245b95676619bca59f0d8e0b4451 --- /dev/null +++ b/ServiceMgmtProto3/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 = 1; + +} diff --git a/ServiceMgmtProto3/proto3/models/locality_type.proto b/ServiceMgmtProto3/proto3/models/locality_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..4814b5c988ba518297b088ea3e923202a787263b --- /dev/null +++ b/ServiceMgmtProto3/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/ServiceMgmtProto3/proto3/models/mec_service_mgmt_api_subscription_link_list.proto b/ServiceMgmtProto3/proto3/models/mec_service_mgmt_api_subscription_link_list.proto new file mode 100644 index 0000000000000000000000000000000000000000..526348a934a533c5f2ca15743a2a8885670bbd98 --- /dev/null +++ b/ServiceMgmtProto3/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 = 1; + +} diff --git a/ServiceMgmtProto3/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto b/ServiceMgmtProto3/proto3/models/mec_service_mgmt_api_subscription_link_list_links.proto new file mode 100644 index 0000000000000000000000000000000000000000..57b838347c0fc67dcb48a82d27595d754bcf4036 --- /dev/null +++ b/ServiceMgmtProto3/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 = 2; + + // The MEC application instance's subscriptions + repeated MecServiceMgmtApiSubscriptionLinkListSubscription subscriptions = 1; + +} diff --git a/ServiceMgmtProto3/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto b/ServiceMgmtProto3/proto3/models/mec_service_mgmt_api_subscription_link_list_subscription.proto new file mode 100644 index 0000000000000000000000000000000000000000..f30e43512d7b2c6d72bdcf8c3c941eecdbeb05eb --- /dev/null +++ b/ServiceMgmtProto3/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 = 2; + + // The value shall be se to SerAvailabilityNotificationSubscription. + string rel = 1; + +} diff --git a/ServiceMgmtProto3/proto3/models/problem_details.proto b/ServiceMgmtProto3/proto3/models/problem_details.proto new file mode 100644 index 0000000000000000000000000000000000000000..b1488e562946924f336cd9ee21c847c25baf9409 --- /dev/null +++ b/ServiceMgmtProto3/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 = 5; + + // 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/ServiceMgmtProto3/proto3/models/security_info.proto b/ServiceMgmtProto3/proto3/models/security_info.proto new file mode 100644 index 0000000000000000000000000000000000000000..a7f78d42a0e6b6feaa4ffedac010e9e3b9065cf9 --- /dev/null +++ b/ServiceMgmtProto3/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 = 1; + +} diff --git a/ServiceMgmtProto3/proto3/models/security_info_o_auth2_info.proto b/ServiceMgmtProto3/proto3/models/security_info_o_auth2_info.proto new file mode 100644 index 0000000000000000000000000000000000000000..53fd6ec454e63c9a2c3b74ca5ca4e4ef40208e0a --- /dev/null +++ b/ServiceMgmtProto3/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 = 2; + + // The token endpoint + string tokenEndpoint = 1; + +} diff --git a/ServiceMgmtProto3/proto3/models/security_info_o_auth2_info_grant_type.proto b/ServiceMgmtProto3/proto3/models/security_info_o_auth2_info_grant_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..b75a6dec53416e1e679f7b111849a3b54675e8ee --- /dev/null +++ b/ServiceMgmtProto3/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/ServiceMgmtProto3/proto3/models/self.proto b/ServiceMgmtProto3/proto3/models/self.proto new file mode 100644 index 0000000000000000000000000000000000000000..86127104ed9de08d7f7ad0113073b05c92c81de4 --- /dev/null +++ b/ServiceMgmtProto3/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 = 1; + +} diff --git a/ServiceMgmtProto3/proto3/models/ser_availability_notification_subscription.proto b/ServiceMgmtProto3/proto3/models/ser_availability_notification_subscription.proto new file mode 100644 index 0000000000000000000000000000000000000000..37ed76b61c655213b67d210c427c8981c89d1c90 --- /dev/null +++ b/ServiceMgmtProto3/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 = 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; + + Self _links = 2; + + SerAvailabilityNotificationSubscriptionFilteringCriteria filteringCriteria = 3; + +} diff --git a/ServiceMgmtProto3/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto b/ServiceMgmtProto3/proto3/models/ser_availability_notification_subscription_filtering_criteria.proto new file mode 100644 index 0000000000000000000000000000000000000000..60053b4167ca30e833af8101972feef388034b10 --- /dev/null +++ b/ServiceMgmtProto3/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 = 5; + + // 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/ServiceMgmtProto3/proto3/models/serializer_type.proto b/ServiceMgmtProto3/proto3/models/serializer_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..74e82dfac0ad4a5224651645a99fd79319881451 --- /dev/null +++ b/ServiceMgmtProto3/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/ServiceMgmtProto3/proto3/models/service_availability_notification.proto b/ServiceMgmtProto3/proto3/models/service_availability_notification.proto new file mode 100644 index 0000000000000000000000000000000000000000..4ee0e9aad769746f3c4dddbc28f15b7ed05fbb23 --- /dev/null +++ b/ServiceMgmtProto3/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 = 3; + + // + repeated ServiceAvailabilityNotificationServiceReferences serviceReferences = 1; + + Subscription _links = 2; + +} diff --git a/ServiceMgmtProto3/proto3/models/service_availability_notification_change_type.proto b/ServiceMgmtProto3/proto3/models/service_availability_notification_change_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..9fe4546d0aac42c1ecedc7488d074dbe2ff64019 --- /dev/null +++ b/ServiceMgmtProto3/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/ServiceMgmtProto3/proto3/models/service_availability_notification_service_references.proto b/ServiceMgmtProto3/proto3/models/service_availability_notification_service_references.proto new file mode 100644 index 0000000000000000000000000000000000000000..bfc331e44b5733bfd4036e45ce4a778e1f83df5b --- /dev/null +++ b/ServiceMgmtProto3/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 = 5; + + // 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/ServiceMgmtProto3/proto3/models/service_info.proto b/ServiceMgmtProto3/proto3/models/service_info.proto new file mode 100644 index 0000000000000000000000000000000000000000..d5175e21df0f3f62ff9168e7657a5d5a15733dd0 --- /dev/null +++ b/ServiceMgmtProto3/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 = 13; + + // 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/ServiceMgmtProto3/proto3/models/service_info_links.proto b/ServiceMgmtProto3/proto3/models/service_info_links.proto new file mode 100644 index 0000000000000000000000000000000000000000..26d4449fa8675d30a464b90db0c3c9a8317e751a --- /dev/null +++ b/ServiceMgmtProto3/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 = 2; + + LinkType liveness = 1; + +} diff --git a/ServiceMgmtProto3/proto3/models/service_liveness_info.proto b/ServiceMgmtProto3/proto3/models/service_liveness_info.proto new file mode 100644 index 0000000000000000000000000000000000000000..4a273104da77801762f578ed2b177aa5160263ce --- /dev/null +++ b/ServiceMgmtProto3/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 = 3; + + 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/ServiceMgmtProto3/proto3/models/service_liveness_info_time_stamp.proto b/ServiceMgmtProto3/proto3/models/service_liveness_info_time_stamp.proto new file mode 100644 index 0000000000000000000000000000000000000000..fa1de903e29a4a0aa31e481c93fee2acf42e19d5 --- /dev/null +++ b/ServiceMgmtProto3/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 = 2; + + int32 nanoSeconds = 1; + +} diff --git a/ServiceMgmtProto3/proto3/models/service_liveness_update.proto b/ServiceMgmtProto3/proto3/models/service_liveness_update.proto new file mode 100644 index 0000000000000000000000000000000000000000..d8260cd8e719fa9073e2a272e2a04c12cdf0c0e7 --- /dev/null +++ b/ServiceMgmtProto3/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 = 1; + +} diff --git a/ServiceMgmtProto3/proto3/models/service_state.proto b/ServiceMgmtProto3/proto3/models/service_state.proto new file mode 100644 index 0000000000000000000000000000000000000000..bf52e6e9e7e3d68bec08532528bd662b73fbc0c2 --- /dev/null +++ b/ServiceMgmtProto3/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/ServiceMgmtProto3/proto3/models/subscription.proto b/ServiceMgmtProto3/proto3/models/subscription.proto new file mode 100644 index 0000000000000000000000000000000000000000..6e2f664e8117ec861a93976a4213b0ed55f6ad3a --- /dev/null +++ b/ServiceMgmtProto3/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 = 1; + +} diff --git a/ServiceMgmtProto3/proto3/models/transport_info.proto b/ServiceMgmtProto3/proto3/models/transport_info.proto new file mode 100644 index 0000000000000000000000000000000000000000..4f0ec17dede4175385b9bc7f3e634765ca6bbaf4 --- /dev/null +++ b/ServiceMgmtProto3/proto3/models/transport_info.proto @@ -0,0 +1,47 @@ +/* + 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/transport_info_endpoint.proto"; +import public "models/transport_type.proto"; + +message TransportInfo { + + // The identifier of this transport + string id = 8; + + // 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 + string implSpecificInfo = 109027520; + +} diff --git a/ServiceMgmtProto3/proto3/models/transport_info_endpoint.proto b/ServiceMgmtProto3/proto3/models/transport_info_endpoint.proto new file mode 100644 index 0000000000000000000000000000000000000000..62ce6578578d66a00ffab62da2e00c7c42c198bd --- /dev/null +++ b/ServiceMgmtProto3/proto3/models/transport_info_endpoint.proto @@ -0,0 +1,33 @@ +/* + 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"; + +message TransportInfoEndpoint { + + oneof EndpointInfo { + // Entry point information of the service as string, formatted according to URI syntax + string uris = 4; + // Fully Qualified Domain Name of the service. See note. + string fqdn = 1; + // Entry point information of the service as one or more pairs of IP address and port. See note. + 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/ServiceMgmtProto3/proto3/models/transport_type.proto b/ServiceMgmtProto3/proto3/models/transport_type.proto new file mode 100644 index 0000000000000000000000000000000000000000..32a8dccfa6a50adb2e14c2d3f030be9670b8d496 --- /dev/null +++ b/ServiceMgmtProto3/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/ServiceMgmtProto3/proto3/services/app_services_service.proto b/ServiceMgmtProto3/proto3/services/app_services_service.proto new file mode 100644 index 0000000000000000000000000000000000000000..c72586c92faa84fbc1126c9ee44506591adc89ec --- /dev/null +++ b/ServiceMgmtProto3/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/ServiceMgmtProto3/proto3/services/app_subscriptions_service.proto b/ServiceMgmtProto3/proto3/services/app_subscriptions_service.proto new file mode 100644 index 0000000000000000000000000000000000000000..186d49ee7e90bc4291b85c1954898b9a00f9eb90 --- /dev/null +++ b/ServiceMgmtProto3/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/ServiceMgmtProto3/proto3/services/individual_me_cservice_service.proto b/ServiceMgmtProto3/proto3/services/individual_me_cservice_service.proto new file mode 100644 index 0000000000000000000000000000000000000000..1b4bfb149f0cb6b707a093b908f55462d524fc8a --- /dev/null +++ b/ServiceMgmtProto3/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/ServiceMgmtProto3/proto3/services/services_service.proto b/ServiceMgmtProto3/proto3/services/services_service.proto new file mode 100644 index 0000000000000000000000000000000000000000..7dbb53b489f63a5eb2f4ccdedb03718b4e9fe461 --- /dev/null +++ b/ServiceMgmtProto3/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/ServiceMgmtProto3/proto3/services/transports_service.proto b/ServiceMgmtProto3/proto3/services/transports_service.proto new file mode 100644 index 0000000000000000000000000000000000000000..3f27e5432c6eaf7b7622e173e8d9264b18fb504a --- /dev/null +++ b/ServiceMgmtProto3/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; +} + diff --git a/proto3-gen.md b/proto3-gen.md new file mode 100644 index 0000000000000000000000000000000000000000..f40d75e5f096c7dabc59363b99d2fa69b088db7a --- /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/. + +>**NOTE:** In the below example commands we are generating proto3 descriptions for AppSupport API. + +### 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 + $ 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 ./python-stubs/models directory + + - Services: + + ```sh + $ 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 .py files for all the services in the ./python-stubs/services directory + +### 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 `<*_service_grpc>.pb.go` will contain the stubs for the methods defined in the `./AppSupport/proto3/services/*` folder. + +### 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 `./AppSupport/proto3/models/*` folder. + + ```sh + $ grpc_tools_ruby_protoc -I./proto3 --ruby_out=ruby-stubs ./proto3/models/* + ``` + 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/* + ```