From e9551f33912cbfa5e055dcb2b797b235efed4686 Mon Sep 17 00:00:00 2001 From: Elian Kraja Date: Fri, 20 Nov 2020 19:35:35 +0100 Subject: [PATCH 1/7] First draft --- .jenkins.sh | 18 + MEC021_AppMobilityService.json | 1300 +++++++++++++++++ MEC021_AppMobilityService.yaml | 951 ++++++++++++ proto3/desktop.ini | Bin 0 -> 244 bytes .../adjacent_app_info_subscription.proto | 35 + ...pp_info_subscription_filter_criteria.proto | 20 + ...adjacent_app_info_subscription_links.proto | 21 + .../models/adjacent_app_instance_info.proto | 31 + .../models/app_mobility_service_level.proto | 28 + proto3/models/associate_id.proto | 32 + proto3/models/communication_interface.proto | 21 + ...communication_interface_ip_addresses.proto | 22 + proto3/models/context_transfer_state.proto | 28 + proto3/models/desktop.ini | Bin 0 -> 244 bytes proto3/models/link_type.proto | 21 + proto3/models/mec_host_information.proto | 24 + .../mobility_procedure_subscription.proto | 35 + ...ocedure_subscription_filter_criteria.proto | 29 + ...obility_procedure_subscription_links.proto | 21 + proto3/models/mobility_status.proto | 28 + proto3/models/problem_details.proto | 33 + proto3/models/registration_info.proto | 31 + ...registration_info_device_information.proto | 27 + ...egistration_info_service_consumer_id.proto | 24 + proto3/models/subscription.proto | 23 + proto3/models/subscription_link_list.proto | 25 + .../models/subscription_link_list_links.proto | 21 + .../subscription_link_list_subscription.proto | 24 + proto3/models/subscription_type.proto | 28 + proto3/models/time_stamp.proto | 24 + proto3/services/adj_app_inst_service.proto | 41 + proto3/services/app_mob_ser_der_service.proto | 27 + proto3/services/app_mob_ser_service.proto | 74 + proto3/services/desktop.ini | Bin 0 -> 244 bytes proto3/services/subscriptions_service.proto | 58 + 35 files changed, 3125 insertions(+) create mode 100644 .jenkins.sh create mode 100644 MEC021_AppMobilityService.json create mode 100644 MEC021_AppMobilityService.yaml create mode 100644 proto3/desktop.ini create mode 100644 proto3/models/adjacent_app_info_subscription.proto create mode 100644 proto3/models/adjacent_app_info_subscription_filter_criteria.proto create mode 100644 proto3/models/adjacent_app_info_subscription_links.proto create mode 100644 proto3/models/adjacent_app_instance_info.proto create mode 100644 proto3/models/app_mobility_service_level.proto create mode 100644 proto3/models/associate_id.proto create mode 100644 proto3/models/communication_interface.proto create mode 100644 proto3/models/communication_interface_ip_addresses.proto create mode 100644 proto3/models/context_transfer_state.proto create mode 100644 proto3/models/desktop.ini create mode 100644 proto3/models/link_type.proto create mode 100644 proto3/models/mec_host_information.proto create mode 100644 proto3/models/mobility_procedure_subscription.proto create mode 100644 proto3/models/mobility_procedure_subscription_filter_criteria.proto create mode 100644 proto3/models/mobility_procedure_subscription_links.proto create mode 100644 proto3/models/mobility_status.proto create mode 100644 proto3/models/problem_details.proto create mode 100644 proto3/models/registration_info.proto create mode 100644 proto3/models/registration_info_device_information.proto create mode 100644 proto3/models/registration_info_service_consumer_id.proto create mode 100644 proto3/models/subscription.proto create mode 100644 proto3/models/subscription_link_list.proto create mode 100644 proto3/models/subscription_link_list_links.proto create mode 100644 proto3/models/subscription_link_list_subscription.proto create mode 100644 proto3/models/subscription_type.proto create mode 100644 proto3/models/time_stamp.proto create mode 100644 proto3/services/adj_app_inst_service.proto create mode 100644 proto3/services/app_mob_ser_der_service.proto create mode 100644 proto3/services/app_mob_ser_service.proto create mode 100644 proto3/services/desktop.ini create mode 100644 proto3/services/subscriptions_service.proto diff --git a/.jenkins.sh b/.jenkins.sh new file mode 100644 index 0000000..74d0370 --- /dev/null +++ b/.jenkins.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +specfiles=$(ls | egrep "^[^.]*.(json|yaml)") + +fres=0 +for i in $specfiles ; do + echo "-- Validating and linting OpenAPI file $i..." + swagger-cli validate $i + res=$? + speccy lint "$i" + res2=$? + fres=$(($fres||$res||$res2)) + echo "--- Validator returned $res, linter returned $res2." +done + +echo "-- Final validator returns $fres." +exit $fres + diff --git a/MEC021_AppMobilityService.json b/MEC021_AppMobilityService.json new file mode 100644 index 0000000..32e6fe6 --- /dev/null +++ b/MEC021_AppMobilityService.json @@ -0,0 +1,1300 @@ +{ + "info": { + "title": "ETSI GS MEC 021 Application Mobility Service API", + "version": "2.1.1", + "description": "ETSI GS MEC 021 Application Mobility Service API described using OpenAPI.", + "license": { + "name": "BSD-3-Clause", + "url": "https://forge.etsi.org/legal-matters" + }, + "contact": { + "url": "https://forge.etsi.org/rep/mec/gs021-amsi-api" + } + }, + "externalDocs": { + "description": "ETSI GS MEC 021 Application Mobility Service API, v2.1.1", + "url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf" + }, + "servers": [ + { + "url": "https://localhost/amsi/v1" + } + ], + "openapi": "3.0.0", + "tags": [ + { + "name": "adj-app-inst", + "description": "Adjacent App instances" + }, + { + "name": "app-mob-ser", + "description": "Application Mobility Services" + }, + { + "name": "app-mob-ser-der", + "description": "Application Mobility Services Deregister task" + }, + { + "name": "subscriptions", + "description": "Subscription for Application Mobility Service" + } + ], + "paths": { + "/app_mobility_services": { + "get": { + "tags": [ + "app-mob-ser" + ], + "summary": " Retrieve information about the registered application mobility service.", + "description": " Retrieve information about the registered application mobility service.", + "operationId": "app_mobility_serviceGET", + "parameters": [ + { + "in": "query", + "name": "filter", + "schema": { + "type": "string" + }, + "required": false, + "description": "Attribute-based filtering parameters according to ETSI GS MEC 011" + }, + { + "in": "query", + "name": "all_fields", + "schema": { + "type": "string" + }, + "required": false, + "description": "Include all complex attributes in the response." + }, + { + "in": "query", + "name": "fields", + "schema": { + "type": "string" + }, + "required": false, + "description": "Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011" + }, + { + "in": "query", + "name": "exclude_fields", + "schema": { + "type": "string" + }, + "required": false, + "description": "Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011" + }, + { + "in": "query", + "name": "exclude_default", + "schema": { + "type": "string" + }, + "required": false, + "description": "Indicates to exclude the following complex attributes from the response See clause 6.18 in ETSI GS MEC 011 for details." + } + ], + "responses": { + "200": { + "description": "Contains in an array the representations of zero or more application mobility services.", + "content": { + "application/json": { + "schema": { + "type": "array", + "items": { + "$ref": "#/components/schemas/RegistrationInfo" + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "406": { + "$ref": "#/components/responses/406" + }, + "429": { + "$ref": "#/components/responses/429" + } + } + }, + "post": { + "tags": [ + "app-mob-ser" + ], + "summary": "Create a new application mobility service for the service requester.", + "description": "Create a new application mobility service for the service requester.", + "operationId": "app_mobility_servicePOST", + "requestBody": { + "description": "Application mobility service to be created", + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegistrationInfo" + } + } + } + }, + "responses": { + "201": { + "description": "Successful response for application mobility service creation", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegistrationInfo" + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "406": { + "$ref": "#/components/responses/406" + }, + "429": { + "$ref": "#/components/responses/429" + } + } + } + }, + "/app_mobility_services/{appMobilityServiceId}": { + "parameters": [ + { + "in": "path", + "name": "appMobilityServiceId", + "schema": { + "type": "string" + }, + "required": true, + "description": "It uniquely identifies the created individual application mobility service" + } + ], + "get": { + "tags": [ + "app-mob-ser" + ], + "summary": "Retrieve information about this individual application mobility service", + "description": "Retrieve information about this individual application mobility service", + "operationId": "app_mobility_service_by_idGET", + "responses": { + "200": { + "description": "Contains a representation of the application mobility service.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegistrationInfo" + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "406": { + "$ref": "#/components/responses/406" + }, + "429": { + "$ref": "#/components/responses/429" + } + } + }, + "put": { + "tags": [ + "app-mob-ser" + ], + "summary": " update the existing individual application mobility service", + "description": " update the existing individual application mobility service", + "operationId": "app_mobility_service_by_idPUT", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegistrationInfo" + } + } + } + }, + "responses": { + "200": { + "description": "Contains a data type describing the updated application mobility service.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/RegistrationInfo" + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "406": { + "$ref": "#/components/responses/406" + }, + "412": { + "$ref": "#/components/responses/412" + }, + "422": { + "$ref": "#/components/responses/422" + }, + "429": { + "$ref": "#/components/responses/429" + } + } + }, + "delete": { + "tags": [ + "app-mob-ser" + ], + "summary": " deregister the individual application mobility service", + "description": " deregister the individual application mobility service", + "operationId": "app_mobility_service_by_idDELETE", + "responses": { + "204": { + "$ref": "#/components/responses/204" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "429": { + "$ref": "#/components/responses/429" + } + } + } + }, + "/app_mobility_services/{appMobilityServiceId}/deregister_task": { + "parameters": [ + { + "in": "path", + "name": "appMobilityServiceId", + "schema": { + "type": "string" + }, + "description": "It uniquely identifies the created individual application mobility service", + "required": true + } + ], + "post": { + "tags": [ + "app-mob-ser-der" + ], + "summary": " deregister the individual application mobility service", + "description": " deregister the individual application mobility service", + "operationId": "app_mobility_service_derPOST", + "responses": { + "204": { + "$ref": "#/components/responses/204" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "406": { + "$ref": "#/components/responses/406" + }, + "429": { + "$ref": "#/components/responses/429" + } + } + } + }, + "/subscriptions/": { + "get": { + "tags": [ + "subscriptions" + ], + "summary": "Retrieve information about the subscriptions for this requestor.", + "description": "Retrieve information about the subscriptions for this requestor.", + "operationId": "subGET", + "parameters": [ + { + "in": "query", + "name": "subscriptionType", + "description": "Query parameter to filter on a specific subscription type. Permitted values: mobility_proc or adj_app_info", + "schema": { + "type": "string" + }, + "required": true + } + ], + "responses": { + "200": { + "description": "Contains the list of links to requestor subscriptions.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SubscriptionLinkList" + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "406": { + "$ref": "#/components/responses/406" + }, + "429": { + "$ref": "#/components/responses/429" + } + } + }, + "post": { + "tags": [ + "subscriptions" + ], + "summary": "Create a new subscription to Application Mobility Service notifications.", + "description": "Create a new subscription to Application Mobility Service notifications.", + "operationId": "subPOST", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/MobilityProcedureSubscription" + }, + { + "$ref": "#/components/schemas/AdjacentAppInfoSubscription" + } + ] + } + } + } + }, + "responses": { + "201": { + "description": "Created subscription is described using the appropriate data type", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/MobilityProcedureSubscription" + }, + { + "$ref": "#/components/schemas/AdjacentAppInfoSubscription" + } + ] + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "406": { + "$ref": "#/components/responses/406" + }, + "415": { + "$ref": "#/components/responses/415" + }, + "422": { + "$ref": "#/components/responses/422" + }, + "429": { + "$ref": "#/components/responses/429" + } + } + } + }, + "/subscriptions/{subscriptionId}": { + "parameters": [ + { + "in": "path", + "name": "subscriptionId", + "description": "Refers to created subscription, where the AMS API allocates a unique resource name for this subscription", + "schema": { + "type": "string" + }, + "required": true + } + ], + "get": { + "tags": [ + "subscriptions" + ], + "summary": "Retrieve information about this subscription.", + "description": "Retrieve information about this subscription.", + "operationId": "sub_byIdGET", + "responses": { + "200": { + "description": "A response body containing data type describing the specific RNI event subscription", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/MobilityProcedureSubscription" + }, + { + "$ref": "#/components/schemas/AdjacentAppInfoSubscription" + } + ] + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "406": { + "$ref": "#/components/responses/406" + }, + "429": { + "$ref": "#/components/responses/429" + } + } + }, + "put": { + "tags": [ + "subscriptions" + ], + "summary": "update the existing individual subscription.", + "description": "update the existing individual subscription.", + "operationId": "sub_byIdPUT", + "requestBody": { + "required": true, + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/MobilityProcedureSubscription" + }, + { + "$ref": "#/components/schemas/AdjacentAppInfoSubscription" + } + ] + } + } + } + }, + "responses": { + "200": { + "description": " a response body containing data type describing the updated subscription", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "$ref": "#/components/schemas/MobilityProcedureSubscription" + }, + { + "$ref": "#/components/schemas/AdjacentAppInfoSubscription" + } + ] + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "406": { + "$ref": "#/components/responses/406" + }, + "412": { + "$ref": "#/components/responses/412" + }, + "422": { + "$ref": "#/components/responses/422" + }, + "429": { + "$ref": "#/components/responses/429" + } + } + }, + "delete": { + "tags": [ + "subscriptions" + ], + "summary": "cancel the existing individual subscription", + "description": "cancel the existing individual subscription", + "operationId": "sub_byIdDELETE", + "responses": { + "204": { + "$ref": "#/components/responses/204" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "429": { + "$ref": "#/components/responses/429" + } + } + } + }, + "/queries/adjacent_app_instances": { + "get": { + "tags": [ + "adj-app-inst" + ], + "summary": "Retrieve information about this subscription.", + "description": "Retrieve information about this subscription.", + "operationId": "adj_app_instGET", + "parameters": [ + { + "in": "query", + "name": "filter", + "schema": { + "type": "string" + }, + "required": false, + "description": "Attribute-based filtering parameters according to ETSI GS MEC 011" + }, + { + "in": "query", + "name": "all_fields", + "schema": { + "type": "string" + }, + "required": false, + "description": "Include all complex attributes in the response." + }, + { + "in": "query", + "name": "fields", + "schema": { + "type": "string" + }, + "required": false, + "description": "Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011" + }, + { + "in": "query", + "name": "exclude_fields", + "schema": { + "type": "string" + }, + "required": false, + "description": "Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011" + }, + { + "in": "query", + "name": "exclude_default", + "schema": { + "type": "string" + }, + "required": false, + "description": "Indicates to exclude the following complex attributes from the response See clause 6.18 in ETSI GS MEC 011 for details." + } + ], + "responses": { + "200": { + "description": "A response body containing zero or more adjacent application instances ", + "content": { + "application/json": { + "schema": { + "type": "array", + "minItems": 0, + "items": { + "$ref": "#/components/schemas/AdjacentAppInstanceInfo" + } + } + } + } + }, + "400": { + "$ref": "#/components/responses/400" + }, + "401": { + "$ref": "#/components/responses/401" + }, + "403": { + "$ref": "#/components/responses/403" + }, + "404": { + "$ref": "#/components/responses/404" + }, + "406": { + "$ref": "#/components/responses/406" + }, + "429": { + "$ref": "#/components/responses/429" + } + } + } + } + }, + "components": { + "schemas": { + "AdjacentAppInfoSubscription.links": { + "description": "Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests.", + "x-etsi-mec-cardinality": "0..1", + "required": [ + "self" + ], + "properties": { + "self": { + "$ref": "#/components/schemas/LinkType" + } + } + }, + "AdjacentAppInfoSubscription.filterCriteria": { + "description": "List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response.", + "x-etsi-mec-cardinality": "0..1", + "properties": { + "appInstanceId": { + "type": "string" + } + } + }, + "AdjacentAppInfoSubscription": { + "properties": { + "_links": { + "$ref": "#/components/schemas/AdjacentAppInfoSubscription.links" + }, + "callbackReference": { + "description": "URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response.", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "URI" + }, + "expiryDeadline": { + "$ref": "#/components/schemas/TimeStamp" + }, + "filterCriteria": { + "$ref": "#/components/schemas/AdjacentAppInfoSubscription.filterCriteria" + }, + "subscriptionType": { + "description": "Shall be set to \"AdjacentAppInfoSubscription\".", + "type": "string", + "enum": [ + "AdjacentAppInfoSubscription" + ], + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "subscriptionType", + "callbackReference", + "filterCriteria" + ], + "type": "object", + "x-etsi-ref": "7.3.3" + }, + "AdjacentAppInstanceInfo": { + "properties": { + "appDId": { + "description": "Identifier of the application descriptor.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "appInstanceCommLink": { + "description": "It specifies the communication interface of application instance.", + "type": "array", + "items": { + "$ref": "#/components/schemas/CommunicationInterface" + }, + "minItems": 1 + }, + "appInstanceId": { + "description": "Identifier of the application instance.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + }, + "mecHostInformation": { + "$ref": "#/components/schemas/MECHostInformation" + } + }, + "required": [ + "appInstanceId", + "appDId", + "appInstanceCommLink" + ], + "type": "object", + "x-etsi-ref": "7.2.3" + }, + "AppMobilityServiceLevel": { + "description": "This attribute provides an option for the application instance (server) to communicate with the application client before relocating this application instance to another MEC host.", + "enum": [ + "APP_MOBILITY_NOT_ALLOWED", + "APP_MOBILITY_WITH_CONFIRMATION", + "APP_MOBILITY_WITHOUT_CONFIRMATION" + ], + "type": "string", + "x-etsi-notes": "APP_MOBILITY_NOT_ALLOWED: the current serving application instance continues to deliver the service to the device. The AMS will inform the MEP to perform the traffic steering to the device when the UE moves cross MEC hosts. − APP_MOBILITY_WITH_CONFIRMATION: the serving application instance is allowed to change with the confirmation by the application once the device mobility happens. The AMS then will inform the MEP to update the traffic routing to the target application instance and clean up the previous resource allocated to the application instance serving to the device after the serving application instance has been changed. − APP_MOBILITY_WITHOUT_CONFIRMATION: the serving application instance is allowed to change without confirmation from the application instance when the device mobility happens. The AMS will notify to the MEP to update the traffic routing to the target application instance and clean up the previous resource allocated to the application instance serving to the device after the serving application instance has been changed." + }, + "CommunicationInterface.IpAddresses": { + "required": [ + "host", + "port" + ], + "properties": { + "host": { + "type": "string" + }, + "port": { + "type": "integer" + } + } + }, + "CommunicationInterface": { + "properties": { + "ipAddresses": { + "type": "array", + "items": { + "$ref": "#/components/schemas/CommunicationInterface.IpAddresses" + } + } + } + }, + "MobilityProcedureSubscription.links": { + "properties": { + "self": { + "$ref": "#/components/schemas/LinkType" + } + }, + "required": [ + "self" + ] + }, + "MobilityProcedureSubscription.filterCriteria": { + "x-etsi-mec-cardinality": "1", + "description": "List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response.", + "properties": { + "appInstanceId": { + "description": "Identifier of the application instance that registers the application mobility service.", + "type": "string", + "x-etsi-mec-cardinality": "0..1" + }, + "associateId": { + "description": "0 to N identifiers to associate the information for specific UE(s) and flow(s).", + "items": { + "$ref": "#/components/schemas/AssociateId" + }, + "minItems": 0, + "type": "array", + "x-etsi-mec-cardinality": "0..N" + }, + "mobilityStatus": { + "description": "In case mobilityStatus is not included in the subscription request, the default value 1 = INTER_HOST_MOBILITY_TRIGGERED shall be used and included in the response.", + "items": { + "$ref": "#/components/schemas/MobilityStatus" + }, + "minItems": 0, + "type": "array", + "x-etsi-mec-cardinality": "0..N" + } + } + }, + "MobilityProcedureSubscription": { + "type": "object", + "x-etsi-ref": "7.3.2", + "properties": { + "_links": { + "$ref": "#/components/schemas/MobilityProcedureSubscription.links" + }, + "callbackReference": { + "description": "URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response.", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "URI" + }, + "expiryDeadline": { + "$ref": "#/components/schemas/TimeStamp" + }, + "filterCriteria": { + "$ref": "#/components/schemas/MobilityProcedureSubscription.filterCriteria" + }, + "subscriptionType": { + "description": "Shall be set to \"MobilityProcedureSubscription\".", + "type": "string", + "enum": [ + "MobilityProcedureSubscription" + ], + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "subscriptionType", + "callbackReference", + "filterCriteria" + ] + }, + "MobilityStatus": { + "description": "Indicate the status of the UE mobility", + "enum": [ + "INTERHOST_MOVEOUT_TRIGGERED", + "INTERHOST_MOVEOUT_COMPLETED", + "INTERHOST_MOVEOUT_FAILED" + ], + "type": "string" + }, + "RegistrationInfo.deviceInformation": { + "required": [ + "serviceConsumerId", + "associateId" + ], + "properties": { + "associateId": { + "$ref": "#/components/schemas/AssociateId" + }, + "appMobilityServiceLevel": { + "$ref": "#/components/schemas/AppMobilityServiceLevel" + }, + "contextTransferState": { + "$ref": "#/components/schemas/contextTransferState" + } + } + }, + "RegistrationInfo.serviceConsumerId": { + "description": "The identifier of service consumer requesting the application mobility service, i.e. either the application instance ID or the MEC platform ID.", + "properties": { + "appInstanceId": { + "description": "If present, it represents the identifier of the application instance registering the application mobility service.", + "type": "string", + "x-etsi-mec-cardinality": "0..1" + }, + "mepId": { + "description": "If present, it represents the identifier of the MEC platform registering the application mobility service.", + "type": "string", + "x-etsi-mec-cardinality": "0..1" + } + } + }, + "RegistrationInfo": { + "type": "object", + "properties": { + "appMobilityServiceId": { + "description": "The identifier of registered application mobility service. Shall be absent in POST requests, and present otherwise.", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + }, + "deviceInformation": { + "description": "If present, it specifies the device served by the application instance which is registering the application mobility service.", + "type": "array", + "minItems": 0, + "items": { + "$ref": "#/components/schemas/RegistrationInfo.deviceInformation" + } + }, + "expiryTime": { + "description": "If present, it indicates the time of application mobility service expiration from the time of registration accepted.The value \"0\" means infinite time, i.e. no expiration.The unit of expiry time is one second.", + "format": "Uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "serviceConsumerId": { + "$ref": "#/components/schemas/RegistrationInfo.serviceConsumerId" + } + }, + "required": [ + "serviceConsumerId" + ], + "x-etsi-notes": "NOTE:\tThe data type of AssociateId is defined in ETSI GS MEC 012 [6].", + "x-etsi-ref": "7.2.2" + }, + "SubscriptionLinkList.links": { + "description": "List of hyperlinks related to the resource.", + "properties": { + "self": { + "$ref": "#/components/schemas/LinkType" + } + }, + "required": [ + "self" + ] + }, + "SubscriptionLinkList.subscription": { + "properties": { + "href": { + "description": "The URI referring to the subscription.", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "1" + }, + "subscriptionType": { + "$ref": "#/components/schemas/subscriptionType" + } + }, + "required": [ + "href", + "subscriptionType" + ] + }, + "SubscriptionLinkList": { + "properties": { + "_links": { + "$ref": "#/components/schemas/SubscriptionLinkList.links" + }, + "subscription": { + "description": "A link to a subscription.", + "type": "array", + "minItems": 0, + "items": { + "$ref": "#/components/schemas/SubscriptionLinkList.subscription" + }, + "x-etsi-mec-cardinality": "0..N" + } + }, + "required": [ + "_links" + ], + "x-etsi-ref": "7.3.4" + }, + "contextTransferState": { + "description": "If present, it represents the state of transferring the user context to another application instance.", + "enum": [ + "NOT_TRANSFERRED", + "USER_CONTEXT_TRANSFER_COMPLETED" + ], + "type": "string" + }, + "subscriptionType": { + "description": "Numeric value (0 - 255) corresponding to specified type of subscription as following: 0 = RESERVED. 1 = MOBILITY_PROCEDURE. 2 = ADJACENT_APPINFO. ", + "enum": [ + 0, + 1, + 2 + ], + "type": "integer" + }, + "Seconds": { + "description": "'The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.'", + "type": "integer", + "format": "uint32" + }, + "NanoSeconds": { + "description": "'The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.'", + "type": "integer", + "format": "uint32" + }, + "HostName": { + "description": "Human-readable name of MEC host.", + "type": "string" + }, + "KeyValuePairs": { + "description": "'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259'", + "type": "object", + "additionalProperties": true + }, + "AssociateId": { + "properties": { + "type": { + "description": "Numeric value (0-255) corresponding to specified type of identifier", + "enum": [ + "UE_IPv4_ADDRESS", + "UE_IPV6_ADDRESS", + "NATED_IP_ADDRESS", + "GTP_TEID" + ], + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "Enum" + }, + "value": { + "description": "Value for the identifier.", + "type": "string", + "x-etsi-mec-cardinality": "1", + "x-etsi-mec-origin-type": "String" + } + }, + "required": [ + "type", + "value" + ], + "type": "object", + "x-etsi-ref": "6.5.4" + }, + "LinkType": { + "description": "'This data type represents a type of link'", + "type": "object", + "required": [ + "href" + ], + "properties": { + "href": { + "$ref": "#/components/schemas/Href" + } + } + }, + "Href": { + "description": "The URI referring to the subscription.", + "type": "string", + "format": "uri" + }, + "TimeStamp": { + "description": "'This data type represents the time stamp as Unix-time since January 1, 1970, 00:00:00 UTC'", + "type": "object", + "required": [ + "seconds", + "nanoSeconds" + ], + "properties": { + "seconds": { + "$ref": "#/components/schemas/Seconds" + }, + "nanoSeconds": { + "$ref": "#/components/schemas/NanoSeconds" + } + } + }, + "MECHostInformation": { + "description": "'The data type represents the parameters of MEC host information.'", + "type": "object", + "required": [ + "hostId" + ], + "properties": { + "hostName": { + "$ref": "#/components/schemas/HostName" + }, + "hostId": { + "$ref": "#/components/schemas/KeyValuePairs" + } + } + }, + "ProblemDetails": { + "properties": { + "detail": { + "description": "A human-readable explanation specific to this occurrence of the problem", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + }, + "instance": { + "description": "A URI reference that identifies the specific occurrence of the problem", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "URI" + }, + "status": { + "description": "The HTTP status code for this occurrence of the problem", + "format": "uint32", + "type": "integer", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "Uint32" + }, + "title": { + "description": "A short, human-readable summary of the problem type", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "String" + }, + "type": { + "description": "A URI reference according to IETF RFC 3986 that identifies the problem type", + "format": "uri", + "type": "string", + "x-etsi-mec-cardinality": "0..1", + "x-etsi-mec-origin-type": "URI" + } + }, + "type": "object" + } + }, + "responses": { + "204": { + "description": "No Content" + }, + "206": { + "description": "Partial content" + }, + "400": { + "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "401": { + "description": "Unauthorized : used when the client did not submit credentials.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "403": { + "description": "Forbidden : operation is not allowed given the current status of the resource.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "406": { + "description": "Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "409": { + "description": "Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "412": { + "description": "Precondition failed : used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "415": { + "description": "Unsupported Media Type : used to indicate that the server or the client does not support the content type of the entity body.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "422": { + "description": "Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "429": { + "description": "Too Many Requests : used when a rate limiter has triggered.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + } + } + } +} \ No newline at end of file diff --git a/MEC021_AppMobilityService.yaml b/MEC021_AppMobilityService.yaml new file mode 100644 index 0000000..1e5538b --- /dev/null +++ b/MEC021_AppMobilityService.yaml @@ -0,0 +1,951 @@ +info: + title: "ETSI GS MEC 021 Application Mobility Service API" + version: 2.1.1 + description: "ETSI GS MEC 021 Application Mobility Service API described using OpenAPI." + license: + name: BSD-3-Clause + url: 'https://forge.etsi.org/legal-matters' + contact: + url: https://forge.etsi.org/rep/mec/gs021-amsi-api +externalDocs: + description: "ETSI GS MEC 021 Application Mobility Service API, v2.1.1" + url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf' +servers: + - url: 'https://localhost/amsi/v1' +openapi: 3.0.0 +tags: + - name: adj-app-inst + description: Adjacent App instances + - name: app-mob-ser + description: Application Mobility Services + - name: app-mob-ser-der + description: Application Mobility Services Deregister task + - name: subscriptions + description: Subscription for Application Mobility Service + +paths: + /app_mobility_services: + get: + tags: + - 'app-mob-ser' + summary: ' Retrieve information about the registered application mobility service.' + description: ' Retrieve information about the registered application mobility service.' + operationId: app_mobility_serviceGET + parameters: + - in: query + name: filter + schema: + type: string + required: false + description: 'Attribute-based filtering parameters according to ETSI GS MEC 011' + - in: query + name: all_fields + schema: + type: string + required: false + description: 'Include all complex attributes in the response.' + - in: query + name: fields + schema: + type: string + required: false + description: 'Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011' + - in: query + name: exclude_fields + schema: + type: string + required: false + description: 'Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011' + - in: query + name: exclude_default + schema: + type: string + required: false + description: 'Indicates to exclude the following complex attributes from the response See clause 6.18 in ETSI GS MEC 011 for details.' + responses: + '200': + description: 'Contains in an array the representations of zero or more application mobility services.' + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/RegistrationInfo' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '429': + $ref: '#/components/responses/429' + post: + tags: + - 'app-mob-ser' + summary: 'Create a new application mobility service for the service requester.' + description: 'Create a new application mobility service for the service requester.' + operationId: app_mobility_servicePOST + requestBody: + description: Application mobility service to be created + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RegistrationInfo' + responses: + '201': + description: Successful response for application mobility service creation + content: + application/json: + schema: + $ref: '#/components/schemas/RegistrationInfo' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '429': + $ref: '#/components/responses/429' + + /app_mobility_services/{appMobilityServiceId}: + parameters: + - in: path + name: appMobilityServiceId + schema: + type: string + required: true + description: 'It uniquely identifies the created individual application mobility service' + get: + tags: + - 'app-mob-ser' + summary: 'Retrieve information about this individual application mobility service' + description: 'Retrieve information about this individual application mobility service' + operationId: app_mobility_service_by_idGET + responses: + '200': + description: 'Contains a representation of the application mobility service.' + + content: + application/json: + schema: + $ref: '#/components/schemas/RegistrationInfo' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '429': + $ref: '#/components/responses/429' + put: + tags: + - 'app-mob-ser' + summary: ' update the existing individual application mobility service' + description: ' update the existing individual application mobility service' + operationId: app_mobility_service_by_idPUT + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/RegistrationInfo' + responses: + '200': + description: 'Contains a data type describing the updated application mobility service.' + content: + application/json: + schema: + $ref: '#/components/schemas/RegistrationInfo' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '412': + $ref: '#/components/responses/412' + '422': + $ref: '#/components/responses/422' + '429': + $ref: '#/components/responses/429' + delete: + tags: + - 'app-mob-ser' + summary: ' deregister the individual application mobility service' + description: ' deregister the individual application mobility service' + operationId: app_mobility_service_by_idDELETE + responses: + '204': + $ref: '#/components/responses/204' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '429': + $ref: '#/components/responses/429' + + /app_mobility_services/{appMobilityServiceId}/deregister_task: + parameters: + - in: path + name: appMobilityServiceId + schema: + type: string + description: 'It uniquely identifies the created individual application mobility service' + required: true + post: + tags: + - 'app-mob-ser-der' + summary: ' deregister the individual application mobility service' + description: ' deregister the individual application mobility service' + operationId: app_mobility_service_derPOST + responses: + '204': + $ref: '#/components/responses/204' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '429': + $ref: '#/components/responses/429' + /subscriptions/: + get: + tags: + - 'subscriptions' + summary: 'Retrieve information about the subscriptions for this requestor.' + description: 'Retrieve information about the subscriptions for this requestor.' + operationId: subGET + parameters: + - in: query + name: subscriptionType + description: 'Query parameter to filter on a specific subscription type. Permitted values: mobility_proc or adj_app_info' + schema: + type: string + required: true + responses: + '200': + description: 'Contains the list of links to requestor subscriptions.' + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionLinkList' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '429': + $ref: '#/components/responses/429' + post: + tags: + - 'subscriptions' + summary: 'Create a new subscription to Application Mobility Service notifications.' + description: 'Create a new subscription to Application Mobility Service notifications.' + operationId: subPOST + requestBody: + required: true + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/MobilityProcedureSubscription' + - $ref: '#/components/schemas/AdjacentAppInfoSubscription' + responses: + '201': + description: 'Created subscription is described using the appropriate data type' + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/MobilityProcedureSubscription' + - $ref: '#/components/schemas/AdjacentAppInfoSubscription' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '415': + $ref: '#/components/responses/415' + '422': + $ref: '#/components/responses/422' + '429': + $ref: '#/components/responses/429' + + /subscriptions/{subscriptionId}: + parameters: + - in: path + name: subscriptionId + description: 'Refers to created subscription, where the AMS API allocates a unique resource name for this subscription' + schema: + type: string + required: true + get: + tags: + - 'subscriptions' + summary: 'Retrieve information about this subscription.' + description: 'Retrieve information about this subscription.' + operationId: sub_byIdGET + responses: + '200': + description: 'A response body containing data type describing the specific RNI event subscription' + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/MobilityProcedureSubscription' + - $ref: '#/components/schemas/AdjacentAppInfoSubscription' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '429': + $ref: '#/components/responses/429' + put: + tags: + - 'subscriptions' + summary: 'update the existing individual subscription.' + description: 'update the existing individual subscription.' + operationId: sub_byIdPUT + requestBody: + required: true + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/MobilityProcedureSubscription' + - $ref: '#/components/schemas/AdjacentAppInfoSubscription' + responses: + '200': + description: ' a response body containing data type describing the updated subscription' + content: + application/json: + schema: + oneOf: + - $ref: '#/components/schemas/MobilityProcedureSubscription' + - $ref: '#/components/schemas/AdjacentAppInfoSubscription' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '412': + $ref: '#/components/responses/412' + '422': + $ref: '#/components/responses/422' + '429': + $ref: '#/components/responses/429' + delete: + tags: + - 'subscriptions' + summary: 'cancel the existing individual subscription' + description: 'cancel the existing individual subscription' + operationId: sub_byIdDELETE + responses: + '204': + $ref: '#/components/responses/204' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '429': + $ref: '#/components/responses/429' + + +# /notifitication_end_point_provided_by_client +# post: + + /queries/adjacent_app_instances: + get: + tags: + - 'adj-app-inst' + summary: 'Retrieve information about this subscription.' + description: 'Retrieve information about this subscription.' + operationId: adj_app_instGET + parameters: + - in: query + name: filter + schema: + type: string + required: false + description: 'Attribute-based filtering parameters according to ETSI GS MEC 011' + - in: query + name: all_fields + schema: + type: string + required: false + description: 'Include all complex attributes in the response.' + - in: query + name: fields + schema: + type: string + required: false + description: 'Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011' + - in: query + name: exclude_fields + schema: + type: string + required: false + description: 'Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011' + - in: query + name: exclude_default + schema: + type: string + required: false + description: 'Indicates to exclude the following complex attributes from the response See clause 6.18 in ETSI GS MEC 011 for details.' + responses: + '200': + description: 'A response body containing zero or more adjacent application instances ' + content: + application/json: + schema: + type: array + minItems: 0 + items: + $ref: '#/components/schemas/AdjacentAppInstanceInfo' + '400': + $ref: '#/components/responses/400' + '401': + $ref: '#/components/responses/401' + '403': + $ref: '#/components/responses/403' + '404': + $ref: '#/components/responses/404' + '406': + $ref: '#/components/responses/406' + '429': + $ref: '#/components/responses/429' + +components: + schemas: + + AdjacentAppInfoSubscription.links: + description: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests. + x-etsi-mec-cardinality: 0..1 + required: + - self + properties: + self: + $ref: '#/components/schemas/LinkType' + + AdjacentAppInfoSubscription.filterCriteria: + description: List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response. + x-etsi-mec-cardinality: 0..1 + properties: + appInstanceId: + type: string + + AdjacentAppInfoSubscription: + properties: + _links: + $ref: '#/components/schemas/AdjacentAppInfoSubscription.links' + callbackReference: + description: URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response. + format: uri + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: URI + expiryDeadline: + # description': Time stamp. + # x-etsi-mec-cardinality': 0..1 + # x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + filterCriteria: + $ref: '#/components/schemas/AdjacentAppInfoSubscription.filterCriteria' + #x-etsi-mec-cardinality: '1' + subscriptionType: + description: Shall be set to "AdjacentAppInfoSubscription". + type: string + enum: + - AdjacentAppInfoSubscription + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + required: + - subscriptionType + - callbackReference + - filterCriteria + type: object + x-etsi-ref: 7.3.3 + AdjacentAppInstanceInfo: + properties: + appDId: + description: Identifier of the application descriptor. + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + appInstanceCommLink: + description: It specifies the communication interface of application instance. + type: array + items: + $ref: '#/components/schemas/CommunicationInterface' + minItems: 1 + + #x-etsi-mec-cardinality: 1..N + #x-etsi-mec-origin-type: CommunicationInterface + appInstanceId: + description: Identifier of the application instance. + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + mecHostInformation: + #description: The MEC host where the application instance is running on. + $ref: '#/components/schemas/MECHostInformation' + #minItems: 1 + + # x-etsi-mec-cardinality': 0..1 + # x-etsi-mec-origin-type': MECHostInformation + required: + - appInstanceId + - appDId + - appInstanceCommLink + type: object + x-etsi-ref: 7.2.3 + AppMobilityServiceLevel: + description: This attribute provides an option for the application instance (server) to communicate with the application client before relocating this application instance to another MEC host. + enum: + - APP_MOBILITY_NOT_ALLOWED + - APP_MOBILITY_WITH_CONFIRMATION + - APP_MOBILITY_WITHOUT_CONFIRMATION + type: string + x-etsi-notes: "APP_MOBILITY_NOT_ALLOWED: the current serving application instance continues to deliver the service to the device. The AMS will inform the MEP to perform the traffic steering to the device when the UE moves cross MEC hosts. \u2212 APP_MOBILITY_WITH_CONFIRMATION: the serving application instance is allowed to change with the confirmation by the application once the device mobility happens. The AMS then will inform the MEP to update the traffic routing to the target application instance and clean up the previous resource allocated to the application instance serving to the device after the serving application instance has been changed. \u2212 APP_MOBILITY_WITHOUT_CONFIRMATION: the serving application instance is allowed to change without confirmation from the application instance when the device mobility happens. The AMS will notify to the MEP to update the traffic routing to the target application instance and clean up the previous resource allocated to the application instance serving to the device after the serving application instance has been changed." + CommunicationInterface.IpAddresses: + required: + - host + - port + properties: + host: + type: string + port: + type: integer + + CommunicationInterface: + properties: + ipAddresses: + type: array + items: + $ref: '#/components/schemas/CommunicationInterface.IpAddresses' + + MobilityProcedureSubscription.links: + properties: + self: + # description': Self referring URI. The URI shall be unique within the AMS API as it acts as an ID for the subscription. + # x-etsi-mec-cardinality': '1' + # x-etsi-mec-origin-type': LinkType + $ref: '#/components/schemas/LinkType' + required: + - self + + + MobilityProcedureSubscription.filterCriteria: + x-etsi-mec-cardinality: '1' + description: List of filtering criteria for the subscription. Any filtering criteria from below, which is included in the request, shall also be included in the response. + properties: + appInstanceId: + description: Identifier of the application instance that registers the application mobility service. + type: string + x-etsi-mec-cardinality: 0..1 + #x-etsi-mec-origin-type: String + associateId: + description: 0 to N identifiers to associate the information for specific UE(s) and flow(s). + items: + $ref: '#/components/schemas/AssociateId' + minItems: 0 + type: array + x-etsi-mec-cardinality: 0..N + #x-etsi-mec-origin-type: AssociateId + mobilityStatus: + description: 'In case mobilityStatus is not included in the subscription request, the default value 1 = INTER_HOST_MOBILITY_TRIGGERED shall be used and included in the response.' + items: + $ref: '#/components/schemas/MobilityStatus' + minItems: 0 + type: array + x-etsi-mec-cardinality: 0..N + + + + MobilityProcedureSubscription: + type: object + x-etsi-ref: 7.3.2 + properties: + + _links: + #description: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests. + $ref: '#/components/schemas/MobilityProcedureSubscription.links' + #x-etsi-mec-cardinality: 0..1 + callbackReference: + description: URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response. + format: uri + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: URI + expiryDeadline: + # description': Time stamp. + # x-etsi-mec-cardinality': 0..1 + # x-etsi-mec-origin-type': TimeStamp + $ref: '#/components/schemas/TimeStamp' + filterCriteria: + $ref: '#/components/schemas/MobilityProcedureSubscription.filterCriteria' + + subscriptionType: + description: Shall be set to "MobilityProcedureSubscription". + type: string + enum: + - MobilityProcedureSubscription + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + required: + - subscriptionType + - callbackReference + - filterCriteria + + MobilityStatus: + description: Indicate the status of the UE mobility + enum: + - INTERHOST_MOVEOUT_TRIGGERED + - INTERHOST_MOVEOUT_COMPLETED + - INTERHOST_MOVEOUT_FAILED + type: string + + + RegistrationInfo.deviceInformation: + required: + - serviceConsumerId + - associateId + properties: + associateId: + $ref: '#/components/schemas/AssociateId' + # description': Represents the identifier of the device. See note. + # x-etsi-mec-cardinality': '1' + # x-etsi-mec-origin-type': AssociateId + + appMobilityServiceLevel: + # description': If the application is stateful, this attribute shall be included. + # x-etsi-mec-cardinality': 0..1 + # x-etsi-mec-origin-type': AppMobilityServiceLevel + $ref: '#/components/schemas/AppMobilityServiceLevel' + + contextTransferState: + #description: 'If present, it represents the state of transferring the user context to another application instance.' + #x-etsi-mec-cardinality: 0..N + $ref: '#/components/schemas/contextTransferState' + + RegistrationInfo.serviceConsumerId: + description: The identifier of service consumer requesting the application mobility service, i.e. either the application instance ID or the MEC platform ID. + properties: + appInstanceId: + description: If present, it represents the identifier of the application instance registering the application mobility service. + type: string + x-etsi-mec-cardinality: 0..1 + #x-etsi-mec-origin-type: String + mepId: + description: If present, it represents the identifier of the MEC platform registering the application mobility service. + type: string + x-etsi-mec-cardinality: 0..1 + #x-etsi-mec-origin-type: String + RegistrationInfo: + type: object + properties: + appMobilityServiceId: + description: 'The identifier of registered application mobility service. Shall be absent in POST requests, and present otherwise.' + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + deviceInformation: + description: 'If present, it specifies the device served by the application instance which is registering the application mobility service.' + type: array + minItems: 0 + items: + $ref: '#/components/schemas/RegistrationInfo.deviceInformation' + + expiryTime: + description: 'If present, it indicates the time of application mobility service expiration from the time of registration accepted.The value "0" means infinite time, i.e. no expiration.The unit of expiry time is one second.' + format: Uint32 + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uint32 + serviceConsumerId: + $ref: '#/components/schemas/RegistrationInfo.serviceConsumerId' + required: + - serviceConsumerId + + x-etsi-notes: "NOTE:\tThe data type of AssociateId is defined in ETSI GS MEC 012 [6]." + x-etsi-ref: 7.2.2 + + SubscriptionLinkList.links: + description: List of hyperlinks related to the resource. + properties: + self: + # description': '' + # x-etsi-mec-cardinality': '1' + # x-etsi-mec-origin-type': LinkType + $ref: '#/components/schemas/LinkType' + required: + - self + + SubscriptionLinkList.subscription: + properties: + href: + description: The URI referring to the subscription. + format: uri + type: string + x-etsi-mec-cardinality: '1' + #x-etsi-mec-origin-type: URI + subscriptionType: + $ref: '#/components/schemas/subscriptionType' + required: + - href + - subscriptionType + + + SubscriptionLinkList: + properties: + _links: + $ref: '#/components/schemas/SubscriptionLinkList.links' + #x-etsi-mec-cardinality: '1' + + subscription: + description: A link to a subscription. + type: array + minItems: 0 + items: + $ref: '#/components/schemas/SubscriptionLinkList.subscription' + x-etsi-mec-cardinality: 0..N + required: + - _links + x-etsi-ref: 7.3.4 + + contextTransferState: + description: If present, it represents the state of transferring the user context to another application instance. + enum: + - NOT_TRANSFERRED + - USER_CONTEXT_TRANSFER_COMPLETED + type: string + subscriptionType: + description: 'Numeric value (0 - 255) corresponding to specified type of subscription as following: 0 = RESERVED. 1 = MOBILITY_PROCEDURE. 2 = ADJACENT_APPINFO. ' + enum: + - 0 + - 1 + - 2 + type: integer + Seconds: + description: >- + 'The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.' + type: integer + format: uint32 + NanoSeconds: + description: >- + 'The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.' + type: integer + format: uint32 + HostName: + description: >- + Human-readable name of MEC host. + type: string + KeyValuePairs: + description: >- + 'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259' + type: object + additionalProperties: true + + AssociateId: + properties: + type: + description: 'Numeric value (0-255) corresponding to specified type of identifier' + enum: + - UE_IPv4_ADDRESS + - UE_IPV6_ADDRESS + - NATED_IP_ADDRESS + - GTP_TEID + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: Enum + value: + description: Value for the identifier. + type: string + x-etsi-mec-cardinality: '1' + x-etsi-mec-origin-type: String + required: + - type + - value + type: object + x-etsi-ref: 6.5.4 + LinkType: + description: >- + 'This data type represents a type of link' + type: object + required: + - href + properties: + href: + $ref: '#/components/schemas/Href' + Href: + description: >- + The URI referring to the subscription. + type: string + format: uri + TimeStamp: + description: >- + 'This data type represents the time stamp as Unix-time since January 1, 1970, 00:00:00 UTC' + type: object + required: + - seconds + - nanoSeconds + properties: + seconds: + $ref: '#/components/schemas/Seconds' + nanoSeconds: + $ref: '#/components/schemas/NanoSeconds' + MECHostInformation: + description: >- + 'The data type represents the parameters of MEC host information.' + type: object + required: + - hostId + properties: + hostName: + $ref: '#/components/schemas/HostName' + hostId: + $ref: '#/components/schemas/KeyValuePairs' + + + + ProblemDetails: + properties: + detail: + description: A human-readable explanation specific to this occurrence of the problem + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + instance: + description: A URI reference that identifies the specific occurrence of the problem + format: uri + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: URI + status: + description: The HTTP status code for this occurrence of the problem + format: uint32 + type: integer + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: Uint32 + title: + description: A short, human-readable summary of the problem type + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: String + type: + description: A URI reference according to IETF RFC 3986 that identifies the problem type + format: uri + type: string + x-etsi-mec-cardinality: 0..1 + x-etsi-mec-origin-type: URI + type: object + responses: + 204: + description: No Content + 206: + description: Partial content + 400: + description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + 401: + description: 'Unauthorized : used when the client did not submit credentials.' + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + 403: + description: 'Forbidden : operation is not allowed given the current status of the resource.' + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + 404: + description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + 406: + description: 'Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.' + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + 409: + description: 'Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource' + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + 412: + description: 'Precondition failed : used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT' + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + 415: + description: 'Unsupported Media Type : used to indicate that the server or the client does not support the content type of the entity body.' + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + 422: + description: 'Unprocessable Entity : used to indicate that the server understands the content type of the request entity and that the syntax of the request entity is correct but that the server is unable to process the contained instructions. This error condition can occur if an JSON request body is syntactically correct but semantically incorrect, for example if the target area for the request is considered too large. This error condition can also occur if the capabilities required by the request are not supported.' + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' + 429: + description: 'Too Many Requests : used when a rate limiter has triggered.' + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' \ No newline at end of file diff --git a/proto3/desktop.ini b/proto3/desktop.ini new file mode 100644 index 0000000000000000000000000000000000000000..7e2afc92dc9897151144be5543ed5b34819f64d3 GIT binary patch literal 244 zcmY+9I|{;35JgWdxQ8r2LQo44tdvM9MN4B5Lezj7F)A+KlUFD*%$v{sFmFf9mJ=0c zV{R6-M#hx`4SV|Z+&5vaxpN_At8z1hgpw1aH^6tc(g!=FCb4b<2s@~>+q0#;319^feUH||9 literal 0 HcmV?d00001 diff --git a/proto3/models/adjacent_app_info_subscription.proto b/proto3/models/adjacent_app_info_subscription.proto new file mode 100644 index 0000000..b6a1890 --- /dev/null +++ b/proto3/models/adjacent_app_info_subscription.proto @@ -0,0 +1,35 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import public "models/adjacent_app_info_subscription_filter_criteria.proto"; +import public "models/adjacent_app_info_subscription_links.proto"; +import public "models/time_stamp.proto"; + +message AdjacentAppInfoSubscription { + + AdjacentAppInfoSubscriptionLinks Underscorelinks = 1; + + // URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response. + string callbackReference = 2; + + TimeStamp expiryDeadline = 3; + + AdjacentAppInfoSubscriptionFilterCriteria filterCriteria = 4; + + // Shall be set to \"AdjacentAppInfoSubscription\". + enum subscriptionType { + ADJACENTAPPINFOSUBSCRIPTION = 0; + } + +} diff --git a/proto3/models/adjacent_app_info_subscription_filter_criteria.proto b/proto3/models/adjacent_app_info_subscription_filter_criteria.proto new file mode 100644 index 0000000..f608987 --- /dev/null +++ b/proto3/models/adjacent_app_info_subscription_filter_criteria.proto @@ -0,0 +1,20 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + + +message AdjacentAppInfoSubscriptionFilterCriteria { + + string appInstanceId = 1; + +} diff --git a/proto3/models/adjacent_app_info_subscription_links.proto b/proto3/models/adjacent_app_info_subscription_links.proto new file mode 100644 index 0000000..ddcc8e6 --- /dev/null +++ b/proto3/models/adjacent_app_info_subscription_links.proto @@ -0,0 +1,21 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import public "models/link_type.proto"; + +message AdjacentAppInfoSubscriptionLinks { + + LinkType self = 1; + +} diff --git a/proto3/models/adjacent_app_instance_info.proto b/proto3/models/adjacent_app_instance_info.proto new file mode 100644 index 0000000..ddd17c2 --- /dev/null +++ b/proto3/models/adjacent_app_instance_info.proto @@ -0,0 +1,31 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import public "models/communication_interface.proto"; +import public "models/mec_host_information.proto"; + +message AdjacentAppInstanceInfo { + + // Identifier of the application descriptor. + string appDId = 1; + + // It specifies the communication interface of application instance. + repeated CommunicationInterface appInstanceCommLink = 2; + + // Identifier of the application instance. + string appInstanceId = 3; + + MECHostInformation mecHostInformation = 4; + +} diff --git a/proto3/models/app_mobility_service_level.proto b/proto3/models/app_mobility_service_level.proto new file mode 100644 index 0000000..23fc151 --- /dev/null +++ b/proto3/models/app_mobility_service_level.proto @@ -0,0 +1,28 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + + +//This attribute provides an option for the application instance (server) to communicate with the application client before relocating this application instance to another MEC host. The applicable values of this attribute are: 1 = APP_MOBILITY_NOT_ALLOWED 2 = APP_MOBILITY_WITH_CONFIRMATION 3 = APP_MOBILITY_WITHOUT_CONFIRMATION. +message AppMobilityServiceLevel { + enum TypeEnum { + _1 = 0; + _2 = 1; + _3 = 2; + } + TypeEnum type = 1; + + // Value for the identifier. + string value = 2; + +} diff --git a/proto3/models/associate_id.proto b/proto3/models/associate_id.proto new file mode 100644 index 0000000..0fd0638 --- /dev/null +++ b/proto3/models/associate_id.proto @@ -0,0 +1,32 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + + +message AssociateId { + + // Numeric value (0-255) corresponding to specified type of identifier as following:

0 = reserved.

1 = UE_IPv4_ADDRESS.

2 = UE_IPV6_ADDRESS.

3 = NATED_IP_ADDRESS.

4 = GTP_TEID. + enum TypeEnum { + _0 = 0; + _1 = 1; + _2 = 2; + _3 = 3; + _4 = 4; + } + + TypeEnum type = 1; + + // Value for the identifier. + string value = 2; + +} diff --git a/proto3/models/communication_interface.proto b/proto3/models/communication_interface.proto new file mode 100644 index 0000000..8645458 --- /dev/null +++ b/proto3/models/communication_interface.proto @@ -0,0 +1,21 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import public "models/communication_interface_ip_addresses.proto"; + +message CommunicationInterface { + + repeated CommunicationInterfaceIpAddresses ipAddresses = 1; + +} diff --git a/proto3/models/communication_interface_ip_addresses.proto b/proto3/models/communication_interface_ip_addresses.proto new file mode 100644 index 0000000..b3fcbaf --- /dev/null +++ b/proto3/models/communication_interface_ip_addresses.proto @@ -0,0 +1,22 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + + +message CommunicationInterfaceIpAddresses { + + string host = 1; + + int32 port = 2; + +} diff --git a/proto3/models/context_transfer_state.proto b/proto3/models/context_transfer_state.proto new file mode 100644 index 0000000..b76a587 --- /dev/null +++ b/proto3/models/context_transfer_state.proto @@ -0,0 +1,28 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +//If present, it represents the state of transferring the user context to another application instance. The applicable values of this attribute are: 0 = NOT_TRANSFERRED (default value) 1 = USER_CONTEXT_TRANSFER_COMPLETED In the initial application mobility registration, this attribute shall be set to the default value. + +message ContextTransferState{ +enum TypeEnum { + _0 = 0; + _1 = 1; + } + + TypeEnum type = 1; + + // Value for the identifier. + string value = 2; +} + diff --git a/proto3/models/desktop.ini b/proto3/models/desktop.ini new file mode 100644 index 0000000000000000000000000000000000000000..7e2afc92dc9897151144be5543ed5b34819f64d3 GIT binary patch literal 244 zcmY+9I|{;35JgWdxQ8r2LQo44tdvM9MN4B5Lezj7F)A+KlUFD*%$v{sFmFf9mJ=0c zV{R6-M#hx`4SV|Z+&5vaxpN_At8z1hgpw1aH^6tc(g!=FCb4b<2s@~>+q0#;319^feUH||9 literal 0 HcmV?d00001 diff --git a/proto3/models/link_type.proto b/proto3/models/link_type.proto new file mode 100644 index 0000000..5f41ecc --- /dev/null +++ b/proto3/models/link_type.proto @@ -0,0 +1,21 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + + +message LinkType { + + // The URI referring to the subscription. + string href = 1; + +} diff --git a/proto3/models/mec_host_information.proto b/proto3/models/mec_host_information.proto new file mode 100644 index 0000000..39ddad1 --- /dev/null +++ b/proto3/models/mec_host_information.proto @@ -0,0 +1,24 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; +import "google/protobuf/any.proto"; + +message MECHostInformation { + + // Human-readable name of MEC host. + string hostName = 1; + + // 'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259' + map hostId = 2; + +} diff --git a/proto3/models/mobility_procedure_subscription.proto b/proto3/models/mobility_procedure_subscription.proto new file mode 100644 index 0000000..bfb817a --- /dev/null +++ b/proto3/models/mobility_procedure_subscription.proto @@ -0,0 +1,35 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import public "models/mobility_procedure_subscription_filter_criteria.proto"; +import public "models/mobility_procedure_subscription_links.proto"; +import public "models/time_stamp.proto"; + +message MobilityProcedureSubscription { + + MobilityProcedureSubscriptionLinks Underscorelinks = 1; + + // URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response. + string callbackReference = 2; + + TimeStamp expiryDeadline = 3; + + MobilityProcedureSubscriptionFilterCriteria filterCriteria = 4; + + // Shall be set to \"MobilityProcedureSubscription\". + enum subscriptionType { + MOBILITYPROCEDURESUBSCRIPTION = 0; + } + +} diff --git a/proto3/models/mobility_procedure_subscription_filter_criteria.proto b/proto3/models/mobility_procedure_subscription_filter_criteria.proto new file mode 100644 index 0000000..cd117de --- /dev/null +++ b/proto3/models/mobility_procedure_subscription_filter_criteria.proto @@ -0,0 +1,29 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import public "models/associate_id.proto"; +import public "models/mobility_status.proto"; + +message MobilityProcedureSubscriptionFilterCriteria { + + // Identifier of the application instance that registers the application mobility service. + string appInstanceId = 1; + + // 0 to N identifiers to associate the information for specific UE(s) and flow(s). + repeated AssociateId associateId = 2; + + // In case mobilityStatus is not included in the subscription request, the default value 1 = INTER_HOST_MOBILITY_TRIGGERED shall be used and included in the response. + repeated MobilityStatus mobilityStatus = 3; + +} diff --git a/proto3/models/mobility_procedure_subscription_links.proto b/proto3/models/mobility_procedure_subscription_links.proto new file mode 100644 index 0000000..6810086 --- /dev/null +++ b/proto3/models/mobility_procedure_subscription_links.proto @@ -0,0 +1,21 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import public "models/link_type.proto"; + +message MobilityProcedureSubscriptionLinks { + + LinkType self = 1; + +} diff --git a/proto3/models/mobility_status.proto b/proto3/models/mobility_status.proto new file mode 100644 index 0000000..1298008 --- /dev/null +++ b/proto3/models/mobility_status.proto @@ -0,0 +1,28 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +//In case mobilityStatus is not included in the subscription request, the default value 1 = INTER_HOST_MOBILITY_TRIGGERED shall be used and included in the response. 1 = INTERHOST_MOVEOUT_TRIGGERED. 2 = INTERHOST_MOVEOUT_COMPLETED. 3 = INTERHOST_MOVEOUT_FAILED. +message MobilityStatus{ + enum TypeEnum { + _1 = 0; + _2 = 1; + _3 = 2; + } + TypeEnum type = 1; + + // Value for the identifier. + string value = 2; + +} + diff --git a/proto3/models/problem_details.proto b/proto3/models/problem_details.proto new file mode 100644 index 0000000..ebf6701 --- /dev/null +++ b/proto3/models/problem_details.proto @@ -0,0 +1,33 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + + +message ProblemDetails { + + // A human-readable explanation specific to this occurrence of the problem + string detail = 1; + + // A URI reference that identifies the specific occurrence of the problem + string instance = 2; + + // The HTTP status code for this occurrence of the problem + int32 status = 3; + + // A short, human-readable summary of the problem type + string title = 4; + + // A URI reference according to IETF RFC 3986 that identifies the problem type + string type = 5; + +} diff --git a/proto3/models/registration_info.proto b/proto3/models/registration_info.proto new file mode 100644 index 0000000..395a5e3 --- /dev/null +++ b/proto3/models/registration_info.proto @@ -0,0 +1,31 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import public "models/registration_info_device_information.proto"; +import public "models/registration_info_service_consumer_id.proto"; + +message RegistrationInfo { + + // The identifier of registered application mobility service. Shall be absent in POST requests, and present otherwise. + string appMobilityServiceId = 1; + + // If present, it specifies the device served by the application instance which is registering the application mobility service. + repeated RegistrationInfoDeviceInformation deviceInformation = 2; + + // If present, it indicates the time of application mobility service expiration from the time of registration accepted.The value \"0\" means infinite time, i.e. no expiration.The unit of expiry time is one second. + int32 expiryTime = 3; + + RegistrationInfoServiceConsumerId serviceConsumerId = 4; + +} diff --git a/proto3/models/registration_info_device_information.proto b/proto3/models/registration_info_device_information.proto new file mode 100644 index 0000000..80ee6ef --- /dev/null +++ b/proto3/models/registration_info_device_information.proto @@ -0,0 +1,27 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import public "models/app_mobility_service_level.proto"; +import public "models/associate_id.proto"; +import public "models/context_transfer_state.proto"; + +message RegistrationInfoDeviceInformation { + + AssociateId associateId = 1; + + AppMobilityServiceLevel appMobilityServiceLevel = 2; + + ContextTransferState contextTransferState = 3; + +} diff --git a/proto3/models/registration_info_service_consumer_id.proto b/proto3/models/registration_info_service_consumer_id.proto new file mode 100644 index 0000000..3ce9ac2 --- /dev/null +++ b/proto3/models/registration_info_service_consumer_id.proto @@ -0,0 +1,24 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + + +message RegistrationInfoServiceConsumerId { + + // If present, it represents the identifier of the application instance registering the application mobility service. + string appInstanceId = 1; + + // If present, it represents the identifier of the MEC platform registering the application mobility service. + string mepId = 2; + +} diff --git a/proto3/models/subscription.proto b/proto3/models/subscription.proto new file mode 100644 index 0000000..5e2634e --- /dev/null +++ b/proto3/models/subscription.proto @@ -0,0 +1,23 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import public "models/mobility_procedure_subscription.proto"; +import public "models/adjacent_app_info_subscription.proto"; + +message Subscription { + oneof subscription { + MobilityProcedureSubscription mobilityProcedureSubscription = 1; + AdjacentAppInfoSubscription adjacentAppInfoSubscription = 2; + } +} diff --git a/proto3/models/subscription_link_list.proto b/proto3/models/subscription_link_list.proto new file mode 100644 index 0000000..c2704f5 --- /dev/null +++ b/proto3/models/subscription_link_list.proto @@ -0,0 +1,25 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import public "models/subscription_link_list_links.proto"; +import public "models/subscription_link_list_subscription.proto"; + +message SubscriptionLinkList { + + SubscriptionLinkListLinks Underscorelinks = 1; + + // A link to a subscription. + repeated SubscriptionLinkListSubscription subscription = 2; + +} diff --git a/proto3/models/subscription_link_list_links.proto b/proto3/models/subscription_link_list_links.proto new file mode 100644 index 0000000..b1cb3c4 --- /dev/null +++ b/proto3/models/subscription_link_list_links.proto @@ -0,0 +1,21 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import public "models/link_type.proto"; + +message SubscriptionLinkListLinks { + + LinkType self = 1; + +} diff --git a/proto3/models/subscription_link_list_subscription.proto b/proto3/models/subscription_link_list_subscription.proto new file mode 100644 index 0000000..f4d3990 --- /dev/null +++ b/proto3/models/subscription_link_list_subscription.proto @@ -0,0 +1,24 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import public "models/subscription_type.proto"; + +message SubscriptionLinkListSubscription { + + // The URI referring to the subscription. + string href = 1; + + SubscriptionType subscriptionType = 2; + +} diff --git a/proto3/models/subscription_type.proto b/proto3/models/subscription_type.proto new file mode 100644 index 0000000..830342c --- /dev/null +++ b/proto3/models/subscription_type.proto @@ -0,0 +1,28 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +//Numeric value (0 - 255) corresponding to specified type of subscription as following: 0 = RESERVED. 1 = MOBILITY_PROCEDURE. 2 = ADJACENT_APPINFO. +message SubscriptionType{ +enum TypeEnum { + _0 = 0; + _1 = 1; + _2 = 2; + } + + TypeEnum type = 1; + + // Value for the identifier. + string value = 2; + +} diff --git a/proto3/models/time_stamp.proto b/proto3/models/time_stamp.proto new file mode 100644 index 0000000..a022f99 --- /dev/null +++ b/proto3/models/time_stamp.proto @@ -0,0 +1,24 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + + +message TimeStamp { + + // 'The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.' + int32 seconds = 1; + + // 'The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.' + int32 nanoSeconds = 2; + +} diff --git a/proto3/services/adj_app_inst_service.proto b/proto3/services/adj_app_inst_service.proto new file mode 100644 index 0000000..76a77c3 --- /dev/null +++ b/proto3/services/adj_app_inst_service.proto @@ -0,0 +1,41 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + + +import public "models/adjacent_app_instance_info.proto"; +import public "models/problem_details.proto"; + +service AdjAppInstService { + rpc AdjAppInstGET (AdjAppInstGETRequest) returns (AdjAppInstGETResponse); + +} + +message AdjAppInstGETRequest { + // Attribute-based filtering parameters according to ETSI GS MEC 011 + string filter = 1; + // Include all complex attributes in the response. + string allFields = 2; + // Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011 + string fields = 3; + // Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011 + string excludeFields = 4; + // Indicates to exclude the following complex attributes from the response See clause 6.18 in ETSI GS MEC 011 for details. + string excludeDefault = 5; + +} + +message AdjAppInstGETResponse { + repeated AdjacentAppInstanceInfo data = 1; +} + diff --git a/proto3/services/app_mob_ser_der_service.proto b/proto3/services/app_mob_ser_der_service.proto new file mode 100644 index 0000000..f13eabf --- /dev/null +++ b/proto3/services/app_mob_ser_der_service.proto @@ -0,0 +1,27 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import "google/protobuf/empty.proto"; +import public "models/problem_details.proto"; + +service AppMobSerDerService { + rpc AppMobilityServiceDerPOST (AppMobilityServiceDerPOSTRequest) returns (google.protobuf.Empty); + +} + +message AppMobilityServiceDerPOSTRequest { + string appMobilityServiceId = 1; + +} + diff --git a/proto3/services/app_mob_ser_service.proto b/proto3/services/app_mob_ser_service.proto new file mode 100644 index 0000000..0127b00 --- /dev/null +++ b/proto3/services/app_mob_ser_service.proto @@ -0,0 +1,74 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import "google/protobuf/empty.proto"; +import public "models/problem_details.proto"; +import public "models/registration_info.proto"; + +service AppMobSerService { + rpc AppMobilityServiceByIdDELETE (AppMobilityServiceByIdDELETERequest) returns (google.protobuf.Empty); + + rpc AppMobilityServiceByIdGET (AppMobilityServiceByIdGETRequest) returns (RegistrationInfo); + + rpc AppMobilityServiceByIdPUT (AppMobilityServiceByIdPUTRequest) returns (RegistrationInfo); + + rpc AppMobilityServiceGET (AppMobilityServiceGETRequest) returns (AppMobilityServiceGETResponse); + + rpc AppMobilityServicePOST (AppMobilityServicePOSTRequest) returns (RegistrationInfo); + +} + +message AppMobilityServiceByIdDELETERequest { + // Identifier of the created individual application mobility service. + string appMobilityServiceId = 1; + +} + +message AppMobilityServiceByIdGETRequest { + // Identifier of the created individual application mobility service. + string appMobilityServiceId = 1; + +} + +message AppMobilityServiceByIdPUTRequest { + // Identifier of the created individual application mobility service. + string appMobilityServiceId = 1; + RegistrationInfo registrationInfo = 2; + +} + +message AppMobilityServiceGETRequest { + // Attribute-based filtering parameters according to ETSI GS MEC 011 + string filter = 1; + // Include all complex attributes in the response. + string allFields = 2; + // Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011 + string fields = 3; + // Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011 + string excludeFields = 4; + // Indicates to exclude the following complex attributes from the response See clause 6.18 in ETSI GS MEC 011 for details. + string excludeDefault = 5; + +} + +message AppMobilityServiceGETResponse { + repeated RegistrationInfo data = 1; +} + +message AppMobilityServicePOSTRequest { + // Application mobility service to be created + RegistrationInfo registrationInfo = 1; + +} + diff --git a/proto3/services/desktop.ini b/proto3/services/desktop.ini new file mode 100644 index 0000000000000000000000000000000000000000..7e2afc92dc9897151144be5543ed5b34819f64d3 GIT binary patch literal 244 zcmY+9I|{;35JgWdxQ8r2LQo44tdvM9MN4B5Lezj7F)A+KlUFD*%$v{sFmFf9mJ=0c zV{R6-M#hx`4SV|Z+&5vaxpN_At8z1hgpw1aH^6tc(g!=FCb4b<2s@~>+q0#;319^feUH||9 literal 0 HcmV?d00001 diff --git a/proto3/services/subscriptions_service.proto b/proto3/services/subscriptions_service.proto new file mode 100644 index 0000000..cbb0c77 --- /dev/null +++ b/proto3/services/subscriptions_service.proto @@ -0,0 +1,58 @@ +/* + ETSI GS MEC 021 Application Mobility Service API + + ETSI GS MEC 021 Application Mobility Service API described using OpenAPI. + + The version of the OpenAPI document: 2.1.1 + + Generated by OpenAPI Generator: https://openapi-generator.tech +*/ + +syntax = "proto3"; + +package mec021; + +import "google/protobuf/empty.proto"; +import public "models/problem_details.proto"; +import public "models/subscription_link_list.proto"; +import public "models/subscription.proto"; + +service SubscriptionsService { + rpc SubByIdDELETE (SubByIdDELETERequest) returns (google.protobuf.Empty); + + rpc SubByIdGET (SubByIdGETRequest) returns (Subscription); + + rpc SubByIdPUT (SubByIdPUTRequest) returns (Subscription); + + rpc SubGET (SubGETRequest) returns (SubscriptionLinkList); + + rpc SubPOST (SubPOSTRequest) returns (Subscription); + +} + +message SubByIdDELETERequest { + string subscriptionId = 1; + +} + +message SubByIdGETRequest { + string subscriptionId = 1; + +} + +message SubByIdPUTRequest { + string subscriptionId = 1; + Subscription subscription = 2; + +} + +message SubGETRequest { + string subscriptionType = 1; + +} + +message SubPOSTRequest { + Subscription subscription = 1; + +} + -- GitLab From 717bc6af4e780883a01c28fe3d2bfad82910b9f2 Mon Sep 17 00:00:00 2001 From: Elian Kraja Date: Fri, 20 Nov 2020 19:40:01 +0100 Subject: [PATCH 2/7] Update README.md --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index 9f84e70..d91c1b7 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,12 @@ This repository contains OpenAPIs descriptions for the interfaces specified in ETSI GS MEC 021. +## Online resources + +* [Specification document](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf) +* [Navigate the Application Mobility Service API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/rep/mec/gs021-amsi-api/raw/stf593/MEC021_AppMobilityService.yamll). +* [Edit the Application Mobility Service API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/rep/mec/gs021-amsi-api/raw/stf593/MEC021_AppMobilityService.yaml). + ## License Unless specified otherwise, the content of this repository and the files contained are released under the BSD-3-Clause license. -- GitLab From 87918d4ea050b28e794d2177cb47e310d6bf4bbb Mon Sep 17 00:00:00 2001 From: Elian Kraja Date: Fri, 20 Nov 2020 19:40:48 +0100 Subject: [PATCH 3/7] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index d91c1b7..903dbff 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E ## Online resources * [Specification document](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/021/02.01.01_60/gs_mec021v020101p.pdf) -* [Navigate the Application Mobility Service API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/rep/mec/gs021-amsi-api/raw/stf593/MEC021_AppMobilityService.yamll). +* [Navigate the Application Mobility Service API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/rep/mec/gs021-amsi-api/raw/stf593/MEC021_AppMobilityService.yaml). * [Edit the Application Mobility Service API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/rep/mec/gs021-amsi-api/raw/stf593/MEC021_AppMobilityService.yaml). ## License -- GitLab From 5ea3fc082aa1cb83e650899ea274bfa076e0b183 Mon Sep 17 00:00:00 2001 From: Michele Carignani Date: Mon, 23 Nov 2020 11:00:25 +0100 Subject: [PATCH 4/7] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 903dbff..8639f9b 100644 --- a/README.md +++ b/README.md @@ -12,3 +12,5 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E Unless specified otherwise, the content of this repository and the files contained are released under the BSD-3-Clause license. See the attached LICENSE file or visit https://forge.etsi.org/legal-matters. + + -- GitLab From 05805d1e1d980e23fff8fb8691b97588a22d49e6 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Mon, 23 Nov 2020 17:48:33 +0100 Subject: [PATCH 5/7] Updated proto3 file notation from camel case to snake case and enum variables name format. --- .../models/adjacent_app_info_subscription.proto | 10 +++++----- ...t_app_info_subscription_filter_criteria.proto | 2 +- proto3/models/adjacent_app_instance_info.proto | 8 ++++---- proto3/models/app_mobility_service_level.proto | 6 +++--- proto3/models/associate_id.proto | 10 +++++----- proto3/models/communication_interface.proto | 2 +- proto3/models/context_transfer_state.proto | 4 ++-- proto3/models/mec_host_information.proto | 4 ++-- .../models/mobility_procedure_subscription.proto | 6 +++--- ..._procedure_subscription_filter_criteria.proto | 8 ++++---- proto3/models/mobility_status.proto | 6 +++--- proto3/models/registration_info.proto | 8 ++++---- .../registration_info_device_information.proto | 6 +++--- .../registration_info_service_consumer_id.proto | 4 ++-- proto3/models/subscription.proto | 4 ++-- .../subscription_link_list_subscription.proto | 2 +- proto3/models/subscription_type.proto | 6 +++--- proto3/models/time_stamp.proto | 2 +- proto3/services/adj_app_inst_service.proto | 6 +++--- proto3/services/app_mob_ser_der_service.proto | 2 +- proto3/services/app_mob_ser_service.proto | 16 ++++++++-------- proto3/services/subscriptions_service.proto | 8 ++++---- 22 files changed, 65 insertions(+), 65 deletions(-) diff --git a/proto3/models/adjacent_app_info_subscription.proto b/proto3/models/adjacent_app_info_subscription.proto index b6a1890..a322964 100644 --- a/proto3/models/adjacent_app_info_subscription.proto +++ b/proto3/models/adjacent_app_info_subscription.proto @@ -18,17 +18,17 @@ import public "models/time_stamp.proto"; message AdjacentAppInfoSubscription { - AdjacentAppInfoSubscriptionLinks Underscorelinks = 1; + AdjacentAppInfoSubscriptionLinks underscorelinks = 1; // URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response. - string callbackReference = 2; + string callback_reference = 2; - TimeStamp expiryDeadline = 3; + TimeStamp expiry_deadline = 3; - AdjacentAppInfoSubscriptionFilterCriteria filterCriteria = 4; + AdjacentAppInfoSubscriptionFilterCriteria filter_criteria = 4; // Shall be set to \"AdjacentAppInfoSubscription\". - enum subscriptionType { + enum SUBSCRIPTION_TYPE { ADJACENTAPPINFOSUBSCRIPTION = 0; } diff --git a/proto3/models/adjacent_app_info_subscription_filter_criteria.proto b/proto3/models/adjacent_app_info_subscription_filter_criteria.proto index f608987..d4dfa74 100644 --- a/proto3/models/adjacent_app_info_subscription_filter_criteria.proto +++ b/proto3/models/adjacent_app_info_subscription_filter_criteria.proto @@ -15,6 +15,6 @@ package mec021; message AdjacentAppInfoSubscriptionFilterCriteria { - string appInstanceId = 1; + string app_instance_id = 1; } diff --git a/proto3/models/adjacent_app_instance_info.proto b/proto3/models/adjacent_app_instance_info.proto index ddd17c2..cfd3c61 100644 --- a/proto3/models/adjacent_app_instance_info.proto +++ b/proto3/models/adjacent_app_instance_info.proto @@ -18,14 +18,14 @@ import public "models/mec_host_information.proto"; message AdjacentAppInstanceInfo { // Identifier of the application descriptor. - string appDId = 1; + string appd_id = 1; // It specifies the communication interface of application instance. - repeated CommunicationInterface appInstanceCommLink = 2; + repeated CommunicationInterface app_instance_comm_link = 2; // Identifier of the application instance. - string appInstanceId = 3; + string app_instance_id = 3; - MECHostInformation mecHostInformation = 4; + MECHostInformation mec_host_information = 4; } diff --git a/proto3/models/app_mobility_service_level.proto b/proto3/models/app_mobility_service_level.proto index 23fc151..9035648 100644 --- a/proto3/models/app_mobility_service_level.proto +++ b/proto3/models/app_mobility_service_level.proto @@ -16,9 +16,9 @@ package mec021; //This attribute provides an option for the application instance (server) to communicate with the application client before relocating this application instance to another MEC host. The applicable values of this attribute are: 1 = APP_MOBILITY_NOT_ALLOWED 2 = APP_MOBILITY_WITH_CONFIRMATION 3 = APP_MOBILITY_WITHOUT_CONFIRMATION. message AppMobilityServiceLevel { enum TypeEnum { - _1 = 0; - _2 = 1; - _3 = 2; + APP_MOBILITY_SERVICE_LEVEL_TYPE_ENUM_1 = 0; + APP_MOBILITY_SERVICE_LEVEL_TYPE_ENUM_2 = 1; + APP_MOBILITY_SERVICE_LEVEL_TYPE_ENUM_3 = 2; } TypeEnum type = 1; diff --git a/proto3/models/associate_id.proto b/proto3/models/associate_id.proto index 0fd0638..3ab23cc 100644 --- a/proto3/models/associate_id.proto +++ b/proto3/models/associate_id.proto @@ -17,11 +17,11 @@ message AssociateId { // Numeric value (0-255) corresponding to specified type of identifier as following:

0 = reserved.

1 = UE_IPv4_ADDRESS.

2 = UE_IPV6_ADDRESS.

3 = NATED_IP_ADDRESS.

4 = GTP_TEID. enum TypeEnum { - _0 = 0; - _1 = 1; - _2 = 2; - _3 = 3; - _4 = 4; + ASSOCIATE_ID_TYPE_ENUM_0 = 0; + ASSOCIATE_ID_TYPE_ENUM_1 = 1; + ASSOCIATE_ID_TYPE_ENUM_2 = 2; + ASSOCIATE_ID_TYPE_ENUM_3 = 3; + ASSOCIATE_ID_TYPE_ENUM_4 = 4; } TypeEnum type = 1; diff --git a/proto3/models/communication_interface.proto b/proto3/models/communication_interface.proto index 8645458..2cb625a 100644 --- a/proto3/models/communication_interface.proto +++ b/proto3/models/communication_interface.proto @@ -16,6 +16,6 @@ import public "models/communication_interface_ip_addresses.proto"; message CommunicationInterface { - repeated CommunicationInterfaceIpAddresses ipAddresses = 1; + repeated CommunicationInterfaceIpAddresses ip_addresses = 1; } diff --git a/proto3/models/context_transfer_state.proto b/proto3/models/context_transfer_state.proto index b76a587..dfc4f15 100644 --- a/proto3/models/context_transfer_state.proto +++ b/proto3/models/context_transfer_state.proto @@ -16,8 +16,8 @@ package mec021; message ContextTransferState{ enum TypeEnum { - _0 = 0; - _1 = 1; + CONTEXT_TRANSFER_STATE_TYPE_ENUM_0 = 0; + CONTEXT_TRANSFER_STATE_TYPE_ENUM_1 = 1; } TypeEnum type = 1; diff --git a/proto3/models/mec_host_information.proto b/proto3/models/mec_host_information.proto index 39ddad1..f484931 100644 --- a/proto3/models/mec_host_information.proto +++ b/proto3/models/mec_host_information.proto @@ -16,9 +16,9 @@ import "google/protobuf/any.proto"; message MECHostInformation { // Human-readable name of MEC host. - string hostName = 1; + string host_name = 1; // 'This data type represents a list of key-value pairs. The order of the pairs in the list is not significant. In JSON, a set of key-value pairs is represented as an object. It shall comply with the provisions defined in clause 4 of IETF RFC 8259' - map hostId = 2; + map host_id = 2; } diff --git a/proto3/models/mobility_procedure_subscription.proto b/proto3/models/mobility_procedure_subscription.proto index bfb817a..52cca15 100644 --- a/proto3/models/mobility_procedure_subscription.proto +++ b/proto3/models/mobility_procedure_subscription.proto @@ -21,11 +21,11 @@ message MobilityProcedureSubscription { MobilityProcedureSubscriptionLinks Underscorelinks = 1; // URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response. - string callbackReference = 2; + string callback_reference = 2; - TimeStamp expiryDeadline = 3; + TimeStamp expiry_deadline = 3; - MobilityProcedureSubscriptionFilterCriteria filterCriteria = 4; + MobilityProcedureSubscriptionFilterCriteria filter_criteria = 4; // Shall be set to \"MobilityProcedureSubscription\". enum subscriptionType { diff --git a/proto3/models/mobility_procedure_subscription_filter_criteria.proto b/proto3/models/mobility_procedure_subscription_filter_criteria.proto index cd117de..6ae194b 100644 --- a/proto3/models/mobility_procedure_subscription_filter_criteria.proto +++ b/proto3/models/mobility_procedure_subscription_filter_criteria.proto @@ -18,12 +18,12 @@ import public "models/mobility_status.proto"; message MobilityProcedureSubscriptionFilterCriteria { // Identifier of the application instance that registers the application mobility service. - string appInstanceId = 1; + string app_instance_id = 1; // 0 to N identifiers to associate the information for specific UE(s) and flow(s). - repeated AssociateId associateId = 2; + repeated AssociateId associate_id = 2; - // In case mobilityStatus is not included in the subscription request, the default value 1 = INTER_HOST_MOBILITY_TRIGGERED shall be used and included in the response. - repeated MobilityStatus mobilityStatus = 3; + // In case mobility_status is not included in the subscription request, the default value 1 = INTER_HOST_MOBILITY_TRIGGERED shall be used and included in the response. + repeated MobilityStatus mobility_status = 3; } diff --git a/proto3/models/mobility_status.proto b/proto3/models/mobility_status.proto index 1298008..1bf0b75 100644 --- a/proto3/models/mobility_status.proto +++ b/proto3/models/mobility_status.proto @@ -15,9 +15,9 @@ package mec021; //In case mobilityStatus is not included in the subscription request, the default value 1 = INTER_HOST_MOBILITY_TRIGGERED shall be used and included in the response. 1 = INTERHOST_MOVEOUT_TRIGGERED. 2 = INTERHOST_MOVEOUT_COMPLETED. 3 = INTERHOST_MOVEOUT_FAILED. message MobilityStatus{ enum TypeEnum { - _1 = 0; - _2 = 1; - _3 = 2; + MOBILITY_STATUS_TYPE_ENUM_1 = 0; + MOBILITY_STATUS_TYPE_ENUM_2 = 1; + MOBILITY_STATUS_TYPE_ENUM_3 = 2; } TypeEnum type = 1; diff --git a/proto3/models/registration_info.proto b/proto3/models/registration_info.proto index 395a5e3..13acb49 100644 --- a/proto3/models/registration_info.proto +++ b/proto3/models/registration_info.proto @@ -18,14 +18,14 @@ import public "models/registration_info_service_consumer_id.proto"; message RegistrationInfo { // The identifier of registered application mobility service. Shall be absent in POST requests, and present otherwise. - string appMobilityServiceId = 1; + string app_mobility_service_id = 1; // If present, it specifies the device served by the application instance which is registering the application mobility service. - repeated RegistrationInfoDeviceInformation deviceInformation = 2; + repeated RegistrationInfoDeviceInformation device_information = 2; // If present, it indicates the time of application mobility service expiration from the time of registration accepted.The value \"0\" means infinite time, i.e. no expiration.The unit of expiry time is one second. - int32 expiryTime = 3; + int32 expiry_time = 3; - RegistrationInfoServiceConsumerId serviceConsumerId = 4; + RegistrationInfoServiceConsumerId service_consumer_id = 4; } diff --git a/proto3/models/registration_info_device_information.proto b/proto3/models/registration_info_device_information.proto index 80ee6ef..0a7b3bb 100644 --- a/proto3/models/registration_info_device_information.proto +++ b/proto3/models/registration_info_device_information.proto @@ -18,10 +18,10 @@ import public "models/context_transfer_state.proto"; message RegistrationInfoDeviceInformation { - AssociateId associateId = 1; + AssociateId associate_id = 1; - AppMobilityServiceLevel appMobilityServiceLevel = 2; + AppMobilityServiceLevel app_mobility_service_level = 2; - ContextTransferState contextTransferState = 3; + ContextTransferState context_transfer_state = 3; } diff --git a/proto3/models/registration_info_service_consumer_id.proto b/proto3/models/registration_info_service_consumer_id.proto index 3ce9ac2..2fe200f 100644 --- a/proto3/models/registration_info_service_consumer_id.proto +++ b/proto3/models/registration_info_service_consumer_id.proto @@ -16,9 +16,9 @@ package mec021; message RegistrationInfoServiceConsumerId { // If present, it represents the identifier of the application instance registering the application mobility service. - string appInstanceId = 1; + string app_instance_id = 1; // If present, it represents the identifier of the MEC platform registering the application mobility service. - string mepId = 2; + string mep_id = 2; } diff --git a/proto3/models/subscription.proto b/proto3/models/subscription.proto index 5e2634e..1b1628d 100644 --- a/proto3/models/subscription.proto +++ b/proto3/models/subscription.proto @@ -17,7 +17,7 @@ import public "models/adjacent_app_info_subscription.proto"; message Subscription { oneof subscription { - MobilityProcedureSubscription mobilityProcedureSubscription = 1; - AdjacentAppInfoSubscription adjacentAppInfoSubscription = 2; + MobilityProcedureSubscription mobility_procedure_subscription = 1; + AdjacentAppInfoSubscription adjacent_app_info_subscription = 2; } } diff --git a/proto3/models/subscription_link_list_subscription.proto b/proto3/models/subscription_link_list_subscription.proto index f4d3990..1519076 100644 --- a/proto3/models/subscription_link_list_subscription.proto +++ b/proto3/models/subscription_link_list_subscription.proto @@ -19,6 +19,6 @@ message SubscriptionLinkListSubscription { // The URI referring to the subscription. string href = 1; - SubscriptionType subscriptionType = 2; + SubscriptionType subscription_type = 2; } diff --git a/proto3/models/subscription_type.proto b/proto3/models/subscription_type.proto index 830342c..575576d 100644 --- a/proto3/models/subscription_type.proto +++ b/proto3/models/subscription_type.proto @@ -15,9 +15,9 @@ package mec021; //Numeric value (0 - 255) corresponding to specified type of subscription as following: 0 = RESERVED. 1 = MOBILITY_PROCEDURE. 2 = ADJACENT_APPINFO. message SubscriptionType{ enum TypeEnum { - _0 = 0; - _1 = 1; - _2 = 2; + SUBSCRIPTION_TYPE_TYPE_ENUM_0 = 0; + SUBSCRIPTION_TYPE_TYPE_ENUM_1 = 1; + SUBSCRIPTION_TYPE_TYPE_ENUM_2 = 2; } TypeEnum type = 1; diff --git a/proto3/models/time_stamp.proto b/proto3/models/time_stamp.proto index a022f99..8829ce0 100644 --- a/proto3/models/time_stamp.proto +++ b/proto3/models/time_stamp.proto @@ -19,6 +19,6 @@ message TimeStamp { int32 seconds = 1; // 'The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.' - int32 nanoSeconds = 2; + int32 nano_seconds = 2; } diff --git a/proto3/services/adj_app_inst_service.proto b/proto3/services/adj_app_inst_service.proto index 76a77c3..244b683 100644 --- a/proto3/services/adj_app_inst_service.proto +++ b/proto3/services/adj_app_inst_service.proto @@ -25,13 +25,13 @@ message AdjAppInstGETRequest { // Attribute-based filtering parameters according to ETSI GS MEC 011 string filter = 1; // Include all complex attributes in the response. - string allFields = 2; + string all_fields = 2; // Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011 string fields = 3; // Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011 - string excludeFields = 4; + string exclude_fields = 4; // Indicates to exclude the following complex attributes from the response See clause 6.18 in ETSI GS MEC 011 for details. - string excludeDefault = 5; + string exclude_default = 5; } diff --git a/proto3/services/app_mob_ser_der_service.proto b/proto3/services/app_mob_ser_der_service.proto index f13eabf..9194d23 100644 --- a/proto3/services/app_mob_ser_der_service.proto +++ b/proto3/services/app_mob_ser_der_service.proto @@ -21,7 +21,7 @@ service AppMobSerDerService { } message AppMobilityServiceDerPOSTRequest { - string appMobilityServiceId = 1; + string app_mobility_service_id = 1; } diff --git a/proto3/services/app_mob_ser_service.proto b/proto3/services/app_mob_ser_service.proto index 0127b00..251b558 100644 --- a/proto3/services/app_mob_ser_service.proto +++ b/proto3/services/app_mob_ser_service.proto @@ -31,20 +31,20 @@ service AppMobSerService { message AppMobilityServiceByIdDELETERequest { // Identifier of the created individual application mobility service. - string appMobilityServiceId = 1; + string app_mobility_service_id = 1; } message AppMobilityServiceByIdGETRequest { // Identifier of the created individual application mobility service. - string appMobilityServiceId = 1; + string app_mobility_service_id = 1; } message AppMobilityServiceByIdPUTRequest { // Identifier of the created individual application mobility service. - string appMobilityServiceId = 1; - RegistrationInfo registrationInfo = 2; + string app_mobility_service_id = 1; + RegistrationInfo registration_info = 2; } @@ -52,13 +52,13 @@ message AppMobilityServiceGETRequest { // Attribute-based filtering parameters according to ETSI GS MEC 011 string filter = 1; // Include all complex attributes in the response. - string allFields = 2; + string all_fields = 2; // Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011 string fields = 3; // Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011 - string excludeFields = 4; + string exclude_fields = 4; // Indicates to exclude the following complex attributes from the response See clause 6.18 in ETSI GS MEC 011 for details. - string excludeDefault = 5; + string exclude_default = 5; } @@ -68,7 +68,7 @@ message AppMobilityServiceGETResponse { message AppMobilityServicePOSTRequest { // Application mobility service to be created - RegistrationInfo registrationInfo = 1; + RegistrationInfo registration_info = 1; } diff --git a/proto3/services/subscriptions_service.proto b/proto3/services/subscriptions_service.proto index cbb0c77..bb8db69 100644 --- a/proto3/services/subscriptions_service.proto +++ b/proto3/services/subscriptions_service.proto @@ -31,23 +31,23 @@ service SubscriptionsService { } message SubByIdDELETERequest { - string subscriptionId = 1; + string subscription_id = 1; } message SubByIdGETRequest { - string subscriptionId = 1; + string subscription_id = 1; } message SubByIdPUTRequest { - string subscriptionId = 1; + string subscription_id = 1; Subscription subscription = 2; } message SubGETRequest { - string subscriptionType = 1; + string subscription_type = 1; } -- GitLab From 1914972621724ac2066c64fb18c3d9d4e659cfb0 Mon Sep 17 00:00:00 2001 From: piscione Date: Mon, 23 Nov 2020 18:11:44 +0100 Subject: [PATCH 6/7] Minor fixes and deleted useless files. --- proto3/desktop.ini | Bin 244 -> 0 bytes proto3/models/desktop.ini | Bin 244 -> 0 bytes .../models/mobility_procedure_subscription.proto | 2 +- proto3/models/subscription_link_list.proto | 2 +- proto3/services/desktop.ini | Bin 244 -> 0 bytes 5 files changed, 2 insertions(+), 2 deletions(-) delete mode 100644 proto3/desktop.ini delete mode 100644 proto3/models/desktop.ini delete mode 100644 proto3/services/desktop.ini diff --git a/proto3/desktop.ini b/proto3/desktop.ini deleted file mode 100644 index 7e2afc92dc9897151144be5543ed5b34819f64d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 zcmY+9I|{;35JgWdxQ8r2LQo44tdvM9MN4B5Lezj7F)A+KlUFD*%$v{sFmFf9mJ=0c zV{R6-M#hx`4SV|Z+&5vaxpN_At8z1hgpw1aH^6tc(g!=FCb4b<2s@~>+q0#;319^feUH||9 diff --git a/proto3/models/desktop.ini b/proto3/models/desktop.ini deleted file mode 100644 index 7e2afc92dc9897151144be5543ed5b34819f64d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 zcmY+9I|{;35JgWdxQ8r2LQo44tdvM9MN4B5Lezj7F)A+KlUFD*%$v{sFmFf9mJ=0c zV{R6-M#hx`4SV|Z+&5vaxpN_At8z1hgpw1aH^6tc(g!=FCb4b<2s@~>+q0#;319^feUH||9 diff --git a/proto3/models/mobility_procedure_subscription.proto b/proto3/models/mobility_procedure_subscription.proto index 52cca15..46e3222 100644 --- a/proto3/models/mobility_procedure_subscription.proto +++ b/proto3/models/mobility_procedure_subscription.proto @@ -18,7 +18,7 @@ import public "models/time_stamp.proto"; message MobilityProcedureSubscription { - MobilityProcedureSubscriptionLinks Underscorelinks = 1; + MobilityProcedureSubscriptionLinks underscorelinks = 1; // URI selected by the service consumer to receive notifications on the subscribed Application Mobility Service. This shall be included both in the request and in response. string callback_reference = 2; diff --git a/proto3/models/subscription_link_list.proto b/proto3/models/subscription_link_list.proto index c2704f5..2a8b058 100644 --- a/proto3/models/subscription_link_list.proto +++ b/proto3/models/subscription_link_list.proto @@ -17,7 +17,7 @@ import public "models/subscription_link_list_subscription.proto"; message SubscriptionLinkList { - SubscriptionLinkListLinks Underscorelinks = 1; + SubscriptionLinkListLinks underscorelinks = 1; // A link to a subscription. repeated SubscriptionLinkListSubscription subscription = 2; diff --git a/proto3/services/desktop.ini b/proto3/services/desktop.ini deleted file mode 100644 index 7e2afc92dc9897151144be5543ed5b34819f64d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 244 zcmY+9I|{;35JgWdxQ8r2LQo44tdvM9MN4B5Lezj7F)A+KlUFD*%$v{sFmFf9mJ=0c zV{R6-M#hx`4SV|Z+&5vaxpN_At8z1hgpw1aH^6tc(g!=FCb4b<2s@~>+q0#;319^feUH||9 -- GitLab From 70ca800faa6ff6db968c38645ddedb77f6c89eb0 Mon Sep 17 00:00:00 2001 From: Elian Kraja Date: Tue, 1 Dec 2020 21:27:11 +0100 Subject: [PATCH 7/7] Fix on contact details --- .jenkins.sh | 0 MEC021_AppMobilityService.json | 2 ++ MEC021_AppMobilityService.yaml | 2 ++ 3 files changed, 4 insertions(+) mode change 100644 => 100755 .jenkins.sh diff --git a/.jenkins.sh b/.jenkins.sh old mode 100644 new mode 100755 diff --git a/MEC021_AppMobilityService.json b/MEC021_AppMobilityService.json index 32e6fe6..daea06d 100644 --- a/MEC021_AppMobilityService.json +++ b/MEC021_AppMobilityService.json @@ -8,6 +8,8 @@ "url": "https://forge.etsi.org/legal-matters" }, "contact": { + "name": "ETSI Forge", + "email": "cti_support@etsi.org", "url": "https://forge.etsi.org/rep/mec/gs021-amsi-api" } }, diff --git a/MEC021_AppMobilityService.yaml b/MEC021_AppMobilityService.yaml index 1e5538b..9d2a5a3 100644 --- a/MEC021_AppMobilityService.yaml +++ b/MEC021_AppMobilityService.yaml @@ -6,6 +6,8 @@ info: name: BSD-3-Clause url: 'https://forge.etsi.org/legal-matters' contact: + name: ETSI Forge + email: cti_support@etsi.org url: https://forge.etsi.org/rep/mec/gs021-amsi-api externalDocs: description: "ETSI GS MEC 021 Application Mobility Service API, v2.1.1" -- GitLab