diff --git a/MEC021_AppMobilityService.json b/MEC021_AppMobilityService.json index daea06d3d4c4979eb6c7614621a31b58d9480828..d0d078c7b63cd1589b2b0493114d1e51def07145 100644 --- a/MEC021_AppMobilityService.json +++ b/MEC021_AppMobilityService.json @@ -1,4 +1,5 @@ { + "openapi": "3.1.0", "info": { "title": "ETSI GS MEC 021 Application Mobility Service API", "version": "2.1.1", @@ -9,20 +10,21 @@ }, "contact": { "name": "ETSI Forge", - "email": "cti_support@etsi.org", - "url": "https://forge.etsi.org/rep/mec/gs021-amsi-api" + "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" + "url": "https://localhost/amsi/v1", + "variables": {} } ], - "openapi": "3.0.0", "tags": [ { "name": "adj-app-inst", @@ -42,94 +44,300 @@ } ], "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.", + "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", + "in": "query", + "description": "Attribute-based filtering parameters according to ETSI GS MEC 011", + "style": "form", + "explode": true, "schema": { "type": "string" - }, - "required": false, - "description": "Attribute-based filtering parameters according to ETSI GS MEC 011" + } }, { - "in": "query", "name": "all_fields", + "in": "query", + "description": "Include all complex attributes in the response.", + "style": "form", + "explode": true, "schema": { "type": "string" - }, - "required": false, - "description": "Include all complex attributes in the response." + } }, { - "in": "query", "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" - }, - "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", + "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" - }, - "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", + "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" - }, - "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.", + "headers": {}, "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RegistrationInfo" - } + }, + "description": "", + "contentMediaType": "application/json" } } } }, "400": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/401" + "description": "Unauthorized : used when the client did not submit credentials.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "403": { - "$ref": "#/components/responses/403" + "description": "Forbidden : operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": [ @@ -138,20 +346,22 @@ "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", - "required": true, "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": { @@ -161,38 +371,77 @@ } }, "400": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/401" + "description": "Unauthorized : used when the client did not submit credentials.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "403": { - "$ref": "#/components/responses/403" + "description": "Forbidden : operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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}": { - "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" @@ -200,9 +449,22 @@ "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": { @@ -212,24 +474,73 @@ } }, "400": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/401" + "description": "Unauthorized : used when the client did not submit credentials.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "403": { - "$ref": "#/components/responses/403" + "description": "Forbidden : operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": [ @@ -238,19 +549,33 @@ "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": { - "required": true, + "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": { @@ -260,30 +585,95 @@ } }, "400": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/401" + "description": "Unauthorized : used when the client did not submit credentials.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "403": { - "$ref": "#/components/responses/403" + "description": "Forbidden : operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": [ @@ -292,37 +682,74 @@ "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": { - "$ref": "#/components/responses/204" + "description": "No Content", + "headers": {}, + "content": {} }, "401": { - "$ref": "#/components/responses/401" + "description": "Unauthorized : used when the client did not submit credentials.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "403": { - "$ref": "#/components/responses/403" + "description": "Forbidden : operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "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" @@ -330,29 +757,85 @@ "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": { - "$ref": "#/components/responses/204" + "description": "No Content", + "headers": {}, + "content": {} }, "401": { - "$ref": "#/components/responses/401" + "description": "Unauthorized : used when the client did not submit credentials.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "403": { - "$ref": "#/components/responses/403" + "description": "Forbidden : operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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/": { + "/subscriptions": { "get": { "tags": [ "subscriptions" @@ -362,18 +845,21 @@ "operationId": "subGET", "parameters": [ { - "in": "query", "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" - }, - "required": true + } } ], "responses": { "200": { "description": "Contains the list of links to requestor subscriptions.", + "headers": {}, "content": { "application/json": { "schema": { @@ -383,24 +869,73 @@ } }, "400": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/401" + "description": "Unauthorized : used when the client did not submit credentials.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "403": { - "$ref": "#/components/responses/403" + "description": "Forbidden : operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": [ @@ -409,8 +944,9 @@ "summary": "Create a new subscription to Application Mobility Service notifications.", "description": "Create a new subscription to Application Mobility Service notifications.", "operationId": "subPOST", + "parameters": [], "requestBody": { - "required": true, + "description": "", "content": { "application/json": { "schema": { @@ -421,14 +957,17 @@ { "$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": { @@ -439,50 +978,106 @@ { "$ref": "#/components/schemas/AdjacentAppInfoSubscription" } - ] + ], + "contentMediaType": "application/json" } } } }, "400": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/401" + "description": "Unauthorized : used when the client did not submit credentials.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "403": { - "$ref": "#/components/responses/403" + "description": "Forbidden : operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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}": { - "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" @@ -490,9 +1085,22 @@ "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": { @@ -503,30 +1111,80 @@ { "$ref": "#/components/schemas/AdjacentAppInfoSubscription" } - ] + ], + "contentMediaType": "application/json" } } } }, "400": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/401" + "description": "Unauthorized : used when the client did not submit credentials.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "403": { - "$ref": "#/components/responses/403" + "description": "Forbidden : operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": [ @@ -535,8 +1193,20 @@ "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": { - "required": true, + "description": "", "content": { "application/json": { "schema": { @@ -547,14 +1217,17 @@ { "$ref": "#/components/schemas/AdjacentAppInfoSubscription" } - ] + ], + "contentMediaType": "application/json" } } - } + }, + "required": true }, "responses": { "200": { - "description": " a response body containing data type describing the updated subscription", + "description": "a response body containing data type describing the updated subscription", + "headers": {}, "content": { "application/json": { "schema": { @@ -565,36 +1238,102 @@ { "$ref": "#/components/schemas/AdjacentAppInfoSubscription" } - ] + ], + "contentMediaType": "application/json" } } } }, "400": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/401" + "description": "Unauthorized : used when the client did not submit credentials.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "403": { - "$ref": "#/components/responses/403" + "description": "Forbidden : operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": { - "$ref": "#/components/responses/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": [ @@ -603,151 +1342,114 @@ "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", + "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" - }, - "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 ", + "204": { + "description": "No Content", + "headers": {}, + "content": {} + }, + "401": { + "description": "Unauthorized : used when the client did not submit credentials.", + "headers": {}, "content": { "application/json": { "schema": { - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/AdjacentAppInstanceInfo" - } + "$ref": "#/components/schemas/ProblemDetails" } } } }, - "400": { - "$ref": "#/components/responses/400" - }, - "401": { - "$ref": "#/components/responses/401" - }, "403": { - "$ref": "#/components/responses/403" + "description": "Forbidden : operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/404" - }, - "406": { - "$ref": "#/components/responses/406" + "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": { - "$ref": "#/components/responses/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": { - "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", + "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": { - "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", + "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": { - "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" + "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" @@ -756,143 +1458,142 @@ "$ref": "#/components/schemas/AdjacentAppInfoSubscription.filterCriteria" }, "subscriptionType": { - "description": "Shall be set to \"AdjacentAppInfoSubscription\".", + "const": "AdjacentAppInfoSubscription", "type": "string", - "enum": [ + "description": "Shall be set to \"AdjacentAppInfoSubscription\".", + "examples": [ "AdjacentAppInfoSubscription" - ], - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "String" + ] } - }, + } + }, + "AdjacentAppInstanceInfo": { + "title": "AdjacentAppInstanceInfo", "required": [ - "subscriptionType", - "callbackReference", - "filterCriteria" + "appDId", + "appInstanceCommLink", + "appInstanceId" ], "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" + "description": "Identifier of the application descriptor." }, "appInstanceCommLink": { - "description": "It specifies the communication interface of application instance.", + "minItems": 1, "type": "array", "items": { "$ref": "#/components/schemas/CommunicationInterface" }, - "minItems": 1 + "description": "It specifies the communication interface of application instance." }, "appInstanceId": { - "description": "Identifier of the application instance.", "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "String" + "description": "Identifier of the application instance." }, "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.", + "title": "AppMobilityServiceLevel", "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." + "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" + "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" } - }, - "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.", + "title": "MobilityProcedureSubscription.filterCriteria", + "type": "object", "properties": { "appInstanceId": { - "description": "Identifier of the application instance that registers the application mobility service.", "type": "string", - "x-etsi-mec-cardinality": "0..1" + "description": "Identifier of the application instance that registers the application mobility service." }, "associateId": { - "description": "0 to N identifiers to associate the information for specific UE(s) and flow(s).", + "minItems": 0, + "type": "array", "items": { "$ref": "#/components/schemas/AssociateId" }, - "minItems": 0, - "type": "array", - "x-etsi-mec-cardinality": "0..N" + "description": "0 to N identifiers to associate the information for specific UE(s) and flow(s)." }, "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.", + "minItems": 0, + "type": "array", "items": { "$ref": "#/components/schemas/MobilityStatus" }, - "minItems": 0, - "type": "array", - "x-etsi-mec-cardinality": "0..N" + "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", - "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" + "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" @@ -901,35 +1602,34 @@ "$ref": "#/components/schemas/MobilityProcedureSubscription.filterCriteria" }, "subscriptionType": { - "description": "Shall be set to \"MobilityProcedureSubscription\".", + "const": "MobilityProcedureSubscription", "type": "string", - "enum": [ + "description": "Shall be set to \"MobilityProcedureSubscription\".", + "examples": [ "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", + "title": "MobilityStatus", "enum": [ "INTERHOST_MOVEOUT_TRIGGERED", "INTERHOST_MOVEOUT_COMPLETED", "INTERHOST_MOVEOUT_FAILED" ], - "type": "string" + "type": "string", + "description": "Indicate the status of the UE mobility", + "examples": [ + "INTERHOST_MOVEOUT_TRIGGERED" + ] }, "RegistrationInfo.deviceInformation": { + "title": "RegistrationInfo.deviceInformation", "required": [ - "serviceConsumerId", "associateId" ], + "type": "object", "properties": { "associateId": { "$ref": "#/components/schemas/AssociateId" @@ -943,360 +1643,238 @@ } }, "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.", + "title": "RegistrationInfo.serviceConsumerId", + "type": "object", "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" + "description": "If present, it represents the identifier of the application instance registering the application mobility service." }, "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" + "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": { - "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" + "description": "The identifier of registered application mobility service. Shall be absent in POST requests, and present otherwise." }, "deviceInformation": { - "description": "If present, it specifies the device served by the application instance which is registering the application mobility service.", - "type": "array", "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": { - "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" + "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" } - }, - "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.", + "title": "SubscriptionLinkList.links", + "required": [ + "self" + ], + "type": "object", "properties": { "self": { "$ref": "#/components/schemas/LinkType" } }, - "required": [ - "self" - ] + "description": "List of hyperlinks related to the resource." }, "SubscriptionLinkList.subscription": { + "title": "SubscriptionLinkList.subscription", + "required": [ + "href", + "subscriptionType" + ], + "type": "object", "properties": { "href": { - "description": "The URI referring to the subscription.", - "format": "uri", "type": "string", - "x-etsi-mec-cardinality": "1" + "description": "The URI referring to the subscription." }, "subscriptionType": { "$ref": "#/components/schemas/subscriptionType" } - }, - "required": [ - "href", - "subscriptionType" - ] + } }, "SubscriptionLinkList": { + "title": "SubscriptionLinkList", + "required": [ + "_links" + ], + "type": "object", "properties": { "_links": { "$ref": "#/components/schemas/SubscriptionLinkList.links" }, "subscription": { - "description": "A link to a subscription.", - "type": "array", "minItems": 0, + "type": "array", "items": { "$ref": "#/components/schemas/SubscriptionLinkList.subscription" }, - "x-etsi-mec-cardinality": "0..N" + "description": "A link to a subscription." } - }, - "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.", + "title": "contextTransferState", "enum": [ "NOT_TRANSFERRED", "USER_CONTEXT_TRANSFER_COMPLETED" ], - "type": "string" + "type": "string", + "description": "If present, it represents the state of transferring the user context to another application instance.", + "examples": [ + "NOT_TRANSFERRED" + ] }, "subscriptionType": { - "description": "Numeric value (0 - 255) corresponding to specified type of subscription as following: 0 = RESERVED. 1 = MOBILITY_PROCEDURE. 2 = ADJACENT_APPINFO. ", + "title": "subscriptionType", "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 + "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": { - "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" + "$ref": "#/components/schemas/Type" }, "value": { - "description": "Value for the identifier.", "type": "string", - "x-etsi-mec-cardinality": "1", - "x-etsi-mec-origin-type": "String" + "description": "Value for the identifier." } - }, - "required": [ - "type", - "value" - ], - "type": "object", - "x-etsi-ref": "6.5.4" + } }, "LinkType": { - "description": "'This data type represents a type of link'", - "type": "object", + "title": "LinkType", "required": [ "href" ], + "type": "object", "properties": { "href": { - "$ref": "#/components/schemas/Href" + "type": "string", + "description": "The URI referring to the subscription." } - } - }, - "Href": { - "description": "The URI referring to the subscription.", - "type": "string", - "format": "uri" + }, + "description": "'This data type represents a type of link'" }, "TimeStamp": { - "description": "'This data type represents the time stamp as Unix-time since January 1, 1970, 00:00:00 UTC'", - "type": "object", + "title": "TimeStamp", "required": [ "seconds", "nanoSeconds" ], + "type": "object", "properties": { "seconds": { - "$ref": "#/components/schemas/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": { - "$ref": "#/components/schemas/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": { - "description": "'The data type represents the parameters of MEC host information.'", - "type": "object", + "title": "MECHostInformation", "required": [ "hostId" ], + "type": "object", "properties": { "hostName": { - "$ref": "#/components/schemas/HostName" + "type": "string", + "description": "Human-readable name of MEC host." }, "hostId": { - "$ref": "#/components/schemas/KeyValuePairs" + "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": { - "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" + "description": "A human-readable explanation specific to this occurrence of the problem" }, "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" + "description": "A URI reference that identifies the specific occurrence of the problem" }, "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" + "description": "The HTTP status code for this occurrence of the problem", + "contentEncoding": "int32" }, "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" + "description": "A short, human-readable summary of the problem type" }, "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" - } + "description": "A URI reference according to IETF RFC 3986 that identifies the problem type" } } }, - "429": { - "description": "Too Many Requests : used when a rate limiter has triggered.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - } - } + "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": [ + {} + ] } \ No newline at end of file diff --git a/MEC021_AppMobilityService.yaml b/MEC021_AppMobilityService.yaml index 9d2a5a39896e59d53e0f0d63a49f3b14661b17f6..20e6e2b208357a51d8d57e19a8cae87675661bb8 100644 --- a/MEC021_AppMobilityService.yaml +++ b/MEC021_AppMobilityService.yaml @@ -1,953 +1,1254 @@ +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." + 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 - email: cti_support@etsi.org 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' + 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' -openapi: 3.0.0 +- 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 - +- 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: + /queries/adjacent_app_instances: + get: tags: - - 'app-mob-ser' - summary: ' Retrieve information about the registered application mobility service.' + - 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: - - 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.' + - 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.' + 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': - $ref: '#/components/responses/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': - $ref: '#/components/responses/401' + description: 'Unauthorized : used when the client did not submit credentials.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '403': - $ref: '#/components/responses/403' + description: 'Forbidden : operation is not allowed given the current status of the resource.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $ref: '#/components/responses/429' - post: + 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' + - 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.' + description: Create a new application mobility service for the service requester. operationId: app_mobility_servicePOST + parameters: [] requestBody: description: Application mobility service to be created - required: true content: application/json: schema: - $ref: '#/components/schemas/RegistrationInfo' + $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' + $ref: '#/components/schemas/RegistrationInfo' '400': - $ref: '#/components/responses/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': - $ref: '#/components/responses/401' + description: 'Unauthorized : used when the client did not submit credentials.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '403': - $ref: '#/components/responses/403' + description: 'Forbidden : operation is not allowed given the current status of the resource.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $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: + 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.' - + description: Contains a representation of the application mobility service. + headers: {} content: application/json: schema: $ref: '#/components/schemas/RegistrationInfo' '400': - $ref: '#/components/responses/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': - $ref: '#/components/responses/401' + description: 'Unauthorized : used when the client did not submit credentials.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '403': - $ref: '#/components/responses/403' + description: 'Forbidden : operation is not allowed given the current status of the resource.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $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: + 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' - responses: + $ref: '#/components/schemas/RegistrationInfo' + required: true + responses: '200': - description: 'Contains a data type describing the updated application mobility service.' + description: Contains a data type describing the updated application mobility service. + headers: {} content: application/json: schema: $ref: '#/components/schemas/RegistrationInfo' '400': - $ref: '#/components/responses/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': - $ref: '#/components/responses/401' + description: 'Unauthorized : used when the client did not submit credentials.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '403': - $ref: '#/components/responses/403' + description: 'Forbidden : operation is not allowed given the current status of the resource.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $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: + 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': - $ref: '#/components/responses/204' + description: No Content + headers: {} + content: {} '401': - $ref: '#/components/responses/401' + description: 'Unauthorized : used when the client did not submit credentials.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '403': - $ref: '#/components/responses/403' + description: 'Forbidden : operation is not allowed given the current status of the resource.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/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': - $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: + 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': - $ref: '#/components/responses/204' + description: No Content + headers: {} + content: {} '401': - $ref: '#/components/responses/401' + description: 'Unauthorized : used when the client did not submit credentials.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '403': - $ref: '#/components/responses/403' + description: 'Forbidden : operation is not allowed given the current status of the resource.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $ref: '#/components/responses/429' - /subscriptions/: - get: + 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' + - subscriptions summary: 'Retrieve information about the subscriptions for this requestor.' - description: '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 + - 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.' - content: - application/json: - schema: - $ref: '#/components/schemas/SubscriptionLinkList' + description: Contains the list of links to requestor subscriptions. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/SubscriptionLinkList' '400': - $ref: '#/components/responses/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': - $ref: '#/components/responses/401' + description: 'Unauthorized : used when the client did not submit credentials.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '403': - $ref: '#/components/responses/403' + description: 'Forbidden : operation is not allowed given the current status of the resource.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $ref: '#/components/responses/429' - post: + 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' + - subscriptions summary: 'Create a new subscription to Application Mobility Service notifications.' - description: 'Create a new subscription to Application Mobility Service notifications.' + description: Create a new subscription to Application Mobility Service notifications. operationId: subPOST + parameters: [] requestBody: - required: true + description: '' content: application/json: schema: oneOf: - - $ref: '#/components/schemas/MobilityProcedureSubscription' - - $ref: '#/components/schemas/AdjacentAppInfoSubscription' + - $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' + description: Created subscription is described using the appropriate data type + headers: {} content: application/json: schema: - oneOf: - - $ref: '#/components/schemas/MobilityProcedureSubscription' - - $ref: '#/components/schemas/AdjacentAppInfoSubscription' + oneOf: + - $ref: '#/components/schemas/MobilityProcedureSubscription' + - $ref: '#/components/schemas/AdjacentAppInfoSubscription' + contentMediaType: application/json '400': - $ref: '#/components/responses/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': - $ref: '#/components/responses/401' + description: 'Unauthorized : used when the client did not submit credentials.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '403': - $ref: '#/components/responses/403' + description: 'Forbidden : operation is not allowed given the current status of the resource.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $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: + 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' + 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' + oneOf: + - $ref: '#/components/schemas/MobilityProcedureSubscription' + - $ref: '#/components/schemas/AdjacentAppInfoSubscription' + contentMediaType: application/json '400': - $ref: '#/components/responses/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': - $ref: '#/components/responses/401' + description: 'Unauthorized : used when the client did not submit credentials.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '403': - $ref: '#/components/responses/403' + description: 'Forbidden : operation is not allowed given the current status of the resource.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $ref: '#/components/responses/429' - put: - tags: - - 'subscriptions' - summary: 'update the existing individual subscription.' - description: 'update the existing individual subscription.' - operationId: sub_byIdPUT - requestBody: + 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' - responses: + - $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' + 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' + oneOf: + - $ref: '#/components/schemas/MobilityProcedureSubscription' + - $ref: '#/components/schemas/AdjacentAppInfoSubscription' + contentMediaType: application/json '400': - $ref: '#/components/responses/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': - $ref: '#/components/responses/401' + description: 'Unauthorized : used when the client did not submit credentials.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '403': - $ref: '#/components/responses/403' + description: 'Forbidden : operation is not allowed given the current status of the resource.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $ref: '#/components/responses/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': - $ref: '#/components/responses/429' - delete: - tags: - - 'subscriptions' - summary: 'cancel the existing individual subscription' - description: 'cancel the existing individual subscription' - operationId: sub_byIdDELETE - responses: + 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': - $ref: '#/components/responses/204' + description: No Content + headers: {} + content: {} '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 ' + description: 'Unauthorized : used when the client did not submit credentials.' + headers: {} content: application/json: schema: - type: array - minItems: 0 - items: - $ref: '#/components/schemas/AdjacentAppInstanceInfo' - '400': - $ref: '#/components/responses/400' - '401': - $ref: '#/components/responses/401' + $ref: '#/components/schemas/ProblemDetails' '403': - $ref: '#/components/responses/403' + description: 'Forbidden : operation is not allowed given the current status of the resource.' + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/404' - '406': - $ref: '#/components/responses/406' + 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': - $ref: '#/components/responses/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: - 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 + title: AdjacentAppInfoSubscription.links required: - - self + - 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: - 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 + title: AdjacentAppInfoSubscription.filterCriteria + type: object properties: - appInstanceId: - type: string - + 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: - 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 + 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: - # description': Time stamp. - # x-etsi-mec-cardinality': 0..1 - # x-etsi-mec-origin-type': TimeStamp - $ref: '#/components/schemas/TimeStamp' + $ref: '#/components/schemas/TimeStamp' filterCriteria: $ref: '#/components/schemas/AdjacentAppInfoSubscription.filterCriteria' - #x-etsi-mec-cardinality: '1' subscriptionType: - description: Shall be set to "AdjacentAppInfoSubscription". + const: AdjacentAppInfoSubscription type: string - enum: - - AdjacentAppInfoSubscription - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: String + description: Shall be set to "AdjacentAppInfoSubscription". + examples: + - AdjacentAppInfoSubscription + AdjacentAppInstanceInfo: + title: AdjacentAppInstanceInfo required: - - subscriptionType - - callbackReference - - filterCriteria + - appDId + - appInstanceCommLink + - appInstanceId 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 + description: Identifier of the application descriptor. appInstanceCommLink: - description: It specifies the communication interface of application instance. + minItems: 1 type: array items: $ref: '#/components/schemas/CommunicationInterface' - minItems: 1 - - #x-etsi-mec-cardinality: 1..N - #x-etsi-mec-origin-type: CommunicationInterface + description: It specifies the communication interface of application instance. appInstanceId: - description: Identifier of the application instance. type: string - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: String + description: Identifier of the application instance. 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. + title: AppMobilityServiceLevel enum: - APP_MOBILITY_NOT_ALLOWED - APP_MOBILITY_WITH_CONFIRMATION - - APP_MOBILITY_WITHOUT_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." + 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: - required: - - host - - port - properties: - host: - type: string - port: - type: integer - + 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' - + type: array + items: + $ref: '#/components/schemas/CommunicationInterface.IpAddresses' + description: '' 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 - - + title: MobilityProcedureSubscription.links + required: + - self + type: object + properties: + self: + $ref: '#/components/schemas/LinkType' 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 - - - + 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 - 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 + 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: - # 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". + const: MobilityProcedureSubscription type: string - enum: - - MobilityProcedureSubscription - x-etsi-mec-cardinality: '1' - x-etsi-mec-origin-type: String - required: - - subscriptionType - - callbackReference - - filterCriteria - + description: Shall be set to "MobilityProcedureSubscription". + examples: + - MobilityProcedureSubscription MobilityStatus: - description: Indicate the status of the UE mobility + 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: - 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' - + 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: - 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 + 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: - 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 + description: The identifier of registered application mobility service. Shall be absent in POST requests, and present otherwise. deviceInformation: - description: 'If present, it specifies the device served by the application instance which is registering the application mobility service.' - type: array minItems: 0 + type: array items: - $ref: '#/components/schemas/RegistrationInfo.deviceInformation' - + $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: - 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 + 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' - 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 - + title: SubscriptionLinkList.links + required: + - self + type: object + properties: + self: + $ref: '#/components/schemas/LinkType' + description: List of hyperlinks related to the resource. 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 - - + 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: - 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 - + 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: - description: If present, it represents the state of transferring the user context to another application instance. + 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: - description: 'Numeric value (0 - 255) corresponding to specified type of subscription as following: 0 = RESERVED. 1 = MOBILITY_PROCEDURE. 2 = ADJACENT_APPINFO. ' + title: subscriptionType 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 - + description: 'Numeric value (0 - 255) corresponding to specified type of subscription as following: 0 = RESERVED. 1 = MOBILITY_PROCEDURE. 2 = ADJACENT_APPINFO.' + examples: + - 0 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 + title: AssociateId required: - type - value type: object - x-etsi-ref: 6.5.4 + properties: + type: + $ref: '#/components/schemas/Type' + value: + type: string + description: Value for the identifier. LinkType: - description: >- - 'This data type represents a type of link' - type: object + title: LinkType required: - - href + - href + type: object properties: href: - $ref: '#/components/schemas/Href' - Href: - description: >- - The URI referring to the subscription. - type: string - format: uri + type: string + description: The URI referring to the subscription. + description: "'This data type represents a type of link'" TimeStamp: - description: >- - 'This data type represents the time stamp as Unix-time since January 1, 1970, 00:00:00 UTC' - type: object + title: TimeStamp required: - - seconds - - nanoSeconds + - seconds + - nanoSeconds + type: object properties: seconds: - $ref: '#/components/schemas/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: - $ref: '#/components/schemas/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: - description: >- - 'The data type represents the parameters of MEC host information.' - type: object + title: MECHostInformation required: - - hostId + - hostId + type: object properties: hostName: - $ref: '#/components/schemas/HostName' + type: string + description: Human-readable name of MEC host. hostId: - $ref: '#/components/schemas/KeyValuePairs' - - - + 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: - 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 + description: A human-readable explanation specific to this occurrence of the problem 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 + description: A URI reference that identifies the specific occurrence of the problem 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 + description: The HTTP status code for this occurrence of the problem + contentEncoding: int32 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 + 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 - 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 + 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: +- {} \ No newline at end of file diff --git a/README.md b/README.md index 4686e16f2dde1967f6cde64731cf07bae09b0560..24c4e355a390e1b6fb889cfb72e48543b5184a50 100644 --- a/README.md +++ b/README.md @@ -5,8 +5,8 @@ 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/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). +* [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/stf606-final/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/stf606-final/MEC021_AppMobilityService.yaml). ## License