Commit 33c96bb6 authored by Walter Featherstone's avatar Walter Featherstone
Browse files

Coversion to OpenAPI3

parent 96daa263
...@@ -9,7 +9,7 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E ...@@ -9,7 +9,7 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E
## ETSI Forge Copyright statement ## ETSI Forge Copyright statement
Copyright (c) ETSI 2018. Copyright (c) ETSI 2019.
This software is subject to copyrights owned by ETSI. Non-exclusive permission 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 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 ...@@ -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 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 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 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": { "info": {
"description": "The ETSI MEC ISG MEC014 UE Identity API described using OpenAPI",
"version": "1.1.1",
"title": "UE Identity API", "title": "UE Identity API",
"version": "1.1.1",
"description": "The ETSI MEC ISG MEC014 UE Identity API described using OpenAPI",
"license": { "license": {
"name": "ETSI Forge copyright notice", "name": "ETSI Forge copyright notice",
"url": "https://forge.etsi.org/etsi-forge-copyright-notice.txt" "url": "https://forge.etsi.org/etsi-forge-copyright-notice.txt"
},
"contact": {
"email": "cti_support@etsi.org"
} }
}, },
"externalDocs": { "externalDocs": {
"description": "ETSI GS MEC014 UE Identity API, V1.1.1", "description": "ETSI GS MEC014 UE Identity API, V1.1.1",
"url": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/014/01.01.01_60/gs_mec014v010101p.pdf" "url": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/014/01.01.01_60/gs_mec014v010101p.pdf"
}, },
"host": "127.0.0.1:8081",
"basePath": "/ui/v1",
"schemes": [
"http",
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"security": [ "security": [
{ {
"OauthSecurity": [ "OauthSecurity": [
...@@ -32,278 +23,288 @@ ...@@ -32,278 +23,288 @@
] ]
} }
], ],
"securityDefinitions": { "servers": [
"OauthSecurity": { {
"type": "oauth2", "url": "http://127.0.0.1:8081/ui/v1"
"flow": "application",
"tokenUrl": "https://oauth.exampleAPI/token",
"scopes": {
"all": "Single oauth2 scope for API"
}
}
},
"parameters": {
"Body.UeIdentityTagInfo": {
"name": "UeIdentityTagInfo",
"in": "body",
"description": "'The updated \"state\" for each included UE Identity tag is included in the entity body of the request'",
"required": true,
"schema": {
"$ref": "#/definitions/UeIdentityTagInfo"
}
},
"Path.AppInstanceId": {
"name": "appInstanceId",
"in": "path",
"description": "Represents a mobile edge application instance",
"required": true,
"type": "string"
}, },
"Query.UeIdentityTag": { {
"name": "ueIdentityTag", "url": "https://127.0.0.1:8081/ui/v1"
"in": "query",
"description": "Represents a UE",
"required": true,
"type": "array",
"items": {
"type": "string"
}
} }
}, ],
"tags": [
{
"name": "ueIdentityTagInfo"
}
],
"paths": { "paths": {
"/{appInstanceId}/ue_identity_tag_info": { "/{appInstanceId}/ue_identity_tag_info": {
"parameters": [ "parameters": [
{ {
"$ref": "#/parameters/Path.AppInstanceId" "$ref": "#/components/parameters/Path.AppInstanceId"
} }
], ],
"get": { "get": {
"description": "Retrieves information about a specific UeIdentityTagInfo resource", "description": "Retrieves information about a specific UeIdentityTagInfo resource",
"produces": [ "operationId": "UeIdentityTagInfo_GET",
"application/json" "tags": [
"ueIdentityTagInfo"
], ],
"parameters": [ "parameters": [
{ {
"$ref": "#/parameters/Query.UeIdentityTag" "$ref": "#/components/parameters/Query.UeIdentityTag"
} }
], ],
"responses": { "responses": {
"200": { "200": {
"description": "It is used to indicate nonspecific success. The response body contains a representation of the UeIdentityTagInfo resource.", "description": "It is used to indicate nonspecific success. The response body contains a representation of the UeIdentityTagInfo resource.",
"schema": { "content": {
"required": [ "application/json": {
"UeIdentityTagInfo" "schema": {
], "$ref": "#/components/schemas/UeIdentityTagInfo"
"properties": {
"UeIdentityTagInfo": {
"$ref": "#/definitions/UeIdentityTagInfo"
} }
} }
} }
}, },
"400": { "400": {
"description": "Incorrect parameters were passed in the request.In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.", "$ref": "#/components/responses/Error.400"
"schema": {
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}, },
"403": { "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.", "$ref": "#/components/responses/Error.403"
"schema": {
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}, },
"404": { "404": {
"description": "The client provided a URI that cannot be mapped to a valid resource URL. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.", "$ref": "#/components/responses/Error.404"
"schema": {
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
} }
} }
}, },
"put": { "put": {
"description": "Register/De-register the information about specific a UeIdentityTagInfo resource", "description": "Register/De-register the information about specific a UeIdentityTagInfo resource",
"produces": [ "operationId": "UeIdentityTagInfo_PUT",
"application/json" "tags": [
], "ueIdentityTagInfo"
"parameters": [
{
"$ref": "#/parameters/Body.UeIdentityTagInfo"
}
], ],
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UeIdentityTagInfo"
}
}
},
"description": "'The updated \"state\" for each included UE Identity tag is included in the entity body of the request'",
"required": true
},
"responses": { "responses": {
"200": { "200": {
"description": "It is used to indicate success. The response body contains a representation of the UeIdentityTagInfo resource", "description": "It is used to indicate success. The response body contains a representation of the UeIdentityTagInfo resource",
"schema": { "content": {
"required": [ "application/json": {
"UeIdentityTagInfo" "schema": {
], "$ref": "#/components/schemas/UeIdentityTagInfo"
"properties": {
"UeIdentityTagInfo": {
"$ref": "#/definitions/UeIdentityTagInfo"
} }
} }
} }
}, },
"400": { "400": {
"description": "Incorrect parameters were passed in the request.In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.", "$ref": "#/components/responses/Error.400"
},
"403": {
"$ref": "#/components/responses/Error.403"
},
"404": {
"$ref": "#/components/responses/Error.404"
},
"412": {
"$ref": "#/components/responses/Error.412"
}
}
}
}
},
"components": {
"parameters": {
"Path.AppInstanceId": {
"name": "appInstanceId",
"in": "path",
"description": "Represents a mobile edge application instance",
"required": true,
"schema": {
"type": "string"
}
},
"Query.UeIdentityTag": {
"name": "ueIdentityTag",
"in": "query",
"description": "Represents a UE",
"required": true,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"responses": {
"Error.400": {
"description": "Bad Request. Incorrect parameters were passed in the request.In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"content": {
"application/problem+json": {
"schema": { "schema": {
"properties": { "$ref": "#/components/schemas/ProblemDetails"
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
} }
}, },
"401": { "text/plain": {
"description": "An erroneous or missing bearer token. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": { "schema": {
"properties": { "$ref": "#/components/schemas/Empty"
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
} }
}, }
"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.", },
"Error.403": {
"description": "Forbidden. 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.",
"content": {
"application/problem+json": {
"schema": { "schema": {
"required": [ "$ref": "#/components/schemas/ProblemDetails"
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
} }
}, }
"404": { }
"description": "The client provided a URI that cannot be mapped to a valid resource URL. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.", },
"Error.404": {
"description": "Not Found. The client provided a URI that cannot be mapped to a valid resource URL. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"content": {
"application/problem+json": {
"schema": { "schema": {
"properties": { "$ref": "#/components/schemas/ProblemDetails"
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
} }
}, },
"412": { "text/plain": {
"description": "It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts.In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"schema": { "schema": {
"properties": { "$ref": "#/components/schemas/Empty"
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
} }
} }
} }
} },
} "Error.412": {
}, "description": "Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts.In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"definitions": { "content": {
"ProblemDetails": { "application/problem+json": {
"type": "object", "schema": {
"properties": { "$ref": "#/components/schemas/ProblemDetails"
"type": { }
"$ref": "#/definitions/Problem.type" },
}, "text/plain": {
"title": { "schema": {
"$ref": "#/definitions/Problem.title" "$ref": "#/components/schemas/Empty"
}, }
"status": { }
"$ref": "#/definitions/Problem.status"
},
"detail": {
"$ref": "#/definitions/Problem.detail"
},
"instance": {
"$ref": "#/definitions/Problem.instance"
} }
} }
}, },
"Problem.type": { "securitySchemes": {
"type": "string", "OauthSecurity": {
"format": "uri", "type": "oauth2",
"description": "A URI reference according to IETF RFC 3986 that identifies the problem type" "flows": {
}, "clientCredentials": {
"Problem.title": { "tokenUrl": "https://oauth.exampleAPI/token",
"type": "string", "scopes": {
"description": "A short, human-readable summary of the problem type" "all": "Single oauth2 scope for API"
}, }
"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"
},
"UeIdentityTagInfo": {
"description": "information of UE identity tag used in UE Identity feature",
"type": "object",
"required": [
"ueIdentityTags"
],
"properties": {
"ueIdentityTags": {
"$ref": "#/definitions/UeIdentityTags"
} }
} }
}, },
"UeIdentityTags": { "schemas": {
"description": "1 to N tags presented by a ME Application instance to a ME Platform", "Empty": {
"type": "array", "description": "Empty schema"
"items": { },
"ProblemDetails": {
"type": "object",
"properties": {
"type": {
"$ref": "#/components/schemas/Problem.type"
},
"title": {
"$ref": "#/components/schemas/Problem.title"
},
"status": {
"$ref": "#/components/schemas/Problem.status"
},
"detail": {
"$ref": "#/components/schemas/Problem.detail"
},
"instance": {
"$ref": "#/components/schemas/Problem.instance"
}
}
},
"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"
},
"UeIdentityTagInfo": {
"description": "information of UE identity tag used in UE Identity feature",
"type": "object",
"required": [ "required": [
"ueIdentityTag", "ueIdentityTags"
"state"
], ],
"properties": { "properties": {
"ueIdentityTag": { "ueIdentityTags": {
"$ref": "#/definitions/UeIdentityTag" "$ref": "#/components/schemas/UeIdentityTags"
}, }
"state": { }
"$ref": "#/definitions/State" },
"UeIdentityTags": {
"description": "1 to N tags presented by a ME Application instance to a ME Platform",
"type": "array",
"items": {
"required": [
"ueIdentityTag",
"state"
],
"properties": {
"ueIdentityTag": {
"$ref": "#/components/schemas/UeIdentityTag"
},
"state": {
"$ref": "#/components/schemas/State"
}
} }
} }
},
"UeIdentityTag": {
"description": "Specific tag presented by a ME Application instance to a ME Platform",
"type": "string",
"example": "UeTagA"
},
"State": {
"description": "Status of the resource ueIdentityTagInfo",
"type": "string",
"enum": [
"UNREGISTERED",
"REGISTERED"
],
"example": "REGISTERED"
} }
},
"UeIdentityTag": {
"description": "Specific tag presented by a ME Application instance to a ME Platform",
"type": "string",
"example": "UeTagA"
},
"State": {
"description": "Status of the resource ueIdentityTagInfo",
"type": "string",
"enum": [
"UNREGISTERED",
"REGISTERED"
],
"example": "REGISTERED"
} }
} }
} }
\ No newline at end of file
swagger: '2.0' openapi: 3.0.2
info: info:
description: The ETSI MEC ISG MEC014 UE Identity API described using OpenAPI
version: 1.1.1
title: UE Identity API title: UE Identity API
version: 1.1.1
description: The ETSI MEC ISG MEC014 UE Identity API described using OpenAPI
license: license:
name: ETSI Forge copyright notice name: ETSI Forge copyright notice
url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt' url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
contact:
email: cti_support@etsi.org
externalDocs: externalDocs:
description: '