Commit ece65d7c authored by Walter Featherstone's avatar Walter Featherstone

Coversion to OpenAPI3

parent b596207f
{
"swagger": "2.0",
"info": {
"description": "The ETSI MEC ISG MEC015 Bandwidth Management API described using OpenAPI",
"version": "1.1.1",
"title": "BWM API",
"license": {
"name": "ETSI Forge copyright notice",
"url": "https://forge.etsi.org/etsi-forge-copyright-notice.txt"
}
"openapi": "3.0.2",
"info": {
"description": "The ETSI MEC ISG MEC015 Bandwidth Management API described using OpenAPI",
"version": "1.1.1",
"title": "BWM API",
"license": {
"name": "ETSI Forge copyright notice",
"url": "https://forge.etsi.org/etsi-forge-copyright-notice.txt"
},
"externalDocs": {
"description": "ETSI MEC015 V1.1.1 Bandwidth Management API",
"url": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/01.01.01_60/gs_MEC015v010101p.pdf"
"contact": {
"email": "cti_support@etsi.org"
}
},
"externalDocs": {
"description": "ETSI MEC015 V1.1.1 Bandwidth Management API",
"url": "http://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/01.01.01_60/gs_MEC015v010101p.pdf"
},
"servers": [
{
"url": "http://127.0.0.1:8081/bwm/v1"
},
"host": "127.0.0.1:8081",
"basePath": "/bwm/v1",
"schemes": [
"http",
"https"
],
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"security": [
{
"OauthSecurity": [
"all"
]
}
],
"securityDefinitions": {
"OauthSecurity": {
"type": "oauth2",
"flow": "application",
"tokenUrl": "https://oauth.exampleAPI/token",
"scopes": {
"all": "Single oauth2 scope for API"
{
"url": "https://127.0.0.1:8081/bwm/v1"
}
],
"security": [
{
"OauthSecurity": [
"all"
]
}
],
"tags": [
{
"name": "BandwithAllocation"
},
{
"name": "BandwithAllocations"
}
],
"paths": {
"/bw_allocations": {
"get": {
"description": "This method retrieves information about a list of bandwidthAllocation resources. In queries, either \"app_instance_id\" or \"app_name\" or \"session_Id\" or none of them shall be present.",
"parameters": [
{
"$ref": "#/components/parameters/Query.AppInstanceId"
},
{
"$ref": "#/components/parameters/Query.AppName"
},
{
"$ref": "#/components/parameters/Query.SessionId"
}
],
"operationId": "BandwithAllocations_GET",
"tags": [
"BandwithAllocations"
],
"responses": {
"200": {
"$ref": "#/components/responses/BandwithAllocations"
},
"400": {
"$ref": "#/components/responses/Error.400"
},
"403": {
"$ref": "#/components/responses/Error.403"
},
"404": {
"$ref": "#/components/responses/Error.404"
}
}
},
"post": {
"description": "This method is used to create a bandwidthAllocation resource.",
"requestBody": {
"$ref": "#/components/requestBodies/BwInfo"
},
"operationId": "BandwithAllocations_POST",
"tags": [
"BandwithAllocations"
],
"responses": {
"201": {
"$ref": "#/components/responses/BandwithAllocation.201"
},
"400": {
"$ref": "#/components/responses/Error.400"
},
"403": {
"$ref": "#/components/responses/Error.403"
},
"404": {
"$ref": "#/components/responses/Error.404"
}
}
}
},
"parameters": {
"Body.BwInfo": {
"name": "bwInfo",
"in": "body",
"description": "BwInfo with updated information is included as entity body of the request",
"required": true,
"schema": {
"$ref": "#/definitions/BwInfo"
"/bw_allocations/{allocationId}": {
"parameters": [
{
"$ref": "#/components/parameters/Path.AllocationId"
}
],
"get": {
"description": "This method retrieves information about a specific bandwidthAllocation resource.",
"operationId": "BandwithAllocation_GET",
"tags": [
"BandwithAllocation"
],
"responses": {
"200": {
"$ref": "#/components/responses/BandwithAllocation"
},
"400": {
"$ref": "#/components/responses/Error.400"
},
"403": {
"$ref": "#/components/responses/Error.403"
},
"404": {
"$ref": "#/components/responses/Error.404"
}
}
},
"Body.BwInfoDeltas": {
"name": "bwInfoDeltas",
"in": "body",
"description": "Description of the changes to instruct the server how to modify the resource representation. ",
"required": true,
"schema": {
"$ref": "#/definitions/BwInfoDeltas"
"put": {
"description": "This method updates the information about a specific bandwidthAllocation resource.",
"requestBody": {
"$ref": "#/components/requestBodies/BwInfo"
},
"operationId": "BandwithAllocation_PUT",
"tags": [
"BandwithAllocation"
],
"responses": {
"200": {
"$ref": "#/components/responses/BandwithAllocation"
},
"400": {
"$ref": "#/components/responses/Error.400"
},
"403": {
"$ref": "#/components/responses/Error.403"
},
"404": {
"$ref": "#/components/responses/Error.404"
},
"412": {
"$ref": "#/components/responses/Error.412"
}
}
},
"patch": {
"description": "This method updates the information about a specific bandwidthAllocation resource.",
"requestBody": {
"$ref": "#/components/requestBodies/BwInfoDeltas"
},
"operationId": "BandwithAllocation_PAT",
"tags": [
"BandwithAllocation"
],
"responses": {
"200": {
"$ref": "#/components/responses/BandwithAllocation"
},
"400": {
"$ref": "#/components/responses/Error.400"
},
"403": {
"$ref": "#/components/responses/Error.403"
},
"404": {
"$ref": "#/components/responses/Error.404"
},
"412": {
"$ref": "#/components/responses/Error.412"
}
}
},
"delete": {
"description": "Remove a specific bandwidthAllocation resource. DELETE method is typically used in \"Unregister from Bandwidth Management Service\" procedure",
"operationId": "BandwithAllocation_DEL",
"tags": [
"BandwithAllocation"
],
"responses": {
"204": {
"description": "No Content"
},
"403": {
"$ref": "#/components/responses/Error.403"
},
"404": {
"$ref": "#/components/responses/Error.404"
}
}
}
}
},
"components": {
"parameters": {
"Path.AllocationId": {
"name": "allocationId",
"in": "path",
"description": "Represents a bandwidth allocation instance",
"required": true,
"type": "string"
"schema": {
"type": "string"
}
},
"Query.AppInstanceId": {
"name": "app_instance_id",
"in": "query",
"description": "A mobile edge application instance may use multiple app_instance_ids as an input parameter to query the bandwidth allocation of a list of mobile edge application instances. ",
"description": "A MEC application instance may use multiple app_instance_ids as an input parameter to query the bandwidth allocation of a list of mobile edge application instances.",
"required": false,
"type": "array",
"items": {
"type": "string"
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"Query.AppName": {
"name": "app_name",
"in": "query",
"description": "A mobile edge application instance may use multiple ser_names as an input parameter to query the bandwidth allocation of a list of mobile edge application instances. ",
"description": "A MEC application instance may use multiple ser_names as an input parameter to query the bandwidth allocation of a list of mobile edge application instances.",
"required": false,
"type": "array",
"items": {
"type": "string"
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"Query.SessionId": {
"name": "session_id",
"in": "query",
"description": "A mobile edge application instance may use session_id as an input parameter to query the bandwidth allocation of a list of sessions. ",
"description": "A MEC application instance may use session_id as an input parameter to query the bandwidth allocation of a list of sessions.",
"required": false,
"type": "array",
"items": {
"type": "string"
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"paths": {
"/bw_allocations": {
"get": {
"description": "This method retrieves information about a list of bandwidthAllocation resources",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Query.AppInstanceId"
},
{
"$ref": "#/parameters/Query.AppName"
},
{
"$ref": "#/parameters/Query.SessionId"
"requestBodies": {
"BwInfo": {
"description": "Bandwidth Allocation information",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BwInfo"
}
],
"responses": {
"200": {
"description": "Upon success, a response body containing an array of the bandwidthAllocations is returned.",
"schema": {
"required": [
"bwInfo"
],
"properties": {
"bwInfo": {
"$ref": "#/definitions/BwInfo"
}
}
}
},
"400": {
"description": "It is used to indicate that incorrect parameters were passed to 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": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"schema": {
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
}
},
"BwInfoDeltas": {
"description": "Description of the changes to instruct the server how to modify the Bandwidth Allocation information.",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BwInfoDeltas"
}
}
}
}
},
"links": {
"GetBandwithAllocation": {
"operationId": "BandwithAllocation_GET",
"description": "The `allocationId` value returned in the response can be used as the `allocationId` parameter in 'GET .../bw_allocations/{allocationId}''",
"parameters": {
"description": "regex = \\/bwm\\/v1\\/bw_allocations\\/(.*); allocationId = location.match(regex)[1]; where \"location\" is the location header uri returned from operationId BandwithAllocations_POST ",
"allocationId": "TBC"
}
},
"PatBandwithAllocation": {
"operationId": "BandwithAllocation_PAT",
"description": "The `allocationId` value returned in the response can be used as the `allocationId` parameter in 'PATCH .../bw_allocations/{allocationId}''",
"parameters": {
"description": "regex = \\/bwm\\/v1\\/bw_allocations\\/(.*); allocationId = location.match(regex)[1]; where \"location\" is the location header uri returned from operationId BandwithAllocations_POST ",
"allocationId": "TBC"
}
},
"PutBandwithAllocation": {
"operationId": "BandwithAllocation_PUT",
"description": "The `allocationId` value returned in the response can be used as the `allocationId` parameter in 'PUT .../bw_allocations/{allocationId}''",
"parameters": {
"description": "regex = \\/bwm\\/v1\\/bw_allocations\\/(.*); allocationId = location.match(regex)[1]; where \"location\" is the location header uri returned from operationId BandwithAllocations_POST ",
"allocationId": "TBC"
}
},
"DelBandwithAllocation": {
"operationId": "BandwithAllocation_DEL",
"description": "The `allocationId` value returned in the response can be used as the `allocationId` parameter in 'DELETE .../bw_allocations/{allocationId}''",
"parameters": {
"description": "regex = \\/bwm\\/v1\\/bw_allocations\\/(.*); allocationId = location.match(regex)[1]; where \"location\" is the location header uri returned from operationId BandwithAllocations_POST ",
"allocationId": "TBC"
}
}
},
"responses": {
"BandwithAllocation": {
"description": "Bandwidth Allocation.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BwInfo"
}
}
}
},
"BandwithAllocation.201": {
"description": "Bandwidth Allocation.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BwInfo"
}
}
},
"post": {
"description": "This method is used to create a bandwidthAllocation resource.",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Body.BwInfo"
"headers": {
"location": {
"description": "The resource URI of the created resource",
"schema": {
"type": "string",
"format": "uri"
}
],
"responses": {
"201": {
"description": "Upon success, the HTTP response shall include a \"Location\" HTTP header that contains the resource URI of the created resource.",
"schema": {
"required": [
"bwInfo"
],
"properties": {
"bwInfo": {
"$ref": "#/definitions/BwInfo"
}
}
}
},
"400": {
"description": "It is used to indicate that incorrect parameters were passed to 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": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"schema": {
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
}
},
"BandwithAllocations": {
"description": "Bandwidth Allocations.",
"content": {
"application/json": {
"schema": {
"type": "array",
"minItems": 0,
"items": {
"$ref": "#/components/schemas/BwInfo"
}
}
}
},
"links": {
"getBandwithAllocation": {
"$ref": "#/components/links/GetBandwithAllocation"
},
"patBandwithAllocation": {
"$ref": "#/components/links/PatBandwithAllocation"
},
"putBandwithAllocation": {
"$ref": "#/components/links/PutBandwithAllocation"
},
"delBandwithAllocation": {
"$ref": "#/components/links/DelBandwithAllocation"
}
}
},
"/bw_allocations/{allocationId}": {
"get": {
"description": "This method retrieves information about a specific bandwidthAllocation resource. ",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Path.AllocationId"
"Error.400": {
"description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
],
"responses": {
"200": {
"description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
"schema": {
"required": [
"bwInfo"
],
"properties": {
"bwInfo": {
"$ref": "#/definitions/BwInfo"
}
}
}
},
"400": {
"description": "It is used to indicate that incorrect parameters were passed to 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 shall be provided in the \"detail\" attribute of the \"ProblemDetails\" structure. required:\n - ProblemDetails\nproperties:\n ProblemDetails:\n $ref: '#/definitions/ProblemDetails'"
},
"404": {
"description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"schema": {
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"text/plain": {
"schema": {
"$ref": "#/components/schemas/Empty"
}
}
},
"put": {
"description": "This method updates the information about a specific bandwidthAllocation resource. ",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Path.AllocationId"
},
{
"$ref": "#/parameters/Body.BwInfo"
}
},
"Error.401": {
"description": "Unauthorized. It is used when the client did not submit the appropriate credentials.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
],
"responses": {
"200": {
"description": "Upon success, a response body containing data type describing the updated BwInfo is returned.",
"schema": {
"required": [
"bwInfo"
],
"properties": {
"bwInfo": {
"$ref": "#/definitions/BwInfo"
}
}
}
},
"400": {
"description": "It is used to indicate that incorrect parameters were passed to 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 shall be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"required": [
"ProblemDetails"
],
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"404": {
"description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"schema": {
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/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.",
"schema": {
"properties": {
"ProblemDetails": {
"$ref": "#/definitions/ProblemDetails"
}
}
}
},
"text/plain": {
"schema": {
"$ref": "#/components/schemas/Empty"
}
}
},
"patch": {
"description": "This method updates the information about a specific bandwidthAllocation resource. ",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Path.AllocationId"
},
{
"$ref": "#/parameters/Body.BwInfoDeltas"
}
},
"Error.403": {
"description": "Forbidden. The operation is not allowed given the current status of the resource. ",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
],
"responses": {
"200": {
"description": "Upon success, a response body containing data type describing the updated BwInfo is returned.",
"schema": {
"required": [
"bwInfo"
],
"properties": {
"bwInfo": {
"$ref": "#/definitions/BwInfo"
}
}
}
},
"400": {
"description": "It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",