Commit f43b9f95 authored by Walter Featherstone's avatar Walter Featherstone
Browse files

Merge branch 'origin/master'

parents 5ddb7e7b 045452c3
Pipeline #2136 passed with stage
in 0 seconds
...@@ -20,4 +20,5 @@ BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ...@@ -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 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE 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 OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
OF THE POSSIBILITY OF SUCH DAMAGE. OF THE POSSIBILITY OF SUCH DAMAGE.
\ No newline at end of file
...@@ -4,7 +4,7 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E ...@@ -4,7 +4,7 @@ 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/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). * [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 ## License
...@@ -12,3 +12,4 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E ...@@ -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 Unless specified otherwise, the content of this repository and the files
contained are released under the BSD-3-Clause license. contained are released under the BSD-3-Clause license.
See the attached LICENSE file or visit https://forge.etsi.org/legal-matters. See the attached LICENSE file or visit https://forge.etsi.org/legal-matters.
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
"openapi": "3.0.2", "openapi": "3.0.2",
"info": { "info": {
"title": "UE Application Interface API", "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", "description": "The ETSI MEC ISG MEC016 UE Application Interface API described using OpenAPI",
"license": { "license": {
"name": "BSD-3-Clause", "name": "BSD-3-Clause",
...@@ -13,8 +13,8 @@ ...@@ -13,8 +13,8 @@
} }
}, },
"externalDocs": { "externalDocs": {
"description": "ETSI GS MEC016 UE Application Interface API, V1.1.1", "description": "ETSI GS MEC016 UE Application Interface API, V2.1.1",
"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.01.01_60/gs_MEC016v020101p.pdf"
}, },
"security": [ "security": [
{ {
...@@ -25,10 +25,10 @@ ...@@ -25,10 +25,10 @@
], ],
"servers": [ "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": [ "tags": [
...@@ -37,6 +37,9 @@ ...@@ -37,6 +37,9 @@
}, },
{ {
"name": "appContext" "name": "appContext"
},
{
"name": "callback"
} }
], ],
"paths": { "paths": {
...@@ -109,6 +112,11 @@ ...@@ -109,6 +112,11 @@
"404": { "404": {
"$ref": "#/components/responses/Error.404" "$ref": "#/components/responses/Error.404"
} }
},
"callbacks": {
"referenceURI": {
"$ref": "#/components/callbacks/NotificationEvent"
}
} }
} }
}, },
...@@ -143,6 +151,11 @@ ...@@ -143,6 +151,11 @@
"404": { "404": {
"$ref": "#/components/responses/Error.404" "$ref": "#/components/responses/Error.404"
} }
},
"callbacks": {
"referenceURI": {
"$ref": "#/components/callbacks/NotificationEvent"
}
} }
}, },
"delete": { "delete": {
...@@ -172,6 +185,43 @@ ...@@ -172,6 +185,43 @@
} }
}, },
"components": { "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": { "parameters": {
"Query.AppName": { "Query.AppName": {
"name": "appName", "name": "appName",
...@@ -255,6 +305,17 @@ ...@@ -255,6 +305,17 @@
} }
}, },
"required": true "required": true
},
"NotificationEvent": {
"description": "Sent by the UALCMP to the Device application.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/NotificationEvent"
}
}
},
"required": true
} }
}, },
"responses": { "responses": {
...@@ -266,10 +327,18 @@ ...@@ -266,10 +327,18 @@
"$ref": "#/components/schemas/AppContext" "$ref": "#/components/schemas/AppContext"
} }
} }
},
"links": {
"putAppContext": {
"$ref": "#/components/links/PutAppContext"
},
"delAppContext": {
"$ref": "#/components/links/DelAppContext"
}
} }
}, },
"AppList": { "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": { "content": {
"application/json": { "application/json": {
"schema": { "schema": {
...@@ -398,20 +467,37 @@ ...@@ -398,20 +467,37 @@
"description": "Information on available applications", "description": "Information on available applications",
"type": "object", "type": "object",
"properties": { "properties": {
"appInfo": { "appList": {
"$ref": "#/components/schemas/AppInfo" "$ref": "#/components/schemas/AppList"
}, },
"vendorSpecificExt": { "vendorSpecificExt": {
"$ref": "#/components/schemas/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": { "AppContext": {
"description": "Information on application context created by the MEC system", "description": "Information on application context created by the MEC system",
"type": "object", "type": "object",
"required": [ "required": [
"contextId", "contextId",
"associateUeAppId", "associateUeAppId",
"callbackReference",
"appInfo" "appInfo"
], ],
"properties": { "properties": {
...@@ -425,7 +511,7 @@ ...@@ -425,7 +511,7 @@
"$ref": "#/components/schemas/CallbackReference" "$ref": "#/components/schemas/CallbackReference"
}, },
"appInfo": { "appInfo": {
"$ref": "#/components/schemas/RequiredAppInfo" "$ref": "#/components/schemas/AppInfoAppContext"
} }
} }
}, },
...@@ -441,14 +527,6 @@ ...@@ -441,14 +527,6 @@
} }
} }
}, },
"VendorSpecificExtList": {
"description": "Extension for vendor specific information.",
"type": "array",
"minItems": 0,
"items": {
"$ref": "#/components/schemas/VendorSpecificExt"
}
},
"VendorSpecificExt": { "VendorSpecificExt": {
"description": "Extension for vendor-specific information", "description": "Extension for vendor-specific information",
"required": [ "required": [
...@@ -462,31 +540,32 @@ ...@@ -462,31 +540,32 @@
}, },
"ContextId": { "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.", "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": { "AssociateUeAppId": {
"description": "Uniquely identifies the UE application. Included in the request. The length of the value shall not exceed 32 characters.", "description": "Uniquely identifies the Device application. Included in the request. The length of the value shall not exceed 32 characters.",
"type": "string" "type": "string",
"writeOnly": true
}, },
"VendorId": { "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", "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" "type": "string"
}, },
"AppInfo": { "AppInfo": {
"description": "User applications available for the UE application",
"type": "array",
"items": {
"$ref": "#/components/schemas/AppInfoList"
}
},
"AppInfoList": {
"type": "object", "type": "object",
"required": [ "required": [
"appDId",
"appName", "appName",
"appProvider", "appProvider",
"appSoftVersion",
"appDVersion",
"appDescription" "appDescription"
], ],
"properties": { "properties": {
"appDId": {
"$ref": "#/components/schemas/AppDId"
},
"appName": { "appName": {
"$ref": "#/components/schemas/AppName" "$ref": "#/components/schemas/AppName"
}, },
...@@ -496,6 +575,9 @@ ...@@ -496,6 +575,9 @@
"appSoftVersion": { "appSoftVersion": {
"$ref": "#/components/schemas/AppSoftVersion" "$ref": "#/components/schemas/AppSoftVersion"
}, },
"appDVersion": {
"$ref": "#/components/schemas/AppDVersion"
},
"appDescription": { "appDescription": {
"$ref": "#/components/schemas/AppDescription" "$ref": "#/components/schemas/AppDescription"
}, },
...@@ -504,15 +586,18 @@ ...@@ -504,15 +586,18 @@
} }
} }
}, },
"RequiredAppInfo": { "AppInfoAppContext": {
"description": "Included in the request", "description": "Included in the request",
"type": "object", "type": "object",
"required": [ "required": [
"appName", "appName",
"appProvider", "appProvider",
"referenceURL" "appDVersion"
], ],
"properties": { "properties": {
"appDId": {
"$ref": "#/components/schemas/AppDId"
},
"appName": { "appName": {
"$ref": "#/components/schemas/AppName" "$ref": "#/components/schemas/AppName"
}, },
...@@ -522,6 +607,9 @@ ...@@ -522,6 +607,9 @@
"appSoftVersion": { "appSoftVersion": {
"$ref": "#/components/schemas/AppSoftVersion" "$ref": "#/components/schemas/AppSoftVersion"
}, },
"appDVersion": {
"$ref": "#/components/schemas/AppDVersion"
},
"appDescription": { "appDescription": {
"$ref": "#/components/schemas/AppDescription" "$ref": "#/components/schemas/AppDescription"
}, },
...@@ -534,7 +622,7 @@ ...@@ -534,7 +622,7 @@
} }
}, },
"AppCharcs": { "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", "type": "object",
"properties": { "properties": {
"memory": { "memory": {
...@@ -570,7 +658,7 @@ ...@@ -570,7 +658,7 @@
"format": "uint32" "format": "uint32"
}, },
"Bandwidth": { "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", "type": "integer",
"format": "uint32" "format": "uint32"
}, },
...@@ -580,7 +668,12 @@ ...@@ -580,7 +668,12 @@
"enum": [ "enum": [
"SERVICE_CONTINUITY_NOT_REQUIRED", "SERVICE_CONTINUITY_NOT_REQUIRED",
"SERVICE_CONTINUITY_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": { "AppName": {
"description": "Name of the MEC application. The length of the value shall not exceed 32 characters.", "description": "Name of the MEC application. The length of the value shall not exceed 32 characters.",
...@@ -594,19 +687,25 @@ ...@@ -594,19 +687,25 @@
"description": "Software version of the MEC application. The length of the value shall not exceed 32 characters.", "description": "Software version of the MEC application. The length of the value shall not exceed 32 characters.",
"type": "string" "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": { "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.", "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" "type": "string"
}, },
"CallbackReference": { "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", "type": "string",
"format": "uri" "format": "uri",
"writeOnly": true
}, },
"ReferenceURL": { "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", "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", "type": "string",
"format": "uri" "format": "uri",
"readOnly": true
}, },
"AppPackageSource": { "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", "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 openapi: 3.0.2
info: info:
title: UE Application Interface API title: UE Application Interface API
version: 1.1.1 version: 2.1.1
description: >- description: >-
The ETSI MEC ISG MEC016 UE Application Interface API described using OpenAPI The ETSI MEC ISG MEC016 UE Application Interface API described using OpenAPI
license: license:
...@@ -11,17 +11,18 @@ info: ...@@ -11,17 +11,18 @@ info:
email: cti_support@etsi.org email: cti_support@etsi.org
externalDocs: externalDocs:
description: >- description: >-
ETSI GS MEC016 UE Application Interface API, V1.1.1 ETSI GS MEC016 UE Application Interface API, V2.1.1
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.01.01_60/gs_MEC016v020101p.pdf
security: security:
- OauthSecurity: - OauthSecurity:
- all - all
servers: 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: tags:
- name: appList - name: appList
- name: appContext - name: appContext
- name: callback
paths: paths:
"/app_list": "/app_list":
get: get:
...@@ -70,6 +71,9 @@ paths: ...@@ -70,6 +71,9 @@ paths:
$ref: '#/components/responses/Error.403' $ref: '#/components/responses/Error.403'
"404": "404":
$ref: '#/components/responses/Error.404' $ref: '#/components/responses/Error.404'
callbacks:
referenceURI:
$ref: '#/components/callbacks/NotificationEvent'
"/app_contexts/{contextId}": "/app_contexts/{contextId}":
parameters: parameters:
- $ref: "#/components/parameters/Path.ContextId" - $ref: "#/components/parameters/Path.ContextId"
...@@ -94,6 +98,9 @@ paths: ...@@ -94,6 +98,9 @@ paths:
$ref: '#/components/responses/Error.403' $ref: '#/components/responses/Error.403'
"404": "404":
$ref: '#/components/responses/Error.404' $ref: '#/components/responses/Error.404'
callbacks:
referenceURI:
$ref: '#/components/callbacks/NotificationEvent'
delete: delete:
description: >- description: >-
The DELETE method is used to delete the resource that represents the The DELETE method is used to delete the resource that represents the
...@@ -113,6 +120,32 @@ paths: ...@@ -113,6 +120,32 @@ paths:
"404": "404":
$ref: '#/components/responses/Error.404' $ref: '#/components/responses/Error.404'
components: 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: parameters:
Query.AppName: Query.AppName:
name: appName name: appName
...@@ -185,6 +218,14 @@ components: ...@@ -185,6 +218,14 @@ components:
schema: schema:
$ref: "#/components/schemas/AppContext" $ref: "#/components/schemas/AppContext"
required: true required: true
NotificationEvent: