Commit e4f6b2c1 authored by Michel Roy's avatar Michel Roy
Browse files

added v2.2.1 draft version

parent f8b3cbd4
Pipeline #4986 passed with stage
in 0 seconds
...@@ -4,8 +4,8 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E ...@@ -4,8 +4,8 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E
## Online resources ## Online resources
* [Navigate the API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs016-ue-app-api/raw/develop/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/develop/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 ## License
......
{ {
"openapi": "3.0.2", "openapi": "3.0.0",
"info": { "info": {
"title": "UE Application Interface API", "title": "ETSI GS MEC 016 Device application interface",
"version": "1.1.1", "version": "2.2.1",
"description": "The ETSI MEC ISG MEC016 UE Application Interface API described using OpenAPI", "description": "The ETSI MEC ISG Device application interface API described using OpenAPI.",
"license": { "license": {
"name": "BSD-3-Clause", "name": "BSD-3-Clause",
"url": "https://forge.etsi.org/legal-matters" "url": "https://forge.etsi.org/legal-matters"
},
"contact": {
"email": "cti_support@etsi.org"
} }
}, },
"externalDocs": { "externalDocs": {
"description": "ETSI GS MEC016 UE Application Interface API, V1.1.1", "description": "ETSI GS MEC016 V2.2.1 Device application interface",
"url": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/016/01.01.01_60/gs_MEC016v010101p.pdf" "url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/016/02.02.01_60/gs_MEC016v020201p.pdf"
}, },
"security": [
{
"OauthSecurity": [
"all"
]
}
],
"servers": [ "servers": [
{ {
"url": "http://127.0.0.1:8081/mx2/v1" "url": "https://{apiRoot}/dev_app/v1"
},
{
"url": "https://127.0.0.1:8081/mx2/v1"
}
],
"tags": [
{
"name": "appList"
},
{
"name": "appContext"
},
{
"name": "callback"
} }
], ],
"paths": { "paths": {
"/app_list": { "/app_list": {
"get": { "get": {
"description": "Used to query information about the available MEC applications.",
"operationId": "AppList_GET",
"tags": [ "tags": [
"appList" ""
], ],
"summary": "Get available application information.",
"description": "Used to query information about the available MEC applications.",
"operationId": "meAppListGET",
"parameters": [ "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": { "responses": {
"200": { "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": {
"type": "object",
"properties": {
"applicationList": {
"$ref": "#/components/schemas/ApplicationList"
}
}
}
}
}
}, },
"400": { "400": {
"$ref": "#/components/responses/Error.400" "$ref": "#/components/responses/400"
}, },
"401": { "401": {
"$ref": "#/components/responses/Error.401" "$ref": "#/components/responses/401"
}, },
"403": { "403": {
"$ref": "#/components/responses/Error.403" "$ref": "#/components/responses/403"
}, },
"404": { "404": {
"$ref": "#/components/responses/Error.404" "$ref": "#/components/responses/404"
} }
} }
} }
}, },
"/app_contexts": { "/app_contexts": {
"post": { "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": [ "tags": [
"appContext" ""
], ],
"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": { "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": {
"type": "object",
"properties": {
"appContext": {
"$ref": "#/components/schemas/AppContext"
}
}
}
}
}
}, },
"parameters": [],
"responses": { "responses": {
"201": { "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": {
"type": "object",
"properties": {
"appContext": {
"$ref": "#/components/schemas/AppContext"
}
}
}
}
}
}, },
"400": { "400": {
"$ref": "#/components/responses/Error.400" "$ref": "#/components/responses/400"
}, },
"401": { "401": {
"$ref": "#/components/responses/Error.401" "$ref": "#/components/responses/401"
}, },
"403": { "403": {
"$ref": "#/components/responses/Error.403" "$ref": "#/components/responses/403"
}, },
"404": { "404": {
"$ref": "#/components/responses/Error.404" "$ref": "#/components/responses/404"
} }
}, },
"callbacks": { "callbacks": {
"referenceURI": { "notification": {
"$ref": "#/components/callbacks/NotificationEvent" "{$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": {
"type": "object",
"properties": {
"notification": {
"oneOf": [
{
"$ref": "#/components/schemas/AddressChangeNotification"
},
{
"$ref": "#/components/schemas/ApplicationContextDeleteNotification"
},
{
"$ref": "#/components/schemas/ApplicationContextUpdateNotification"
},
{
"$ref": "#/components/schemas/ApplicationLocationAvailabilityNotification"
}
],
"discriminator": {
"propertyName": "notificationType"
}
}
},
"example": {
"notification": {
"notificationType": "ApplicationContextDeleteNotification",
"contextId": "contextId123"
}
}
}
}
}
},
"responses": {
"204": {
"$ref": "#/components/responses/204"
}
}
}
}
} }
} }
} }
}, },
"/app_contexts/{contextId}": { "/app_contexts/{contextId}": {
"parameters": [
{
"$ref": "#/components/parameters/Path.ContextId"
}
],
"put": { "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": [ "tags": [
"appContext" ""
], ],
"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": { "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": {
"type": "object",
"properties": {
"appContext": {
"$ref": "#/components/schemas/AppContext"
}
}
}
}
}
}, },
"parameters": [
{
"$ref": "#/components/parameters/Path.contextId"
}
],
"responses": { "responses": {
"204": { "204": {
"description": "No Content." "$ref": "#/components/responses/204"
}, },
"400": { "400": {
"$ref": "#/components/responses/Error.400" "$ref": "#/components/responses/400"
}, },
"401": { "401": {
"$ref": "#/components/responses/Error.401" "$ref": "#/components/responses/401"
}, },
"403": { "403": {
"$ref": "#/components/responses/Error.403" "$ref": "#/components/responses/403"
}, },
"404": { "404": {
"$ref": "#/components/responses/Error.404" "$ref": "#/components/responses/404"
}
},
"callbacks": {
"referenceURI": {
"$ref": "#/components/callbacks/NotificationEvent"
} }
} }
}, },
"delete": { "delete": {
"description": "The DELETE method is used to delete the resource that represents the existing application context.",
"operationId": "AppContextId_DEL",
"tags": [ "tags": [
"appContext" ""
],
"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": { "responses": {
"204": { "204": {
"description": "No Content" "$ref": "#/components/responses/204"
},
"400": {
"$ref": "#/components/responses/400"
},
"401": {
"$ref": "#/components/responses/401"
},
"403": {
"$ref": "#/components/responses/403"
},
"404": {
"$ref": "#/components/responses/404"
}
}
}
},
"/obtain_app_loc_availability": {
"post": {
"tags": [
""
],
"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": {
"type": "object",
"properties": {
"applicationLocationAvailability": {
"$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": {
"type": "object",
"properties": {
"applicationLocationAvailability": {
"$ref": "#/components/schemas/ApplicationLocationAvailability"
}
}
}
}
}
}, },
"400": { "400": {
"$ref": "#/components/responses/Error.400" "$ref": "#/components/responses/400"
}, },
"401": { "401": {
"$ref": "#/components/responses/Error.401" "$ref": "#/components/responses/401"
}, },
"403": { "403": {
"$ref": "#/components/responses/Error.403" "$ref": "#/components/responses/403"
}, },
"404": { "404": {
"$ref": "#/components/responses/Error.404" "$ref": "#/components/responses/404"
} }
} }
} }
} }
}, },
"components": { "components": {
"callbacks": { "responses": {
"NotificationEvent": { "204": {
"{$request.body#/callbackReference}": { "description": "Upon success, a response 204 No Content without any response body is returned."
"post": { },
"description": "Used by the UALCMP to inform the UE application of a modification to reference URI of the user application.", "400": {
"operationId": "NotificationEvent_POST", "description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
"tags": [ "content": {
"callback" "application/json": {
], "schema": {
"requestBody": { "type": "object",
"$ref": "#/components/requestBodies/NotificationEvent" "properties": {
}, "problemDetails": {
"responses": { "$ref": "#/components/schemas/ProblemDetails"
"204": { }
"description": "No Content."
} }
} }
} }
} }
} },
}, "401": {
"links": { "description": "Unauthorized : used when the client did not submit credentials.",
"PutAppContext": { "content": {
"operationId": "AppContextId_PUT", "application/json": {
"description": "The `contextId` value returned in the response can be used as the `contextId` parameter in `PUT /app_contexts/{contextId}`", "schema": {
"parameters": { "type": "object",
"contextId": "$response.body#/contextId" "properties": {
"problemDetails": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"403": {
"description": "Forbidden : operation is not allowed given the current status of the resource.",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"problemDetails"
],
"properties": {
"problemDetails": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
} }
}, },
"DelAppContext": { "404": {
"operationId": "AppContextId_DEL", "description": "Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.",
"description": "The `contextId` value returned in the response can be used as the `contextId` parameter in `DELETE /app_contexts/{contextId}`", "content": {
"parameters": { "application/json": {
"contextId": "$response.body#/contextId" "schema": {
"type": "object",
"properties": {
"problemDetails": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
} }
} }
}, },
"parameters": { "parameters": {
"Query.AppName": { "Query.appName": {
"name": "appName", "name": "appName",
"in": "query", "in": "query",
"description": "Name to identify the MEC application", "description": "Name to identify the MEC application.",
"required": false, "required": false,
"schema": { "schema": {
"type": "array", "type": "array",
"items": { "items": {
"type": "string" "type": "string",
"maxLength": 32
} }
} }
}, },
"Query.AppProvider": { "Query.appProvider": {
"name": "appProvider",