Commits (7)
......@@ -20,4 +20,5 @@ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
OF THE POSSIBILITY OF SUCH DAMAGE.
......@@ -4,7 +4,7 @@ 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/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/master/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/master/UEAppInterfaceApi.yaml).
## License
......@@ -12,3 +12,4 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E
Unless specified otherwise, the content of this repository and the files
contained are released under the BSD-3-Clause license.
See the attached LICENSE file or visit https://forge.etsi.org/legal-matters.
......@@ -2,7 +2,7 @@
"openapi": "3.0.2",
"info": {
"title": "UE Application Interface API",
"version": "1.1.1",
"version": "2.1.1",
"description": "The ETSI MEC ISG MEC016 UE Application Interface API described using OpenAPI",
"license": {
"name": "BSD-3-Clause",
......@@ -13,8 +13,8 @@
}
},
"externalDocs": {
"description": "ETSI GS MEC016 UE Application Interface API, V1.1.1",
"url": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/016/01.01.01_60/gs_MEC016v010101p.pdf"
"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"
},
"security": [
{
......@@ -25,10 +25,10 @@
],
"servers": [
{
"url": "http://127.0.0.1:8081/mx2/v1"
"url": "http://127.0.0.1:8081/mx2/v2"
},
{
"url": "https://127.0.0.1:8081/mx2/v1"
"url": "https://127.0.0.1:8081/mx2/v2"
}
],
"tags": [
......@@ -37,6 +37,9 @@
},
{
"name": "appContext"
},
{
"name": "callback"
}
],
"paths": {
......@@ -109,6 +112,11 @@
"404": {
"$ref": "#/components/responses/Error.404"
}
},
"callbacks": {
"referenceURI": {
"$ref": "#/components/callbacks/NotificationEvent"
}
}
}
},
......@@ -143,6 +151,11 @@
"404": {
"$ref": "#/components/responses/Error.404"
}
},
"callbacks": {
"referenceURI": {
"$ref": "#/components/callbacks/NotificationEvent"
}
}
},
"delete": {
......@@ -172,6 +185,43 @@
}
},
"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."
}
}
}
}
}
},
"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"
}
},
"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"
}
}
},
"parameters": {
"Query.AppName": {
"name": "appName",
......@@ -255,6 +305,17 @@
}
},
"required": true
},
"NotificationEvent": {
"description": "Sent by the UALCMP to the Device application.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationEvent"
}
}
},
"required": true
}
},
"responses": {
......@@ -266,10 +327,18 @@
"$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 UE application",
"description": "The response body contains the ApplicationList resource available for the querying Device application",
"content": {
"application/json": {
"schema": {
......@@ -398,20 +467,37 @@
"description": "Information on available applications",
"type": "object",
"properties": {
"appInfo": {
"$ref": "#/components/schemas/AppInfo"
"appList": {
"$ref": "#/components/schemas/AppList"
},
"vendorSpecificExt": {
"$ref": "#/components/schemas/VendorSpecificExt"
}
}
},
"AppList": {
"description": "List of user applications available to the device application",
"type": "array",
"minItems": 0,
"items": {
"type": "object",
"required": [
"appInfo"
],
"properties": {
"appInfo": {
"$ref": "#/components/schemas/AppInfo"
}
}
}
},
"AppContext": {
"description": "Information on application context created by the MEC system",
"type": "object",
"required": [
"contextId",
"associateUeAppId",
"callbackReference",
"appInfo"
],
"properties": {
......@@ -425,7 +511,7 @@
"$ref": "#/components/schemas/CallbackReference"
},
"appInfo": {
"$ref": "#/components/schemas/RequiredAppInfo"
"$ref": "#/components/schemas/AppInfoAppContext"
}
}
},
......@@ -441,14 +527,6 @@
}
}
},
"VendorSpecificExtList": {
"description": "Extension for vendor specific information.",
"type": "array",
"minItems": 0,
"items": {
"$ref": "#/components/schemas/VendorSpecificExt"
}
},
"VendorSpecificExt": {
"description": "Extension for vendor-specific information",
"required": [
......@@ -462,31 +540,32 @@
},
"ContextId": {
"description": "Uniquely identifies the application context in the MEC system. Assigned by the MEC system and included in the response. The length of the value shall not exceed 32 characters.",
"type": "string"
"type": "string",
"readOnly": true
},
"AssociateUeAppId": {
"description": "Uniquely identifies the UE application. Included in the request. The length of the value shall not exceed 32 characters.",
"type": "string"
"description": "Uniquely identifies the Device application. Included in the request. The length of the value shall not exceed 32 characters.",
"type": "string",
"writeOnly": true
},
"VendorId": {
"description": "Vendor identifier. The length of the value shall not exceed 32 characters. The rest of the structure of this vendor specific extension is not defined",
"type": "string"
},
"AppInfo": {
"description": "User applications available for the UE application",
"type": "array",
"items": {
"$ref": "#/components/schemas/AppInfoList"
}
},
"AppInfoList": {
"type": "object",
"required": [
"appDId",
"appName",
"appProvider",
"appSoftVersion",
"appDVersion",
"appDescription"
],
"properties": {
"appDId": {
"$ref": "#/components/schemas/AppDId"
},
"appName": {
"$ref": "#/components/schemas/AppName"
},
......@@ -496,6 +575,9 @@
"appSoftVersion": {
"$ref": "#/components/schemas/AppSoftVersion"
},
"appDVersion": {
"$ref": "#/components/schemas/AppDVersion"
},
"appDescription": {
"$ref": "#/components/schemas/AppDescription"
},
......@@ -504,15 +586,18 @@
}
}
},
"RequiredAppInfo": {
"AppInfoAppContext": {
"description": "Included in the request",
"type": "object",
"required": [
"appName",
"appProvider",
"referenceURL"
"appDVersion"
],
"properties": {
"appDId": {
"$ref": "#/components/schemas/AppDId"
},
"appName": {
"$ref": "#/components/schemas/AppName"
},
......@@ -522,6 +607,9 @@
"appSoftVersion": {
"$ref": "#/components/schemas/AppSoftVersion"
},
"appDVersion": {
"$ref": "#/components/schemas/AppDVersion"
},
"appDescription": {
"$ref": "#/components/schemas/AppDescription"
},
......@@ -534,7 +622,7 @@
}
},
"AppCharcs": {
"description": "The application characteristics relate to the system resources consumed by the application. UE application can use this information e.g., for estimating the cost of use of the application or for the expected user experience",
"description": "The application characteristics relate to the system resources consumed by the application. Device application can use this information e.g., for estimating the cost of use of the application or for the expected user experience",
"type": "object",
"properties": {
"memory": {
......@@ -570,7 +658,7 @@
"format": "uint32"
},
"Bandwidth": {
"description": "The required connection bandwidth in kbit/s for the use of the mobile edge application instance",
"description": "The required connection bandwidth in kbit/s for the use of the MEC application instance",
"type": "integer",
"format": "uint32"
},
......@@ -580,7 +668,12 @@
"enum": [
"SERVICE_CONTINUITY_NOT_REQUIRED",
"SERVICE_CONTINUITY_REQUIRED"
]
],
"example": "SERVICE_CONTINUITY_NOT_REQUIRED"
},
"AppDId": {
"description": "Identifier of this MEC application descriptor. It is equivalent to the appDId defined in clause 6.2.1.2 of ETSI GS MEC 010-2. This attribute shall be globally unique. It shall be present if the application is one in the ApplicationList.",
"type": "string"
},
"AppName": {
"description": "Name of the MEC application. The length of the value shall not exceed 32 characters.",
......@@ -594,19 +687,25 @@
"description": "Software version of the MEC application. The length of the value shall not exceed 32 characters.",
"type": "string"
},
"AppDVersion": {
"description": "Identifies the version of the application descriptor. It is equivalent to the appDVersion defined in clause 6.2.1.2 of ETSI GS MEC 010-2.",
"type": "string"
},
"AppDescription": {
"description": "Human readable description of the MEC application. NOTE the language support may be limited. The length of the value shall not exceed 128 characters.",
"type": "string"
},
"CallbackReference": {
"description": "URI assigned by the UE application to receive application lifecycle related notifications. Included in the request. This subscription stays alive for the lifetime of the application context.",
"description": "URI assigned by the Device application to receive application lifecycle related notifications. Included in the request. This subscription stays alive for the lifetime of the application context.",
"type": "string",
"format": "uri"
"format": "uri",
"writeOnly": true
},
"ReferenceURL": {
"description": "Address of the user application. Used as the reference URL for the application. Assigned by the MEC system and included in the response",
"type": "string",
"format": "uri"
"format": "uri",
"readOnly": true
},
"AppPackageSource": {
"description": "URI of the application package. Included in the request if the application is not one in the ApplicationList. appPackageSource enables on-boarding of the application package into the MEC system. The application package shall comply with the definitions in clause 6.2.1.2 of ETSI GS MEC 010-2",
......
openapi: 3.0.2
info:
title: UE Application Interface API
version: 1.1.1
version: 2.1.1
description: >-
The ETSI MEC ISG MEC016 UE Application Interface API described using OpenAPI
license:
......@@ -11,17 +11,18 @@ info:
email: cti_support@etsi.org
externalDocs:
description: >-
ETSI GS MEC016 UE Application Interface API, V1.1.1
url: http://www.etsi.org/deliver/etsi_gs/MEC/001_099/016/01.01.01_60/gs_MEC016v010101p.pdf
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
security:
- OauthSecurity:
- all
servers:
- url: http://127.0.0.1:8081/mx2/v1
- url: https://127.0.0.1:8081/mx2/v1
- url: http://127.0.0.1:8081/mx2/v2
- url: https://127.0.0.1:8081/mx2/v2
tags:
- name: appList
- name: appContext
- name: callback
paths:
"/app_list":
get:
......@@ -70,6 +71,9 @@ paths:
$ref: '#/components/responses/Error.403'
"404":
$ref: '#/components/responses/Error.404'
callbacks:
referenceURI:
$ref: '#/components/callbacks/NotificationEvent'
"/app_contexts/{contextId}":
parameters:
- $ref: "#/components/parameters/Path.ContextId"
......@@ -94,6 +98,9 @@ paths:
$ref: '#/components/responses/Error.403'
"404":
$ref: '#/components/responses/Error.404'
callbacks:
referenceURI:
$ref: '#/components/callbacks/NotificationEvent'
delete:
description: >-
The DELETE method is used to delete the resource that represents the
......@@ -113,6 +120,32 @@ paths:
"404":
$ref: '#/components/responses/Error.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.
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'
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'
parameters:
Query.AppName:
name: appName
......@@ -185,6 +218,14 @@ components:
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: >-
......@@ -194,10 +235,15 @@ components:
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 UE application
for the querying Device application
content:
application/json:
schema:
......@@ -297,10 +343,22 @@ components:
Information on available applications
type: object
properties:
appInfo:
$ref: "#/components/schemas/AppInfo"
appList:
$ref: "#/components/schemas/AppList"
vendorSpecificExt:
$ref: "#/components/schemas/VendorSpecificExt"
AppList:
description: >-
List of user applications available to the device application
type: array
minItems: 0
items:
type: object
required:
- appInfo
properties:
appInfo:
$ref: "#/components/schemas/AppInfo"
AppContext:
description: >-
Information on application context created by the MEC system
......@@ -308,6 +366,7 @@ components:
required:
- contextId
- associateUeAppId
- callbackReference
- appInfo
properties:
contextId:
......@@ -317,7 +376,7 @@ components:
callbackReference:
$ref: "#/components/schemas/CallbackReference"
appInfo:
$ref: "#/components/schemas/RequiredAppInfo"
$ref: "#/components/schemas/AppInfoAppContext"
NotificationEvent:
description: >-
The parameters used in the method "Receiving notification events".
......@@ -327,12 +386,6 @@ components:
properties:
referenceURI:
$ref: "#/components/schemas/ReferenceURL"
VendorSpecificExtList:
description: Extension for vendor specific information.
type: array
minItems: 0
items:
$ref: "#/components/schemas/VendorSpecificExt"
VendorSpecificExt:
description: >-
Extension for vendor-specific information
......@@ -347,11 +400,13 @@ components:
Assigned by the MEC system and included in the response. The
length of the value shall not exceed 32 characters.
type: string
readOnly: true
AssociateUeAppId:
description: >-
Uniquely identifies the UE application. Included in the request. The
Uniquely identifies the Device application. Included in the request. The
length of the value shall not exceed 32 characters.
type: string
writeOnly: true
VendorId:
description: >-
Vendor identifier. The length of the value shall not exceed 32
......@@ -359,42 +414,47 @@ components:
is not defined
type: string
AppInfo:
description: >-
User applications available for the UE application
type: array
items:
$ref: "#/components/schemas/AppInfoList"
AppInfoList:
type: object
required:
- appDId
- appName
- appProvider
- appSoftVersion
- appDVersion
- appDescription
properties:
appDId:
$ref: "#/components/schemas/AppDId"
appName:
$ref: "#/components/schemas/AppName"
appProvider:
$ref: "#/components/schemas/AppProvider"
appSoftVersion:
$ref: "#/components/schemas/AppSoftVersion"
appDVersion:
$ref: "#/components/schemas/AppDVersion"
appDescription:
$ref: "#/components/schemas/AppDescription"
appCharcs:
$ref: "#/components/schemas/AppCharcs"
RequiredAppInfo:
AppInfoAppContext:
description: Included in the request
type: object
required:
- appName
- appProvider
- referenceURL
- appDVersion
properties:
appDId:
$ref: "#/components/schemas/AppDId"
appName:
$ref: "#/components/schemas/AppName"
appProvider:
$ref: "#/components/schemas/AppProvider"
appSoftVersion:
$ref: "#/components/schemas/AppSoftVersion"
appDVersion:
$ref: "#/components/schemas/AppDVersion"
appDescription:
$ref: "#/components/schemas/AppDescription"
referenceURL:
......@@ -404,7 +464,7 @@ components:
AppCharcs:
description: >-
The application characteristics relate to the system resources consumed
by the application. UE application can use this information e.g., for
by the application. Device application can use this information e.g., for
estimating the cost of use of the application or for the expected user
experience
type: object
......@@ -439,8 +499,8 @@ components:
format: uint32
Bandwidth:
description: >-
The required connection bandwidth in kbit/s for the use of the mobile
edge application instance
The required connection bandwidth in kbit/s for the use of the MEC
application instance
type: integer
format: uint32
ServiceCont:
......@@ -450,6 +510,15 @@ components:
enum:
- SERVICE_CONTINUITY_NOT_REQUIRED
- SERVICE_CONTINUITY_REQUIRED
example:
SERVICE_CONTINUITY_NOT_REQUIRED
AppDId:
description: >-
Identifier of this MEC application descriptor. It is equivalent to
the appDId defined in clause 6.2.1.2 of ETSI GS MEC 010-2.
This attribute shall be globally unique. It shall be present if the
application is one in the ApplicationList.
type: string
AppName:
description: >-
Name of the MEC application. The length of the value shall not
......@@ -465,6 +534,12 @@ components:
Software version of the MEC application. The length of the value
shall not exceed 32 characters.
type: string
AppDVersion:
description: >-
Identifies the version of the application descriptor. It is
equivalent to the appDVersion defined in clause 6.2.1.2 of
ETSI GS MEC 010-2.
type: string
AppDescription:
description: >-
Human readable description of the MEC application. NOTE the
......@@ -473,11 +548,12 @@ components:
type: string
CallbackReference:
description: >-
URI assigned by the UE application to receive application lifecycle
URI assigned by the Device application to receive application lifecycle
related notifications. Included in the request. This subscription stays
alive for the lifetime of the application context.
type: string
format: uri
writeOnly: true
ReferenceURL:
description: >-
Address of the user application. Used as the reference URL for the
......@@ -485,6 +561,7 @@ components:
response
type: string
format: uri
readOnly: true
AppPackageSource:
description: >-
URI of the application package. Included in the request if the
......