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

Coversion to OpenAPI3

parent 96daa263
......@@ -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 MEC014 UE Identity API described using OpenAPI",
"version": "1.1.1",
"title": "UE Identity API",
"version": "1.1.1",
"description": "The ETSI MEC ISG MEC014 UE Identity 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 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"
},
"host": "127.0.0.1:8081",
"basePath": "/ui/v1",
"schemes": [
"http",
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"security": [
{
"OauthSecurity": [
......@@ -32,278 +23,288 @@
]
}
],
"securityDefinitions": {
"OauthSecurity": {
"type": "oauth2",
"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"
"servers": [
{
"url": "http://127.0.0.1:8081/ui/v1"
},
"Query.UeIdentityTag": {
"name": "ueIdentityTag",
"in": "query",
"description": "Represents a UE",
"required": true,
"type": "array",
"items": {
"type": "string"
}
{
"url": "https://127.0.0.1:8081/ui/v1"
}
},
],
"tags": [
{
"name": "ueIdentityTagInfo"
}
],
"paths": {
"/{appInstanceId}/ue_identity_tag_info": {
"parameters": [
{
"$ref": "#/parameters/Path.AppInstanceId"
"$ref": "#/components/parameters/Path.AppInstanceId"
}
],
"get": {
"description": "Retrieves information about a specific UeIdentityTagInfo resource",
"produces": [
"application/json"
"operationId": "UeIdentityTagInfo_GET",
"tags": [
"ueIdentityTagInfo"
],
"parameters": [
{
"$ref": "#/parameters/Query.UeIdentityTag"
"$ref": "#/components/parameters/Query.UeIdentityTag"
}
],
"responses": {
"200": {
"description": "It is used to indicate nonspecific success. The response body contains a representation of the UeIdentityTagInfo resource.",
"schema": {
"required": [
"UeIdentityTagInfo"
],
"properties": {
"UeIdentityTagInfo": {
"$ref": "#/definitions/UeIdentityTagInfo"
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UeIdentityTagInfo"
}
}
}
},
"400": {
"description": "Incorrect parameters were passed in the request.In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"schema": {
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.400"
},
"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": {
"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. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"schema": {
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
"$ref": "#/components/responses/Error.404"
}
}
},
"put": {
"description": "Register/De-register the information about specific a UeIdentityTagInfo resource",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Body.UeIdentityTagInfo"
}
"operationId": "UeIdentityTagInfo_PUT",
"tags": [
"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": {
"200": {
"description": "It is used to indicate success. The response body contains a representation of the UeIdentityTagInfo resource",
"schema": {
"required": [
"UeIdentityTagInfo"
],
"properties": {
"UeIdentityTagInfo": {
"$ref": "#/definitions/UeIdentityTagInfo"
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/UeIdentityTagInfo"
}
}
}
},
"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": {
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
"$ref": "#/components/schemas/ProblemDetails"
}
},
"401": {
"description": "An erroneous or missing bearer token. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"text/plain": {
"schema": {
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
"$ref": "#/components/schemas/Empty"
}
},
"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": {
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
"$ref": "#/components/schemas/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": {
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
"$ref": "#/components/schemas/ProblemDetails"
}
},
"412": {
"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.",
"text/plain": {
"schema": {
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
"$ref": "#/components/schemas/Empty"
}
}
}
}
}
},
"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"
},
"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.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
},
"text/plain": {
"schema": {
"$ref": "#/components/schemas/Empty"
}
}
}
}
},
"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": [
"ueIdentityTags"
],
"properties": {
"ueIdentityTags": {
"$ref": "#/definitions/UeIdentityTags"
"securitySchemes": {
"OauthSecurity": {
"type": "oauth2",
"flows": {
"clientCredentials": {
"tokenUrl": "https://oauth.exampleAPI/token",
"scopes": {
"all": "Single oauth2 scope for API"
}
}
}
}
},
"UeIdentityTags": {
"description": "1 to N tags presented by a ME Application instance to a ME Platform",
"type": "array",
"items": {
"schemas": {
"Empty": {
"description": "Empty schema"
},
"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": [
"ueIdentityTag",
"state"
"ueIdentityTags"
],
"properties": {
"ueIdentityTag": {
"$ref": "#/definitions/UeIdentityTag"
},
"state": {
"$ref": "#/definitions/State"
"ueIdentityTags": {
"$ref": "#/components/schemas/UeIdentityTags"
}
}
},
"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:
description: The ETSI MEC ISG MEC014 UE Identity API described using OpenAPI
version: 1.1.1
title: UE Identity API
version: 1.1.1
description: The ETSI MEC ISG MEC014 UE Identity API described using OpenAPI
license:
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:
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'
host: '127.0.0.1:8081'
basePath: /ui/v1
schemes:
- http
- https
consumes:
- application/json
produces:
- application/json
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
security:
- OauthSecurity:
- all
securityDefinitions:
OauthSecurity:
type: oauth2
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
in: query
description: Represents a UE
required: true
type: array
items:
type: string
servers:
- url: http://127.0.0.1:8081/ui/v1
- url: https://127.0.0.1:8081/ui/v1
tags:
- name: ueIdentityTagInfo
paths:
'/{appInstanceId}/ue_identity_tag_info':
"/{appInstanceId}/ue_identity_tag_info":
parameters:
- $ref: '#/parameters/Path.AppInstanceId'
- $ref: "#/components/parameters/Path.AppInstanceId"
get:
description: 'Retrieves information about a specific UeIdentityTagInfo resource'
produces:
- application/json
description: Retrieves information about a specific UeIdentityTagInfo resource
operationId: UeIdentityTagInfo_GET
tags:
- ueIdentityTagInfo
parameters:
- $ref: '#/parameters/Query.UeIdentityTag'
- $ref: "#/components/parameters/Query.UeIdentityTag"
responses:
'200':
description: >-
It is used to indicate nonspecific success. The response body
"200":
description: It is used to indicate nonspecific success. The response body
contains a representation of the UeIdentityTagInfo resource.
schema:
required:
- UeIdentityTagInfo
properties:
UeIdentityTagInfo:
$ref: '#/definitions/UeIdentityTagInfo'
'400':
description: >-
Incorrect parameters were passed in the request.In the returned
ProblemDetails structure, the "detail" attribute should convey more
information about the error.
schema:
properties:
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.
schema:
required:
- 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.
schema:
properties:
ProblemDetails:
$ref: '#/definitions/ProblemDetails'
content:
application/json:
schema:
$ref: "#/components/schemas/UeIdentityTagInfo"
"400":
$ref: '#/components/responses/Error.400'
"403":
$ref: '#/components/responses/Error.403'
"404":
$ref: '#/components/responses/Error.404'
put:
description: 'Register/De-register the information about specific a UeIdentityTagInfo resource'
produces:
- application/json
parameters:
- $ref: '#/parameters/Body.UeIdentityTagInfo'
description: Register/De-register the information about specific a UeIdentityTagInfo
resource
operationId: UeIdentityTagInfo_PUT
tags:
- 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:
'200':
description: >-
It is used to indicate success. The response body contains a representation of the UeIdentityTagInfo resource
"200":
description: It is used to indicate success. The response body contains a
representation of the UeIdentityTagInfo resource
content:
application/json:
schema:
$ref: "#/components/schemas/UeIdentityTagInfo"
"400":
$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: >-