Commit 6530b93e authored by Walter Featherstone's avatar Walter Featherstone
Browse files

Coversion to OpenAPI3

parent 922cbaba
......@@ -9,7 +9,7 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E
## ETSI Forge Copyright statement
Copyright (c) ETSI 2018.
Copyright (c) ETSI 2019.
This software is subject to copyrights owned by ETSI. Non-exclusive permission
is hereby granted, free of charge, to copy, reproduce and amend this file
......@@ -20,5 +20,4 @@ ETSI shall never be liable for any claim, damages, or other liability arising
from its use or inability of use.This permission does not apply to any documentation
associated with this file for which ETSI keeps all rights reserved. The present
copyright notice shall be included in all copies of whole or part of this
software and shall not imply any sub-license right.
software and shall not imply any sub-license right.
\ No newline at end of file
{
"swagger": "2.0",
"openapi": "3.0.2",
"info": {
"description": "The ETSI MEC ISG MEC016 UE Application Interface API described using OpenAPI",
"version": "1.1.1",
"title": "UE Application Interface API",
"version": "1.1.1",
"description": "The ETSI MEC ISG MEC016 UE Application Interface API described using OpenAPI",
"license": {
"name": "ETSI Forge copyright notice",
"url": "https://forge.etsi.org/etsi-forge-copyright-notice.txt"
},
"contact": {
"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"
},
"host": "127.0.0.1:8081",
"basePath": "/mx2/v1",
"schemes": [
"http",
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"security": [
{
"OauthSecurity": [
......@@ -32,170 +23,62 @@
]
}
],
"securityDefinitions": {
"OauthSecurity": {
"type": "oauth2",
"flow": "application",
"tokenUrl": "https://oauth.exampleAPI/token",
"scopes": {
"all": "Single oauth2 scope for API"
}
}
},
"parameters": {
"Query.AppName": {
"name": "appName",
"in": "query",
"description": "Name to identify the mobile edge application",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"Query.AppProvider": {
"name": "appProvider",
"in": "query",
"description": "Provider of the mobile edge application",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"Query.AppSoftVersion": {
"name": "appSoftVersion",
"in": "query",
"description": "Software version of the mobile edge application",
"required": false,
"type": "array",
"items": {
"type": "string"
}
},
"Query.ServiceCont": {
"name": "serviceCont",
"in": "query",
"description": "Required service continuity mode for this application",
"required": false,
"type": "string",
"enum": [
"SERVICE_CONTINUITY_NOT_REQUIRED",
"SERVICE_CONTINUITY_REQUIRED"
]
},
"Body.AppContext": {
"name": "appContext",
"in": "body",
"description": "Uniquely identifies the application context in the mobile edge system. It is assigned by the mobile edge system and included in the response to an AppContext create.",
"required": true,
"schema": {
"$ref": "#/definitions/AppContext"
}
"servers": [
{
"url": "http://127.0.0.1:8081/mx2/v1"
},
"Query.VendorId": {
"name": "vendorId",
"in": "query",
"description": "Vendor identifier",
"required": false,
"type": "array",
"items": {
"type": "string"
}
{
"url": "https://127.0.0.1:8081/mx2/v1"
}
],
"tags": [
{
"name": "appList"
},
"Path.ContextId": {
"name": "contextId",
"in": "path",
"description": "Uniquely identifies the application context in the mobile edge system. It is assigned by the mobile edge system and included in the response to an AppContext create.",
"required": true,
"type": "string"
{
"name": "appContext"
}
},
],
"paths": {
"/app_list": {
"get": {
"description": "The GET method can be used to query information about the available mobile edge applications.",
"produces": [
"application/json"
"description": "Used to query information about the available MEC applications.",
"operationId": "AppList_GET",
"tags": [
"appList"
],
"parameters": [
{
"$ref": "#/parameters/Query.AppName"
"$ref": "#/components/parameters/Query.AppName"
},
{
"$ref": "#/parameters/Query.AppProvider"
"$ref": "#/components/parameters/Query.AppProvider"
},
{
"$ref": "#/parameters/Query.AppSoftVersion"
"$ref": "#/components/parameters/Query.AppSoftVersion"
},
{
"$ref": "#/parameters/Query.ServiceCont"
"$ref": "#/components/parameters/Query.ServiceCont"
},
{
"$ref": "#/parameters/Query.VendorId"
"$ref": "#/components/parameters/Query.VendorId"
}
],
"responses": {
"200": {
"description": "The response body contains the ApplicationList resource available for the querying UE application",
"schema": {
"type": "object",
"required": [
"ApplicationList"
],
"properties": {
"ApplicationList": {
"$ref": "#/definitions/ApplicationList"
}
}
}
"$ref": "#/components/responses/AppList"
},
"400": {
"description": "Incorrect parameters were passed in the request.More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.400"
},
"401": {
"description": "An erroneous or missing bearer token. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.401"
},
"403": {
"description": "The operation is not allowed given the current status of the resource. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.403"
},
"404": {
"description": "The client provided a URI that cannot be mapped to a valid resource URL. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.404"
}
}
}
......@@ -203,332 +86,400 @@
"/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.",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Body.AppContext"
}
"operationId": "AppContext_POST",
"tags": [
"appContext"
],
"requestBody": {
"$ref": "#/components/requestBodies/AppContext"
},
"responses": {
"201": {
"description": "The response body contains the Application Context as it was created by the mobile edge system",
"schema": {
"type": "object",
"required": [
"AppContext"
],
"properties": {
"AppContext": {
"$ref": "#/definitions/AppContext"
}
}
}
"$ref": "#/components/responses/AppContext"
},
"400": {
"description": "Incorrect parameters were passed in the request.More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.400"
},
"401": {
"description": "An erroneous or missing bearer token. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.401"
},
"403": {
"description": "The operation is not allowed given the current status of the resource. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.403"
},
"404": {
"description": "The client provided a URI that cannot be mapped to a valid resource URL. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.404"
}
}
}
},
"/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.",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Path.ContextId"
},
{
"$ref": "#/parameters/Body.AppContext"
}
"operationId": "AppContextId_PUT",
"tags": [
"appContext"
],
"requestBody": {
"$ref": "#/components/requestBodies/AppContext"
},
"responses": {
"204": {
"description": "Upon success, a response 204 No Content without any response body is returned."
"description": "No Content."
},
"400": {
"description": "Incorrect parameters were passed in the request.More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.400"
},
"401": {
"description": "An erroneous or missing bearer token. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.401"
},
"403": {
"description": "The operation is not allowed given the current status of the resource. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.403"
},
"404": {
"description": "The client provided a URI that cannot be mapped to a valid resource URL. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.404"
}
}
},
"delete": {
"description": "The DELETE method is used to delete the resource that represents the existing application context.",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Path.ContextId"
}
"operationId": "AppContextId_DEL",
"tags": [
"appContext"
],
"responses": {
"204": {
"description": "Upon success, a response 204 No Content without any response body is returned."
"description": "No Content"
},
"400": {
"description": "Incorrect parameters were passed in the request. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.400"
},
"401": {
"description": "An erroneous or missing bearer token. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.401"
},
"403": {
"description": "The operation is not allowed given the current status of the resource. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.403"
},
"404": {
"description": "The client provided a URI that cannot be mapped to a valid resource URL. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"type": "object",
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.404"
}
}
}
}
},
"definitions": {
"ProblemDetails": {
"type": "object",
"properties": {
"type": {
"$ref": "#/definitions/Problem.type"
},
"title": {
"$ref": "#/definitions/Problem.title"
},
"status": {
"$ref": "#/definitions/Problem.status"
},
"detail": {
"$ref": "#/definitions/Problem.detail"
},
"instance": {
"$ref": "#/definitions/Problem.instance"
"components": {
"parameters": {
"Query.AppName": {
"name": "appName",
"in": "query",
"description": "Name to identify the MEC application",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"Query.AppProvider": {
"name": "appProvider",
"in": "query",
"description": "Provider of the MEC application",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"Query.AppSoftVersion": {
"name": "appSoftVersion",
"in": "query",
"description": "Software version of the MEC application",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"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": {
"name": "vendorId",
"in": "query",
"description": "Vendor identifier",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"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.",
"required": true,
"schema": {
"type": "string"
}
}
},
"Problem.type": {
"type": "string",
"format": "uri",
"description": "A URI reference according to IETF RFC 3986 that identifies the problem type"
},
"Problem.title": {
"type": "string",
"description": "A short, human-readable summary of the problem type"
},
"Problem.status": {
"type": "integer",
"format": "uint32",
"description": "The HTTP status code for this occurrence of the problem"
},
"Problem.detail": {
"type": "string",
"description": "A human-readable explanation specific to this occurrence of the problem"
},
"Problem.instance": {
"type": "string",
"format": "uri",
"description": "A URI reference that identifies the specific occurrence of the problem"
},
"ApplicationList": {
"description": "Information on available applications",
"type": "object",
"properties": {
"appInfo": {
"$ref": "#/definitions/AppInfo"
"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"