pax_global_header 0000666 0000000 0000000 00000000064 14152211740 0014507 g ustar 00root root 0000000 0000000 52 comment=27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2 gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/ 0000775 0000000 0000000 00000000000 14152211740 0021234 5 ustar 00root root 0000000 0000000 gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/.jenkins.sh 0000775 0000000 0000000 00000000566 14152211740 0023321 0 ustar 00root root 0000000 0000000 #!/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 gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/LICENSE 0000664 0000000 0000000 00000002703 14152211740 0022243 0 ustar 00root root 0000000 0000000 Copyright 2019 ETSI Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/MEC021_AppMobilityService.json 0000664 0000000 0000000 00000174222 14152211740 0026620 0 ustar 00root root 0000000 0000000 { "openapi": "3.1.0", "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": { "name": "ETSI Forge", "url": "https://forge.etsi.org/rep/mec/gs021-amsi-api", "email": "cti_support@etsi.org" } }, "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" }, "jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema", "servers": [ { "url": "https://localhost/amsi/v1", "variables": {} } ], "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": { "/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": [ { "name": "filter", "in": "query", "description": "Attribute-based filtering parameters according to ETSI GS MEC 011", "style": "form", "explode": true, "schema": { "type": "string" } }, { "name": "all_fields", "in": "query", "description": "Include all complex attributes in the response.", "style": "form", "explode": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011", "style": "form", "explode": true, "schema": { "type": "string" } }, { "name": "exclude_fields", "in": "query", "description": "Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011", "style": "form", "explode": true, "schema": { "type": "string" } }, { "name": "exclude_default", "in": "query", "description": "Indicates to exclude the following complex attributes from the response See clause 6.18 in ETSI GS MEC 011 for details.", "style": "form", "explode": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "A response body containing zero or more adjacent application instances", "headers": {}, "content": { "application/json": { "schema": { "minItems": 0, "type": "array", "items": { "$ref": "#/components/schemas/AdjacentAppInstanceInfo" }, "description": "", "contentMediaType": "application/json" } } } }, "400": { "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized : used when the client did not submit credentials.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden : operation is not allowed given the current status of the resource.", "headers": {}, "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.", "headers": {}, "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.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests : used when a rate limiter has triggered.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "deprecated": false }, "parameters": [] }, "/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": [ { "name": "filter", "in": "query", "description": "Attribute-based filtering parameters according to ETSI GS MEC 011", "style": "form", "explode": true, "schema": { "type": "string" } }, { "name": "all_fields", "in": "query", "description": "Include all complex attributes in the response.", "style": "form", "explode": true, "schema": { "type": "string" } }, { "name": "fields", "in": "query", "description": "Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011", "style": "form", "explode": true, "schema": { "type": "string" } }, { "name": "exclude_fields", "in": "query", "description": "Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011", "style": "form", "explode": true, "schema": { "type": "string" } }, { "name": "exclude_default", "in": "query", "description": "Indicates to exclude the following complex attributes from the response See clause 6.18 in ETSI GS MEC 011 for details.", "style": "form", "explode": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Contains in an array the representations of zero or more application mobility services.", "headers": {}, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RegistrationInfo" }, "description": "", "contentMediaType": "application/json" } } } }, "400": { "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized : used when the client did not submit credentials.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden : operation is not allowed given the current status of the resource.", "headers": {}, "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.", "headers": {}, "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.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests : used when a rate limiter has triggered.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "deprecated": false }, "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", "parameters": [], "requestBody": { "description": "Application mobility service to be created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistrationInfo" } } }, "required": true }, "responses": { "201": { "description": "Successful response for application mobility service creation", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistrationInfo" } } } }, "400": { "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized : used when the client did not submit credentials.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden : operation is not allowed given the current status of the resource.", "headers": {}, "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.", "headers": {}, "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.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests : used when a rate limiter has triggered.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "deprecated": false }, "parameters": [] }, "/app_mobility_services/{appMobilityServiceId}": { "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", "parameters": [ { "name": "appMobilityServiceId", "in": "path", "description": "It uniquely identifies the created individual application mobility service", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "Contains a representation of the application mobility service.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistrationInfo" } } } }, "400": { "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized : used when the client did not submit credentials.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden : operation is not allowed given the current status of the resource.", "headers": {}, "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.", "headers": {}, "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.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests : used when a rate limiter has triggered.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "deprecated": false }, "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", "parameters": [ { "name": "appMobilityServiceId", "in": "path", "description": "It uniquely identifies the created individual application mobility service", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistrationInfo" } } }, "required": true }, "responses": { "200": { "description": "Contains a data type describing the updated application mobility service.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegistrationInfo" } } } }, "400": { "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized : used when the client did not submit credentials.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden : operation is not allowed given the current status of the resource.", "headers": {}, "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.", "headers": {}, "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.", "headers": {}, "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", "headers": {}, "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.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests : used when a rate limiter has triggered.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "deprecated": false }, "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", "parameters": [ { "name": "appMobilityServiceId", "in": "path", "description": "It uniquely identifies the created individual application mobility service", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "204": { "description": "No Content", "headers": {}, "content": {} }, "401": { "description": "Unauthorized : used when the client did not submit credentials.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden : operation is not allowed given the current status of the resource.", "headers": {}, "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.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests : used when a rate limiter has triggered.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "deprecated": false }, "parameters": [] }, "/app_mobility_services/{appMobilityServiceId}/deregister_task": { "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", "parameters": [ { "name": "appMobilityServiceId", "in": "path", "description": "It uniquely identifies the created individual application mobility service", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "204": { "description": "No Content", "headers": {}, "content": {} }, "401": { "description": "Unauthorized : used when the client did not submit credentials.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden : operation is not allowed given the current status of the resource.", "headers": {}, "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.", "headers": {}, "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.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests : used when a rate limiter has triggered.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "deprecated": false }, "parameters": [] }, "/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": [ { "name": "subscriptionType", "in": "query", "description": "Query parameter to filter on a specific subscription type. Permitted values: mobility_proc or adj_app_info", "required": true, "style": "form", "explode": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Contains the list of links to requestor subscriptions.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SubscriptionLinkList" } } } }, "400": { "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized : used when the client did not submit credentials.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden : operation is not allowed given the current status of the resource.", "headers": {}, "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.", "headers": {}, "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.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests : used when a rate limiter has triggered.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "deprecated": false }, "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", "parameters": [], "requestBody": { "description": "", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/MobilityProcedureSubscription" }, { "$ref": "#/components/schemas/AdjacentAppInfoSubscription" } ], "contentMediaType": "application/json" } } }, "required": true }, "responses": { "201": { "description": "Created subscription is described using the appropriate data type", "headers": {}, "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/MobilityProcedureSubscription" }, { "$ref": "#/components/schemas/AdjacentAppInfoSubscription" } ], "contentMediaType": "application/json" } } } }, "400": { "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized : used when the client did not submit credentials.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden : operation is not allowed given the current status of the resource.", "headers": {}, "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.", "headers": {}, "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.", "headers": {}, "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.", "headers": {}, "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.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests : used when a rate limiter has triggered.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "deprecated": false }, "parameters": [] }, "/subscriptions/{subscriptionId}": { "get": { "tags": [ "subscriptions" ], "summary": "Retrieve information about this subscription.", "description": "Retrieve information about this subscription.", "operationId": "sub_byIdGET", "parameters": [ { "name": "subscriptionId", "in": "path", "description": "Refers to created subscription, where the AMS API allocates a unique resource name for this subscription", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "200": { "description": "A response body containing data type describing the specific RNI event subscription", "headers": {}, "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/MobilityProcedureSubscription" }, { "$ref": "#/components/schemas/AdjacentAppInfoSubscription" } ], "contentMediaType": "application/json" } } } }, "400": { "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized : used when the client did not submit credentials.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden : operation is not allowed given the current status of the resource.", "headers": {}, "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.", "headers": {}, "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.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests : used when a rate limiter has triggered.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "deprecated": false }, "put": { "tags": [ "subscriptions" ], "summary": "update the existing individual subscription.", "description": "update the existing individual subscription.", "operationId": "sub_byIdPUT", "parameters": [ { "name": "subscriptionId", "in": "path", "description": "Refers to created subscription, where the AMS API allocates a unique resource name for this subscription", "required": true, "style": "simple", "schema": { "type": "string" } } ], "requestBody": { "description": "", "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/MobilityProcedureSubscription" }, { "$ref": "#/components/schemas/AdjacentAppInfoSubscription" } ], "contentMediaType": "application/json" } } }, "required": true }, "responses": { "200": { "description": "a response body containing data type describing the updated subscription", "headers": {}, "content": { "application/json": { "schema": { "oneOf": [ { "$ref": "#/components/schemas/MobilityProcedureSubscription" }, { "$ref": "#/components/schemas/AdjacentAppInfoSubscription" } ], "contentMediaType": "application/json" } } } }, "400": { "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "401": { "description": "Unauthorized : used when the client did not submit credentials.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden : operation is not allowed given the current status of the resource.", "headers": {}, "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.", "headers": {}, "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.", "headers": {}, "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", "headers": {}, "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.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests : used when a rate limiter has triggered.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "deprecated": false }, "delete": { "tags": [ "subscriptions" ], "summary": "cancel the existing individual subscription", "description": "cancel the existing individual subscription", "operationId": "sub_byIdDELETE", "parameters": [ { "name": "subscriptionId", "in": "path", "description": "Refers to created subscription, where the AMS API allocates a unique resource name for this subscription", "required": true, "style": "simple", "schema": { "type": "string" } } ], "responses": { "204": { "description": "No Content", "headers": {}, "content": {} }, "401": { "description": "Unauthorized : used when the client did not submit credentials.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "403": { "description": "Forbidden : operation is not allowed given the current status of the resource.", "headers": {}, "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.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } }, "429": { "description": "Too Many Requests : used when a rate limiter has triggered.", "headers": {}, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProblemDetails" } } } } }, "deprecated": false }, "parameters": [] } }, "components": { "schemas": { "AdjacentAppInfoSubscription.links": { "title": "AdjacentAppInfoSubscription.links", "required": [ "self" ], "type": "object", "properties": { "self": { "$ref": "#/components/schemas/LinkType" } }, "description": "Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests." }, "AdjacentAppInfoSubscription.filterCriteria": { "title": "AdjacentAppInfoSubscription.filterCriteria", "type": "object", "properties": { "appInstanceId": { "type": "string" } }, "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." }, "AdjacentAppInfoSubscription": { "title": "AdjacentAppInfoSubscription", "required": [ "callbackReference", "filterCriteria", "subscriptionType" ], "type": "object", "properties": { "_links": { "$ref": "#/components/schemas/AdjacentAppInfoSubscription.links" }, "callbackReference": { "type": "string", "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." }, "expiryDeadline": { "$ref": "#/components/schemas/TimeStamp" }, "filterCriteria": { "$ref": "#/components/schemas/AdjacentAppInfoSubscription.filterCriteria" }, "subscriptionType": { "const": "AdjacentAppInfoSubscription", "type": "string", "description": "Shall be set to \"AdjacentAppInfoSubscription\".", "examples": [ "AdjacentAppInfoSubscription" ] } } }, "AdjacentAppInstanceInfo": { "title": "AdjacentAppInstanceInfo", "required": [ "appDId", "appInstanceCommLink", "appInstanceId" ], "type": "object", "properties": { "appDId": { "type": "string", "description": "Identifier of the application descriptor." }, "appInstanceCommLink": { "minItems": 1, "type": "array", "items": { "$ref": "#/components/schemas/CommunicationInterface" }, "description": "It specifies the communication interface of application instance." }, "appInstanceId": { "type": "string", "description": "Identifier of the application instance." }, "mecHostInformation": { "$ref": "#/components/schemas/MECHostInformation" } } }, "AppMobilityServiceLevel": { "title": "AppMobilityServiceLevel", "enum": [ "APP_MOBILITY_NOT_ALLOWED", "APP_MOBILITY_WITH_CONFIRMATION", "APP_MOBILITY_WITHOUT_CONFIRMATION" ], "type": "string", "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.", "examples": [ "APP_MOBILITY_NOT_ALLOWED" ] }, "CommunicationInterface.IpAddresses": { "title": "CommunicationInterface.IpAddresses", "required": [ "host", "port" ], "type": "object", "properties": { "host": { "type": "string" }, "port": { "type": "integer", "contentEncoding": "int32" } } }, "CommunicationInterface": { "title": "CommunicationInterface", "type": "object", "properties": { "ipAddresses": { "type": "array", "items": { "$ref": "#/components/schemas/CommunicationInterface.IpAddresses" }, "description": "" } } }, "MobilityProcedureSubscription.links": { "title": "MobilityProcedureSubscription.links", "required": [ "self" ], "type": "object", "properties": { "self": { "$ref": "#/components/schemas/LinkType" } } }, "MobilityProcedureSubscription.filterCriteria": { "title": "MobilityProcedureSubscription.filterCriteria", "type": "object", "properties": { "appInstanceId": { "type": "string", "description": "Identifier of the application instance that registers the application mobility service." }, "associateId": { "minItems": 0, "type": "array", "items": { "$ref": "#/components/schemas/AssociateId" }, "description": "0 to N identifiers to associate the information for specific UE(s) and flow(s)." }, "mobilityStatus": { "minItems": 0, "type": "array", "items": { "$ref": "#/components/schemas/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." } }, "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." }, "MobilityProcedureSubscription": { "title": "MobilityProcedureSubscription", "required": [ "callbackReference", "filterCriteria", "subscriptionType" ], "type": "object", "properties": { "_links": { "$ref": "#/components/schemas/MobilityProcedureSubscription.links" }, "callbackReference": { "type": "string", "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." }, "expiryDeadline": { "$ref": "#/components/schemas/TimeStamp" }, "filterCriteria": { "$ref": "#/components/schemas/MobilityProcedureSubscription.filterCriteria" }, "subscriptionType": { "const": "MobilityProcedureSubscription", "type": "string", "description": "Shall be set to \"MobilityProcedureSubscription\".", "examples": [ "MobilityProcedureSubscription" ] } } }, "MobilityStatus": { "title": "MobilityStatus", "enum": [ "INTERHOST_MOVEOUT_TRIGGERED", "INTERHOST_MOVEOUT_COMPLETED", "INTERHOST_MOVEOUT_FAILED" ], "type": "string", "description": "Indicate the status of the UE mobility", "examples": [ "INTERHOST_MOVEOUT_TRIGGERED" ] }, "RegistrationInfo.deviceInformation": { "title": "RegistrationInfo.deviceInformation", "required": [ "associateId" ], "type": "object", "properties": { "associateId": { "$ref": "#/components/schemas/AssociateId" }, "appMobilityServiceLevel": { "$ref": "#/components/schemas/AppMobilityServiceLevel" }, "contextTransferState": { "$ref": "#/components/schemas/contextTransferState" } } }, "RegistrationInfo.serviceConsumerId": { "title": "RegistrationInfo.serviceConsumerId", "type": "object", "properties": { "appInstanceId": { "type": "string", "description": "If present, it represents the identifier of the application instance registering the application mobility service." }, "mepId": { "type": "string", "description": "If present, it represents the identifier of the MEC platform registering the application mobility service." } }, "description": "The identifier of service consumer requesting the application mobility service, i.e. either the application instance ID or the MEC platform ID." }, "RegistrationInfo": { "title": "RegistrationInfo", "required": [ "serviceConsumerId" ], "type": "object", "properties": { "appMobilityServiceId": { "type": "string", "description": "The identifier of registered application mobility service. Shall be absent in POST requests, and present otherwise." }, "deviceInformation": { "minItems": 0, "type": "array", "items": { "$ref": "#/components/schemas/RegistrationInfo.deviceInformation" }, "description": "If present, it specifies the device served by the application instance which is registering the application mobility service." }, "expiryTime": { "type": "integer", "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.", "contentEncoding": "int32" }, "serviceConsumerId": { "$ref": "#/components/schemas/RegistrationInfo.serviceConsumerId" } } }, "SubscriptionLinkList.links": { "title": "SubscriptionLinkList.links", "required": [ "self" ], "type": "object", "properties": { "self": { "$ref": "#/components/schemas/LinkType" } }, "description": "List of hyperlinks related to the resource." }, "SubscriptionLinkList.subscription": { "title": "SubscriptionLinkList.subscription", "required": [ "href", "subscriptionType" ], "type": "object", "properties": { "href": { "type": "string", "description": "The URI referring to the subscription." }, "subscriptionType": { "$ref": "#/components/schemas/subscriptionType" } } }, "SubscriptionLinkList": { "title": "SubscriptionLinkList", "required": [ "_links" ], "type": "object", "properties": { "_links": { "$ref": "#/components/schemas/SubscriptionLinkList.links" }, "subscription": { "minItems": 0, "type": "array", "items": { "$ref": "#/components/schemas/SubscriptionLinkList.subscription" }, "description": "A link to a subscription." } } }, "contextTransferState": { "title": "contextTransferState", "enum": [ "NOT_TRANSFERRED", "USER_CONTEXT_TRANSFER_COMPLETED" ], "type": "string", "description": "If present, it represents the state of transferring the user context to another application instance.", "examples": [ "NOT_TRANSFERRED" ] }, "subscriptionType": { "title": "subscriptionType", "enum": [ 0, 1, 2 ], "type": "integer", "description": "Numeric value (0 - 255) corresponding to specified type of subscription as following: 0 = RESERVED. 1 = MOBILITY_PROCEDURE. 2 = ADJACENT_APPINFO.", "examples": [ 0 ] }, "AssociateId": { "title": "AssociateId", "required": [ "type", "value" ], "type": "object", "properties": { "type": { "$ref": "#/components/schemas/Type" }, "value": { "type": "string", "description": "Value for the identifier." } } }, "LinkType": { "title": "LinkType", "required": [ "href" ], "type": "object", "properties": { "href": { "type": "string", "description": "The URI referring to the subscription." } }, "description": "'This data type represents a type of link'" }, "TimeStamp": { "title": "TimeStamp", "required": [ "seconds", "nanoSeconds" ], "type": "object", "properties": { "seconds": { "type": "integer", "description": "'The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.'", "contentEncoding": "int32" }, "nanoSeconds": { "type": "integer", "description": "'The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.'", "contentEncoding": "int32" } }, "description": "'This data type represents the time stamp as Unix-time since January 1, 1970, 00:00:00 UTC'" }, "MECHostInformation": { "title": "MECHostInformation", "required": [ "hostId" ], "type": "object", "properties": { "hostName": { "type": "string", "description": "Human-readable name of MEC host." }, "hostId": { "type": "object", "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'" } }, "description": "'The data type represents the parameters of MEC host information.'" }, "ProblemDetails": { "title": "ProblemDetails", "type": "object", "properties": { "detail": { "type": "string", "description": "A human-readable explanation specific to this occurrence of the problem" }, "instance": { "type": "string", "description": "A URI reference that identifies the specific occurrence of the problem" }, "status": { "type": "integer", "description": "The HTTP status code for this occurrence of the problem", "contentEncoding": "int32" }, "title": { "type": "string", "description": "A short, human-readable summary of the problem type" }, "type": { "type": "string", "description": "A URI reference according to IETF RFC 3986 that identifies the problem type" } } }, "Type": { "title": "Type", "enum": [ "UE_IPv4_ADDRESS", "UE_IPV6_ADDRESS", "NATED_IP_ADDRESS", "GTP_TEID" ], "type": "string", "description": "Numeric value (0-255) corresponding to specified type of identifier", "examples": [ "UE_IPv4_ADDRESS" ] } } }, "security": [ {} ] } gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/MEC021_AppMobilityService.yaml 0000664 0000000 0000000 00000135314 14152211740 0026610 0 ustar 00root root 0000000 0000000 openapi: 3.1.0 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: name: ETSI Forge url: https://forge.etsi.org/rep/mec/gs021-amsi-api email: cti_support@etsi.org 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 jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema servers: - url: https://localhost/amsi/v1 variables: {} 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: /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: - name: filter in: query description: Attribute-based filtering parameters according to ETSI GS MEC 011 style: form explode: true schema: type: string - name: all_fields in: query description: Include all complex attributes in the response. style: form explode: true schema: type: string - name: fields in: query description: Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011 style: form explode: true schema: type: string - name: exclude_fields in: query description: Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011 style: form explode: true schema: type: string - name: exclude_default in: query description: Indicates to exclude the following complex attributes from the response See clause 6.18 in ETSI GS MEC 011 for details. style: form explode: true schema: type: string responses: '200': description: A response body containing zero or more adjacent application instances headers: {} content: application/json: schema: minItems: 0 type: array items: $ref: '#/components/schemas/AdjacentAppInstanceInfo' description: '' contentMediaType: application/json '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} 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.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /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: - name: filter in: query description: Attribute-based filtering parameters according to ETSI GS MEC 011 style: form explode: true schema: type: string - name: all_fields in: query description: Include all complex attributes in the response. style: form explode: true schema: type: string - name: fields in: query description: Complex attributes to be included into the response. See clause 6.18 in ETSI GS MEC 011 style: form explode: true schema: type: string - name: exclude_fields in: query description: Complex attributes to be excluded from the response.See clause 6.18 in ETSI GS MEC 011 style: form explode: true schema: type: string - name: exclude_default in: query description: Indicates to exclude the following complex attributes from the response See clause 6.18 in ETSI GS MEC 011 for details. style: form explode: true schema: type: string responses: '200': description: Contains in an array the representations of zero or more application mobility services. headers: {} content: application/json: schema: type: array items: $ref: '#/components/schemas/RegistrationInfo' description: '' contentMediaType: application/json '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} 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.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false 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 parameters: [] requestBody: description: Application mobility service to be created content: application/json: schema: $ref: '#/components/schemas/RegistrationInfo' required: true responses: '201': description: Successful response for application mobility service creation headers: {} content: application/json: schema: $ref: '#/components/schemas/RegistrationInfo' '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} 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.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /app_mobility_services/{appMobilityServiceId}: 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 parameters: - name: appMobilityServiceId in: path description: It uniquely identifies the created individual application mobility service required: true style: simple schema: type: string responses: '200': description: Contains a representation of the application mobility service. headers: {} content: application/json: schema: $ref: '#/components/schemas/RegistrationInfo' '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} 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.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false 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 parameters: - name: appMobilityServiceId in: path description: It uniquely identifies the created individual application mobility service required: true style: simple schema: type: string requestBody: description: '' content: application/json: schema: $ref: '#/components/schemas/RegistrationInfo' required: true responses: '200': description: Contains a data type describing the updated application mobility service. headers: {} content: application/json: schema: $ref: '#/components/schemas/RegistrationInfo' '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} 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.' headers: {} 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' headers: {} 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.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false 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 parameters: - name: appMobilityServiceId in: path description: It uniquely identifies the created individual application mobility service required: true style: simple schema: type: string responses: '204': description: No Content headers: {} content: {} '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /app_mobility_services/{appMobilityServiceId}/deregister_task: 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 parameters: - name: appMobilityServiceId in: path description: It uniquely identifies the created individual application mobility service required: true style: simple schema: type: string responses: '204': description: No Content headers: {} content: {} '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} 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.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /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: - name: subscriptionType in: query description: 'Query parameter to filter on a specific subscription type. Permitted values: mobility_proc or adj_app_info' required: true style: form explode: true schema: type: string responses: '200': description: Contains the list of links to requestor subscriptions. headers: {} content: application/json: schema: $ref: '#/components/schemas/SubscriptionLinkList' '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} 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.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false 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 parameters: [] requestBody: description: '' content: application/json: schema: oneOf: - $ref: '#/components/schemas/MobilityProcedureSubscription' - $ref: '#/components/schemas/AdjacentAppInfoSubscription' contentMediaType: application/json required: true responses: '201': description: Created subscription is described using the appropriate data type headers: {} content: application/json: schema: oneOf: - $ref: '#/components/schemas/MobilityProcedureSubscription' - $ref: '#/components/schemas/AdjacentAppInfoSubscription' contentMediaType: application/json '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} 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.' headers: {} 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.' headers: {} 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.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] /subscriptions/{subscriptionId}: get: tags: - subscriptions summary: 'Retrieve information about this subscription.' description: Retrieve information about this subscription. operationId: sub_byIdGET parameters: - name: subscriptionId in: path description: Refers to created subscription, where the AMS API allocates a unique resource name for this subscription required: true style: simple schema: type: string responses: '200': description: A response body containing data type describing the specific RNI event subscription headers: {} content: application/json: schema: oneOf: - $ref: '#/components/schemas/MobilityProcedureSubscription' - $ref: '#/components/schemas/AdjacentAppInfoSubscription' contentMediaType: application/json '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} 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.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false put: tags: - subscriptions summary: 'update the existing individual subscription.' description: update the existing individual subscription. operationId: sub_byIdPUT parameters: - name: subscriptionId in: path description: Refers to created subscription, where the AMS API allocates a unique resource name for this subscription required: true style: simple schema: type: string requestBody: description: '' content: application/json: schema: oneOf: - $ref: '#/components/schemas/MobilityProcedureSubscription' - $ref: '#/components/schemas/AdjacentAppInfoSubscription' contentMediaType: application/json required: true responses: '200': description: a response body containing data type describing the updated subscription headers: {} content: application/json: schema: oneOf: - $ref: '#/components/schemas/MobilityProcedureSubscription' - $ref: '#/components/schemas/AdjacentAppInfoSubscription' contentMediaType: application/json '400': description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} 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.' headers: {} 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' headers: {} 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.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false delete: tags: - subscriptions summary: 'cancel the existing individual subscription' description: cancel the existing individual subscription operationId: sub_byIdDELETE parameters: - name: subscriptionId in: path description: Refers to created subscription, where the AMS API allocates a unique resource name for this subscription required: true style: simple schema: type: string responses: '204': description: No Content headers: {} content: {} '401': description: 'Unauthorized : used when the client did not submit credentials.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '403': description: 'Forbidden : operation is not allowed given the current status of the resource.' headers: {} 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.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' '429': description: 'Too Many Requests : used when a rate limiter has triggered.' headers: {} content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' deprecated: false parameters: [] components: schemas: AdjacentAppInfoSubscription.links: title: AdjacentAppInfoSubscription.links required: - self type: object properties: self: $ref: '#/components/schemas/LinkType' description: Hyperlink related to the resource. This shall be only included in the HTTP responses and in HTTP PUT requests. AdjacentAppInfoSubscription.filterCriteria: title: AdjacentAppInfoSubscription.filterCriteria type: object properties: appInstanceId: type: string 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. AdjacentAppInfoSubscription: title: AdjacentAppInfoSubscription required: - callbackReference - filterCriteria - subscriptionType type: object properties: _links: $ref: '#/components/schemas/AdjacentAppInfoSubscription.links' callbackReference: type: string 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. expiryDeadline: $ref: '#/components/schemas/TimeStamp' filterCriteria: $ref: '#/components/schemas/AdjacentAppInfoSubscription.filterCriteria' subscriptionType: const: AdjacentAppInfoSubscription type: string description: Shall be set to "AdjacentAppInfoSubscription". examples: - AdjacentAppInfoSubscription AdjacentAppInstanceInfo: title: AdjacentAppInstanceInfo required: - appDId - appInstanceCommLink - appInstanceId type: object properties: appDId: type: string description: Identifier of the application descriptor. appInstanceCommLink: minItems: 1 type: array items: $ref: '#/components/schemas/CommunicationInterface' description: It specifies the communication interface of application instance. appInstanceId: type: string description: Identifier of the application instance. mecHostInformation: $ref: '#/components/schemas/MECHostInformation' AppMobilityServiceLevel: title: AppMobilityServiceLevel enum: - APP_MOBILITY_NOT_ALLOWED - APP_MOBILITY_WITH_CONFIRMATION - APP_MOBILITY_WITHOUT_CONFIRMATION type: string 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. examples: - APP_MOBILITY_NOT_ALLOWED CommunicationInterface.IpAddresses: title: CommunicationInterface.IpAddresses required: - host - port type: object properties: host: type: string port: type: integer contentEncoding: int32 CommunicationInterface: title: CommunicationInterface type: object properties: ipAddresses: type: array items: $ref: '#/components/schemas/CommunicationInterface.IpAddresses' description: '' MobilityProcedureSubscription.links: title: MobilityProcedureSubscription.links required: - self type: object properties: self: $ref: '#/components/schemas/LinkType' MobilityProcedureSubscription.filterCriteria: title: MobilityProcedureSubscription.filterCriteria type: object properties: appInstanceId: type: string description: Identifier of the application instance that registers the application mobility service. associateId: minItems: 0 type: array items: $ref: '#/components/schemas/AssociateId' description: 0 to N identifiers to associate the information for specific UE(s) and flow(s). mobilityStatus: minItems: 0 type: array items: $ref: '#/components/schemas/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. 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. MobilityProcedureSubscription: title: MobilityProcedureSubscription required: - callbackReference - filterCriteria - subscriptionType type: object properties: _links: $ref: '#/components/schemas/MobilityProcedureSubscription.links' callbackReference: type: string 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. expiryDeadline: $ref: '#/components/schemas/TimeStamp' filterCriteria: $ref: '#/components/schemas/MobilityProcedureSubscription.filterCriteria' subscriptionType: const: MobilityProcedureSubscription type: string description: Shall be set to "MobilityProcedureSubscription". examples: - MobilityProcedureSubscription MobilityStatus: title: MobilityStatus enum: - INTERHOST_MOVEOUT_TRIGGERED - INTERHOST_MOVEOUT_COMPLETED - INTERHOST_MOVEOUT_FAILED type: string description: Indicate the status of the UE mobility examples: - INTERHOST_MOVEOUT_TRIGGERED RegistrationInfo.deviceInformation: title: RegistrationInfo.deviceInformation required: - associateId type: object properties: associateId: $ref: '#/components/schemas/AssociateId' appMobilityServiceLevel: $ref: '#/components/schemas/AppMobilityServiceLevel' contextTransferState: $ref: '#/components/schemas/contextTransferState' RegistrationInfo.serviceConsumerId: title: RegistrationInfo.serviceConsumerId type: object properties: appInstanceId: type: string description: If present, it represents the identifier of the application instance registering the application mobility service. mepId: type: string description: If present, it represents the identifier of the MEC platform registering the application mobility service. description: The identifier of service consumer requesting the application mobility service, i.e. either the application instance ID or the MEC platform ID. RegistrationInfo: title: RegistrationInfo required: - serviceConsumerId type: object properties: appMobilityServiceId: type: string description: The identifier of registered application mobility service. Shall be absent in POST requests, and present otherwise. deviceInformation: minItems: 0 type: array items: $ref: '#/components/schemas/RegistrationInfo.deviceInformation' description: If present, it specifies the device served by the application instance which is registering the application mobility service. expiryTime: type: integer 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. contentEncoding: int32 serviceConsumerId: $ref: '#/components/schemas/RegistrationInfo.serviceConsumerId' SubscriptionLinkList.links: title: SubscriptionLinkList.links required: - self type: object properties: self: $ref: '#/components/schemas/LinkType' description: List of hyperlinks related to the resource. SubscriptionLinkList.subscription: title: SubscriptionLinkList.subscription required: - href - subscriptionType type: object properties: href: type: string description: The URI referring to the subscription. subscriptionType: $ref: '#/components/schemas/subscriptionType' SubscriptionLinkList: title: SubscriptionLinkList required: - _links type: object properties: _links: $ref: '#/components/schemas/SubscriptionLinkList.links' subscription: minItems: 0 type: array items: $ref: '#/components/schemas/SubscriptionLinkList.subscription' description: A link to a subscription. contextTransferState: title: contextTransferState enum: - NOT_TRANSFERRED - USER_CONTEXT_TRANSFER_COMPLETED type: string description: If present, it represents the state of transferring the user context to another application instance. examples: - NOT_TRANSFERRED subscriptionType: title: subscriptionType enum: - 0 - 1 - 2 type: integer description: 'Numeric value (0 - 255) corresponding to specified type of subscription as following: 0 = RESERVED. 1 = MOBILITY_PROCEDURE. 2 = ADJACENT_APPINFO.' examples: - 0 AssociateId: title: AssociateId required: - type - value type: object properties: type: $ref: '#/components/schemas/Type' value: type: string description: Value for the identifier. LinkType: title: LinkType required: - href type: object properties: href: type: string description: The URI referring to the subscription. description: "'This data type represents a type of link'" TimeStamp: title: TimeStamp required: - seconds - nanoSeconds type: object properties: seconds: type: integer description: "'The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.'" contentEncoding: int32 nanoSeconds: type: integer description: "'The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC.'" contentEncoding: int32 description: "'This data type represents the time stamp as Unix-time since January 1, 1970, 00:00:00 UTC'" MECHostInformation: title: MECHostInformation required: - hostId type: object properties: hostName: type: string description: Human-readable name of MEC host. hostId: type: object 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'" description: "'The data type represents the parameters of MEC host information.'" ProblemDetails: title: ProblemDetails type: object properties: detail: type: string description: A human-readable explanation specific to this occurrence of the problem instance: type: string description: A URI reference that identifies the specific occurrence of the problem status: type: integer description: The HTTP status code for this occurrence of the problem contentEncoding: int32 title: type: string description: A short, human-readable summary of the problem type type: type: string description: A URI reference according to IETF RFC 3986 that identifies the problem type Type: title: Type enum: - UE_IPv4_ADDRESS - UE_IPV6_ADDRESS - NATED_IP_ADDRESS - GTP_TEID type: string description: Numeric value (0-255) corresponding to specified type of identifier examples: - UE_IPv4_ADDRESS security: - {} gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/README.md 0000664 0000000 0000000 00000001546 14152211740 0022521 0 ustar 00root root 0000000 0000000 # Application Mobility Service API 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/v2.1.1/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/v2.1.1/MEC021_AppMobilityService.yaml). ## License 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. gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/proto3/ 0000775 0000000 0000000 00000000000 14152211740 0022462 5 ustar 00root root 0000000 0000000 gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/proto3/models/ 0000775 0000000 0000000 00000000000 14152211740 0023745 5 ustar 00root root 0000000 0000000 adjacent_app_info_subscription.proto 0000664 0000000 0000000 00000001754 14152211740 0033212 0 ustar 00root root 0000000 0000000 gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/proto3/models /* 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 callback_reference = 2; TimeStamp expiry_deadline = 3; AdjacentAppInfoSubscriptionFilterCriteria filter_criteria = 4; // Shall be set to \"AdjacentAppInfoSubscription\". enum SUBSCRIPTION_TYPE { ADJACENTAPPINFOSUBSCRIPTION = 0; } } adjacent_app_info_subscription_filter_criteria.proto 0000664 0000000 0000000 00000000567 14152211740 0036442 0 ustar 00root root 0000000 0000000 gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/proto3/models /* 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 app_instance_id = 1; } adjacent_app_info_subscription_links.proto 0000664 0000000 0000000 00000000615 14152211740 0034405 0 ustar 00root root 0000000 0000000 gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/proto3/models /* 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; } adjacent_app_instance_info.proto 0000664 0000000 0000000 00000001367 14152211740 0032272 0 ustar 00root root 0000000 0000000 gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/proto3/models /* 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 appd_id = 1; // It specifies the communication interface of application instance. repeated CommunicationInterface app_instance_comm_link = 2; // Identifier of the application instance. string app_instance_id = 3; MECHostInformation mec_host_information = 4; } app_mobility_service_level.proto 0000664 0000000 0000000 00000001567 14152211740 0032363 0 ustar 00root root 0000000 0000000 gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/proto3/models /* 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 { 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; // Value for the identifier. string value = 2; } gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/proto3/models/associate_id.proto 0000664 0000000 0000000 00000001407 14152211740 0027463 0 ustar 00root root 0000000 0000000 /* 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 {
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;
// Value for the identifier.
string value = 2;
}
gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/proto3/models/communication_interface.proto 0000664 0000000 0000000 00000000710 14152211740 0031715 0 ustar 00root root 0000000 0000000 /*
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 ip_addresses = 1;
}
communication_interface_ip_addresses.proto 0000664 0000000 0000000 00000000567 14152211740 0034375 0 ustar 00root root 0000000 0000000 gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/proto3/models /*
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;
}
gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/proto3/models/context_transfer_state.proto 0000664 0000000 0000000 00000001462 14152211740 0031625 0 ustar 00root root 0000000 0000000 /*
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 {
CONTEXT_TRANSFER_STATE_TYPE_ENUM_0 = 0;
CONTEXT_TRANSFER_STATE_TYPE_ENUM_1 = 1;
}
TypeEnum type = 1;
// Value for the identifier.
string value = 2;
}
gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/proto3/models/link_type.proto 0000664 0000000 0000000 00000000567 14152211740 0027040 0 ustar 00root root 0000000 0000000 /*
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;
}
gs021-amsi-api-27e69ae2b7fc8324211ad9b09bb5fb6b0a0db0c2/proto3/models/mec_host_information.proto 0000664 0000000 0000000 00000001320 14152211740 0031234 0 ustar 00root root 0000000 0000000 /*
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 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