Commit 50e7a774 authored by admin_forge's avatar admin_forge
Browse files

Merge branch 'develop' into 'master'

STF593 - Milestone A - Merge v2.2.1 to Master branch

See merge request !2
parents 8b2ce845 13fa4205
Pipeline #5869 passed with stage
in 0 seconds
#!/bin/bash
specfiles=$(ls | egrep "^[^.]*Api.(json|yaml)")
specfiles=$(ls | egrep "^[^.]*.(json|yaml)")
fres=0
for i in $specfiles ; do
echo "-- Validating and linting OpenAPI file $i..."
swagger-cli validate "$i"
swagger-cli validate $i
res=$?
speccy lint "$i"
res2=$?
......
......@@ -4,12 +4,11 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E
## Online resources
* [Navigate the API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/rep/mec/gs016-ue-app-api/raw/master/UEAppInterfaceApi.yaml).
* [Edit the API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/raw/master/UEAppInterfaceApi.yaml).
* [Navigate the API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/raw/stf593/UEAppInterfaceApi.yaml).
* [Edit the API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/raw/stf593/UEAppInterfaceApi.yaml).
## License
Unless specified otherwise, the content of this repository and the files
Unless specified otherwise, the content of this repository and the files
contained are released under the BSD-3-Clause license.
See the attached LICENSE file or visit https://forge.etsi.org/legal-matters.
{
"openapi": "3.0.2",
"openapi": "3.0.0",
"info": {
"title": "UE Application Interface API",
"version": "2.1.1",
"description": "The ETSI MEC ISG MEC016 UE Application Interface API described using OpenAPI",
"contact": {
"url": "https://forge.etsi.org/rep/mec/gs016-dev-app-api"
},
"title": "ETSI GS MEC 016 Device application interface",
"version": "2.2.1",
"description": "The ETSI MEC ISG Device application interface API described using OpenAPI.",
"license": {
"name": "BSD-3-Clause",
"url": "https://forge.etsi.org/legal-matters"
},
"contact": {
"email": "cti_support@etsi.org"
}
},
"externalDocs": {
"description": "ETSI GS MEC016 UE Application Interface API, V2.1.1",
"url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/016/02.01.01_60/gs_MEC016v020101p.pdf"
"description": "ETSI GS MEC016 V2.2.1 Device application interface",
"url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/016/02.02.01_60/gs_MEC016v020201p.pdf"
},
"security": [
{
"OauthSecurity": [
"all"
]
}
],
"servers": [
{
"url": "http://127.0.0.1:8081/mx2/v2"
},
{
"url": "https://127.0.0.1:8081/mx2/v2"
"url": "https://localhost/dev_app/v1"
}
],
"tags": [
{
"name": "appList"
},
{
"name": "appContext"
},
{
"name": "callback"
"name": "dev_app"
}
],
"paths": {
"/app_list": {
"get": {
"description": "Used to query information about the available MEC applications.",
"operationId": "AppList_GET",
"tags": [
"appList"
"dev_app"
],
"summary": "Get available application information.",
"description": "Used to query information about the available MEC applications.",
"operationId": "meAppListGET",
"parameters": [
{
"$ref": "#/components/parameters/Query.AppName"
"$ref": "#/components/parameters/Query.appName"
},
{
"$ref": "#/components/parameters/Query.AppProvider"
"$ref": "#/components/parameters/Query.appProvider"
},
{
"$ref": "#/components/parameters/Query.AppSoftVersion"
"$ref": "#/components/parameters/Query.appSoftVersion"
},
{
"$ref": "#/components/parameters/Query.ServiceCont"
"$ref": "#/components/parameters/Query.vendorId"
},
{
"$ref": "#/components/parameters/Query.VendorId"
"$ref": "#/components/parameters/Query.serviceCont"
}
],
"responses": {
"200": {
"$ref": "#/components/responses/AppList"
"description": "The response body contains an array of the user applications available to the querying device application.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApplicationList"
}
}
}
},
"400": {
"$ref": "#/components/responses/Error.400"
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/Error.401"
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/Error.403"
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/Error.404"
"$ref": "#/components/responses/404"
}
}
}
},
"/app_contexts": {
"post": {
"description": "The POST method can be used to create a new application context. Upon success, the response contains entity body describing the created application context.",
"operationId": "AppContext_POST",
"tags": [
"appContext"
"dev_app"
],
"summary": "Creation of a new application context.",
"description": "Used to create a new application context. Upon success, the response contains entity body describing the created application context.",
"operationId": "devAppContextsGET",
"requestBody": {
"$ref": "#/components/requestBodies/AppContext"
"description": "Entity body in the request contains the Application Context as requested by the device application.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppContext"
}
}
}
},
"parameters": [],
"responses": {
"201": {
"$ref": "#/components/responses/AppContext"
"description": "The response body contains the Application Context as it was created by the MEC system, which includes the reference URI(s) of the associated user application instance(s). The URI of the resource created within the MEC system associated with the request, with its specific application context ID, shall be included in the 'Location' HTTP header of the response.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppContext"
}
}
}
},
"400": {
"$ref": "#/components/responses/Error.400"
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/Error.401"
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/Error.403"
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/Error.404"
"$ref": "#/components/responses/404"
}
},
"callbacks": {
"referenceURI": {
"$ref": "#/components/callbacks/NotificationEvent"
"notification": {
"{$request.body#/appContext.callbackReference}": {
"post": {
"summary": "Callback POST used to send a notification",
"description": "Notification with content based on subscription type",
"operationId": "notificationPOST",
"requestBody": {
"description": "Subscription notification",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/InlineNotification"
},
"example": {
"notificationType": "ApplicationContextDeleteNotification",
"contextId": "contextId123"
}
}
}
},
"responses": {
"204": {
"$ref": "#/components/responses/204"
}
}
}
}
}
}
}
},
"/app_contexts/{contextId}": {
"parameters": [
{
"$ref": "#/components/parameters/Path.ContextId"
}
],
"put": {
"description": "The PUT method is used to update the callback reference of the existing application context. Upon successful operation, the target resource is updated with new callback reference.",
"operationId": "AppContextId_PUT",
"tags": [
"appContext"
"dev_app"
],
"summary": "Updating the callbackReference and/or appLocation of an existing application context.",
"description": "Used to update the callback reference and/or application location constraints of an existing application context. Upon successful operation, the target resource is updated with the new application context information.",
"operationId": "devAppContextPUT",
"requestBody": {
"$ref": "#/components/requestBodies/AppContext"
"description": "Only the callbackReference and/or appLocation attribute values are allowed to be updated. Other attributes and their values shall remain untouched.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppContext"
}
}
}
},
"parameters": [
{
"$ref": "#/components/parameters/Path.contextId"
}
],
"responses": {
"204": {
"description": "No Content."
"$ref": "#/components/responses/204"
},
"400": {
"$ref": "#/components/responses/Error.400"
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/Error.401"
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/Error.403"
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/Error.404"
}
},
"callbacks": {
"referenceURI": {
"$ref": "#/components/callbacks/NotificationEvent"
"$ref": "#/components/responses/404"
}
}
},
"delete": {
"description": "The DELETE method is used to delete the resource that represents the existing application context.",
"operationId": "AppContextId_DEL",
"tags": [
"appContext"
"dev_app"
],
"summary": "Deletion of an existing application context.",
"description": "Used to delete the resource that represents the existing application context.",
"operationId": "devAppContextDELETE",
"parameters": [
{
"$ref": "#/components/parameters/Path.contextId"
}
],
"responses": {
"204": {
"description": "No Content"
"$ref": "#/components/responses/204"
},
"400": {
"$ref": "#/components/responses/Error.400"
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/Error.401"
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/Error.403"
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/Error.404"
"$ref": "#/components/responses/404"
}
}
}
},
"/obtain_app_loc_availability": {
"post": {
"tags": [
"dev_app"
],
"summary": "Obtain the location constraints for a new application context.",
"description": "Used to obtain the locations available for instantiation of a specific user application in the MEC system.",
"operationId": "appLocationAvailabilityPOST",
"requestBody": {
"description": "Entity body in the request contains the user application information for the MEC system to evaluate the locations available for instantiation of that application.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApplicationLocationAvailability"
}
}
}
},
"parameters": [],
"responses": {
"200": {
"description": "The response body contains the locations available for instantiation of the requested user application in the MEC system.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApplicationLocationAvailability"
}
}
}
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
}
}
}
}
},
"components": {
"callbacks": {
"NotificationEvent": {
"{$request.body#/callbackReference}": {
"post": {
"description": "Used by the UALCMP to inform the Device application of a modification to reference URI of the user application.",
"operationId": "NotificationEvent_POST",
"tags": [
"callback"
],
"requestBody": {
"$ref": "#/components/requestBodies/NotificationEvent"
},
"responses": {
"204": {
"description": "No Content."
}
"responses": {
"204": {
"description": "Upon success, a response 204 No Content without any response body is returned."
},
"400": {
"description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"links": {
"PutAppContext": {
"operationId": "AppContextId_PUT",
"description": "The `contextId` value returned in the response can be used as the `contextId` parameter in `PUT /app_contexts/{contextId}`",
"parameters": {
"contextId": "$response.body#/contextId"
},
"401": {
"description": "Unauthorized : used when the client did not submit credentials.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"DelAppContext": {
"operationId": "AppContextId_DEL",
"description": "The `contextId` value returned in the response can be used as the `contextId` parameter in `DELETE /app_contexts/{contextId}`",
"parameters": {
"contextId": "$response.body#/contextId"
"403": {
"description": "Forbidden : operation is not allowed given the current status of the resource.",
"content": {
"application/problem+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/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"parameters": {
"Query.AppName": {
"Query.appName": {
"name": "appName",
"in": "query",
"description": "Name to identify the MEC application",
"description": "Name to identify the MEC application.",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
"type": "string",
"maxLength": 32
}
}
},
"Query.AppProvider": {
"Query.appProvider": {
"name": "appProvider",
"in": "query",
"description": "Provider of the MEC application",
"description": "Provider of the MEC application.",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
"type": "string",
"maxLength": 32
}
}
},
"Query.AppSoftVersion": {
"Query.appSoftVersion": {
"name": "appSoftVersion",
"in": "query",
"description": "Software version of the MEC application",
"description": "Software version of the MEC application.",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
"type": "string",
"maxLength": 32
}
}
},
"Query.ServiceCont": {
"name": "serviceCont",
"in": "query",
"description": "Required service continuity mode for this application",
"required": false,
"schema": {
"type": "string",
"enum": [
"SERVICE_CONTINUITY_NOT_REQUIRED",
"SERVICE_CONTINUITY_REQUIRED"
]
}
},
"Query.VendorId": {
"Query.vendorId": {
"name": "vendorId",
"in": "query",
"description": "Vendor identifier",
......@@ -280,438 +369,683 @@
"schema": {
"type": "array",
"items": {
"type": "string"
"type": "string",
"maxLength": 32
}
}
},
"Path.ContextId": {
"Query.serviceCont": {
"name": "serviceCont",
"in": "query",
"description": "Required service continuity mode for this application. Permitted values: 0 = SERVICE_CONTINUITY_NOT_REQUIRED. 1 = SERVICE_CONTINUITY_REQUIRED.",
"required": false,
"schema": {
"type": "integer",
"enum": [
0,
1
]
}
},
"Path.contextId": {
"name": "contextId",
"in": "path",
"description": "Uniquely identifies the application context in the MEC system. It is assigned by the MEC system and included in the response to an AppContext create.",
"description": "Uniquely identifies the application context in the MEC system. It is assigned by the MEC system.",
"required": true,
"schema": {
"type": "string"
}
}
},
"requestBodies": {
"AppContext": {
"description": "Uniquely identifies the application context in the MEC system. It is assigned by the MEC system and included in the response to an AppContext create.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppContext"
}
}
},
"required": true
},
"NotificationEvent": {
"description": "Sent by the UALCMP to the Device application.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationEvent"
}
}
},
"required": true
}
},
"responses": {
"AppContext": {
"description": "The response body contains the Application Context as it was created by the MEC system",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppContext"
}
}
},
"links": {
"putAppContext": {
"$ref": "#/components/links/PutAppContext"
},
"delAppContext": {
"$ref": "#/components/links/DelAppContext"
}
}
},
"AppList": {
"description": "The response body contains the ApplicationList resource available for the querying Device application",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ApplicationList"
}
}
}
},
"Error.400": {
"description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",