From bc793c409f0a5c662a87aec376388b0c7ef95209 Mon Sep 17 00:00:00 2001 From: featherstone Date: Wed, 21 Feb 2018 14:11:14 +0000 Subject: [PATCH] Updated description to GS version 1.1.1, i.e. the published version Change-Id: I6580ea198a7de1e2fea4c280d04bb87fe9909437 Signed-off-by: featherstone --- BwManagementApi.json | 1236 +++++++++++++++++++++--------------------- BwManagementApi.yaml | 45 +- 2 files changed, 636 insertions(+), 645 deletions(-) diff --git a/BwManagementApi.json b/BwManagementApi.json index 711e578..863ca94 100644 --- a/BwManagementApi.json +++ b/BwManagementApi.json @@ -1,677 +1,673 @@ { "swagger": "2.0", "info": { - "description": "An initial attempt to describe the MEC Bandwidth Management API using OpenAPI", - "version": "0.3.3", - "title": "Bandwidth Management API", - "termsOfService": "TBD", - "contact": { - "name": "TBD", - "url": "TBD" - }, - "license": { - "name": "ETSI MEC", - "url": "TBD" - } + "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 V0.3.3 Bandwidth Management API", - "url": "https://docbox.etsi.org/ISG/MEC/70-Draft/0015BandMngtAPI" + "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" }, "host": "127.0.0.1:8081", "basePath": "/bwm/v1", "schemes": [ - "http", - "https" + "http", + "https" ], "consumes": [ - "application/json" + "application/json" ], "produces": [ - "application/json" + "application/json" ], "security": [ - { - "OauthSecurity": [ - "all" - ] - } + { + "OauthSecurity": [ + "all" + ] + } ], "securityDefinitions": { - "OauthSecurity": { - "type": "oauth2", - "flow": "application", - "tokenUrl": "https://oauth.exampleAPI/token", - "scopes": { - "all": "Single oauth2 scope for API" - } + "OauthSecurity": { + "type": "oauth2", + "flow": "application", + "tokenUrl": "https://oauth.exampleAPI/token", + "scopes": { + "all": "Single oauth2 scope for API" } + } }, "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" - } - }, - "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" - } - }, - "Path.AllocationId": { - "name": "allocationId", - "in": "path", - "description": "Represents a bandwidth allocation instance", - "required": true, - "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. ", - "required": false, - "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. ", - "required": false, - "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 bandwitdth allocation of a list of sessions. ", - "required": false, - "type": "array", - "items": { - "type": "string" - } + "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" + } + }, + "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" + } + }, + "Path.AllocationId": { + "name": "allocationId", + "in": "path", + "description": "Represents a bandwidth allocation instance", + "required": true, + "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. ", + "required": false, + "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. ", + "required": false, + "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. ", + "required": false, + "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" - } + "/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" + } + ], + "responses": { + "200": { + "description": "Upon success, a response body containing an array of the bandwidthAllocations is returned.", + "schema": { + "required": [ + "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" - } - } - } - } + "properties": { + "bwInfo": { + "$ref": "#/definitions/BwInfo" + } } + } }, - "post": { - "description": "This method is used to create a bandwidthAllocation resource.", - "produces": [ - "application/json" - ], - "parameters": [ - { - "$ref": "#/parameters/Body.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" ], - "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": "TIt 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" - } - } - } - } + "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" + } + } + } } + } }, - "/bw_allocations/{allocationId}": { - "get": { - "description": "This method retrieves information about a a bandwidthAllocation resource. ", - "produces": [ - "application/json" - ], - "parameters": [ - { - "$ref": "#/parameters/Path.AllocationId" - } + "post": { + "description": "This method is used to create a bandwidthAllocation resource.", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/Body.BwInfo" + } + ], + "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" ], - "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" - } - } - } - } + "properties": { + "bwInfo": { + "$ref": "#/definitions/BwInfo" + } } + } }, - "put": { - "description": "This method updates the information about a bandwidthAllocation resource. ", - "produces": [ - "application/json" - ], - "parameters": [ - { - "$ref": "#/parameters/Path.AllocationId" - }, - { - "$ref": "#/parameters/Body.BwInfo" - } - ], - "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" - } - } - } - } + "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" + } } + } }, - "patch": { - "description": "This method updates the information about a bandwidthAllocation resource. ", - "produces": [ - "application/json" - ], - "parameters": [ - { - "$ref": "#/parameters/Path.AllocationId" - }, - { - "$ref": "#/parameters/Body.BwInfoDeltas" - } + "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" ], - "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" - } - } - } - } + "properties": { + "ProblemDetails": { + "$ref": "#/definitions/ProblemDetails" + } } + } }, - "delete": { - "description": "DELETE method is typically used in \"Unregister from Bandwidth Management Service \" procedure", - "produces": [ - "application/json" - ], - "parameters": [ - { - "$ref": "#/parameters/Path.AllocationId" - } - ], - "responses": { - "204": { - "description": "No Content" - }, - "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" - } - } - } - } + "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" + } } + } } + } } - }, - "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" - } + }, + "/bw_allocations/{allocationId}": { + "get": { + "description": "This method retrieves information about a specific bandwidthAllocation resource. ", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/Path.AllocationId" } - }, - "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" - }, - "BwInfo": { - "description": "information of bandwidth resource", - "type": "object", - "required": [ - "appInsId", - "requestType", - "fixedAllocation", - "allocationDirection" - ], - "properties": { - "timeStamp": { - "$ref": "#/definitions/TimeStamp" - }, - "appInsId": { - "$ref": "#/definitions/AppInsId" - }, - "requestType": { - "$ref": "#/definitions/RequestType" - }, - "sessionFilter": { - "$ref": "#/definitions/SessionFilter" - }, - "fixedBWPriority": { - "$ref": "#/definitions/FixedBWPriority" - }, - "fixedAllocation": { - "$ref": "#/definitions/FixedAllocation" - }, - "allocationDirection": { - "$ref": "#/definitions/AllocationDirection" + ], + "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" + } } - } - }, - "BwInfoDeltas": { - "description": "Conform to JSON merge patch format and processing rules specified IETF RFC 7396 [8], this type represents the attributes whose value are allowed to be updated with HTTP PATCH method in content format JSON", - "type": "object", - "properties": { - "appInsId": { - "$ref": "#/definitions/AppInsId" - }, - "requestType": { - "$ref": "#/definitions/RequestType" - }, - "sessionFilter": { - "$ref": "#/definitions/SessionFilter" - }, - "fixedBWPriority": { - "$ref": "#/definitions/FixedBWPriority" - }, - "fixedAllocation": { - "$ref": "#/definitions/FixedAllocation" - }, - "allocationDirection": { - "$ref": "#/definitions/AllocationDirection" + } + }, + "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" + } + } + } } + } }, - "TimeStamp": { - "type": "object", - "required": [ - "seconds", - "nanoSeconds" - ], - "properties": { - "seconds": { - "$ref": "#/definitions/Seconds" - }, - "nanoSeconds": { - "$ref": "#/definitions/NanoSeconds" + "put": { + "description": "This method updates the information about a specific bandwidthAllocation resource. ", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/Path.AllocationId" + }, + { + "$ref": "#/parameters/Body.BwInfo" + } + ], + "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" + } + } + } } + } }, - "AppInsId": { - "description": "application instance identifier", - "type": "string" - }, - "RequestType": { - "type": "string", - "enum": [ - "APPLICATION_SPECIFIC_BW_ALLOCATION", - "SESSION_SPECIFIC_BW_ALLOCATION" - ] - }, - "SessionFilter": { - "description": "Session filtering criteria, applicable whenWhen requestType is from type session specific:set as SESSION_SPECIFIC_BW_ALLOCATION Session filtering criteria. Any filtering criteria should suite shall define a single session only. In case multiple sessions match sessionFilterof suitable multiple sessions the request should shall be rejected", - "type": "array", - "items": { - "type": "object", + "patch": { + "description": "This method updates the information about a specific bandwidthAllocation resource. ", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/Path.AllocationId" + }, + { + "$ref": "#/parameters/Body.BwInfoDeltas" + } + ], + "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": { - "sourceIp": { - "$ref": "#/definitions/SourceIp" - }, - "sourcePort": { - "$ref": "#/definitions/SourcePort" - }, - "dstAddress": { - "$ref": "#/definitions/DstAddress" - }, - "dstPort": { - "$ref": "#/definitions/DstPort" - }, - "protocol": { - "$ref": "#/definitions/Protocol" - } + "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" + } + } + } } + } }, - "FixedBWPriority": { - "description": "Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document", - "type": "string", - "enum": [ - "not defined in the present document" - ] - }, - "FixedAllocation": { - "description": "Size of requested fixed BW allocation in [bps]", - "type": "string" - }, - "AllocationDirection": { - "description": "The direction of the requested BW allocation", - "type": "string", - "enum": [ - "00 = Downlink (towards the UE)", - "01 = Uplink (towards the application/session)", - "10 = symmetrical" - ] - }, - "Seconds": { - "description": "The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC", - "type": "integer", - "format": "uint32" - }, - "NanoSeconds": { - "description": "Time in nanoseconds in Unix-time since January 1, 1970, 00:00:00 UTC", - "type": "integer", - "format": "uint32" - }, - "SourceIp": { - "description": "Source address identity of session (including range)", - "type": "string" - }, - "SourcePort": { - "description": "Source port identity of session ", - "type": "array", - "items": { - "type": "string" + "delete": { + "description": "Remove a specific bandwidthAllocation resource. DELETE method is typically used in \"Unregister from Bandwidth Management Service\" procedure", + "produces": [ + "application/json" + ], + "parameters": [ + { + "$ref": "#/parameters/Path.AllocationId" } - }, - "DstAddress": { - "description": "Destination address identity of session (including range)", - "type": "string" - }, - "DstPort": { - "description": "Destination port identity of session ", - "type": "array", - "items": { - "type": "string" + ], + "responses": { + "204": { + "description": "No Content" + }, + "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" + } + } + } } - }, - "Protocol": { - "description": "Protocol number", - "type": "string" + } + } + } + }, + "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" + } + } + }, + "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" + }, + "BwInfo": { + "description": "information of bandwidth resource", + "type": "object", + "required": [ + "appInsId", + "requestType", + "fixedAllocation", + "allocationDirection" + ], + "properties": { + "timeStamp": { + "$ref": "#/definitions/TimeStamp" + }, + "appInsId": { + "$ref": "#/definitions/AppInsId" + }, + "requestType": { + "$ref": "#/definitions/RequestType" + }, + "sessionFilter": { + "$ref": "#/definitions/SessionFilter" + }, + "fixedBWPriority": { + "$ref": "#/definitions/FixedBWPriority" + }, + "fixedAllocation": { + "$ref": "#/definitions/FixedAllocation" + }, + "allocationDirection": { + "$ref": "#/definitions/AllocationDirection" + } + } + }, + "BwInfoDeltas": { + "description": "Conform to JSON merge patch format and processing rules specified IETF RFC 7396 [8], this type represents the attributes whose value are allowed to be updated with HTTP PATCH method in content format JSON", + "type": "object", + "properties": { + "appInsId": { + "$ref": "#/definitions/AppInsId" + }, + "requestType": { + "$ref": "#/definitions/RequestType" + }, + "sessionFilter": { + "$ref": "#/definitions/SessionFilter" + }, + "fixedBWPriority": { + "$ref": "#/definitions/FixedBWPriority" + }, + "fixedAllocation": { + "$ref": "#/definitions/FixedAllocation" + }, + "allocationDirection": { + "$ref": "#/definitions/AllocationDirection" + } + } + }, + "TimeStamp": { + "type": "object", + "required": [ + "seconds", + "nanoSeconds" + ], + "properties": { + "seconds": { + "$ref": "#/definitions/Seconds" + }, + "nanoSeconds": { + "$ref": "#/definitions/NanoSeconds" + } + } + }, + "AppInsId": { + "description": "Application instance identifier", + "type": "string" + }, + "RequestType": { + "description": "Numeric value (0 - 255) corresponding to specific type of consumer", + "type": "string", + "enum": [ + "APPLICATION_SPECIFIC_BW_ALLOCATION", + "SESSION_SPECIFIC_BW_ALLOCATION" + ] + }, + "SessionFilter": { + "description": "Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only. In case multiple sessions match sessionFilter the request shall be rejected", + "type": "array", + "items": { + "type": "object", + "properties": { + "sourceIp": { + "$ref": "#/definitions/SourceIp" + }, + "sourcePort": { + "$ref": "#/definitions/SourcePort" + }, + "dstAddress": { + "$ref": "#/definitions/DstAddress" + }, + "dstPort": { + "$ref": "#/definitions/DstPort" + }, + "protocol": { + "$ref": "#/definitions/Protocol" + } + } + } + }, + "FixedBWPriority": { + "description": "Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document", + "type": "string", + "enum": [ + "not defined in the present document" + ] + }, + "FixedAllocation": { + "description": "Size of requested fixed BW allocation in [bps]", + "type": "string" + }, + "AllocationDirection": { + "description": "The direction of the requested BW allocation", + "type": "string", + "enum": [ + "00 = Downlink (towards the UE)", + "01 = Uplink (towards the application/session)", + "10 = Symmetrical" + ] + }, + "Seconds": { + "description": "The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC", + "type": "integer", + "format": "uint32" + }, + "NanoSeconds": { + "description": "The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC", + "type": "integer", + "format": "uint32" + }, + "SourceIp": { + "description": "Source address identity of session (including range)", + "type": "string" + }, + "SourcePort": { + "description": "Source port identity of session ", + "type": "array", + "items": { + "type": "string" + } + }, + "DstAddress": { + "description": "Destination address identity of session (including range)", + "type": "string" + }, + "DstPort": { + "description": "Destination port identity of session ", + "type": "array", + "items": { + "type": "string" } + }, + "Protocol": { + "description": "Protocol number", + "type": "string" + } } -} + } \ No newline at end of file diff --git a/BwManagementApi.yaml b/BwManagementApi.yaml index cebef63..58564da 100644 --- a/BwManagementApi.yaml +++ b/BwManagementApi.yaml @@ -1,20 +1,15 @@ swagger: '2.0' info: description: >- - An initial attempt to describe the MEC Bandwidth Management API using - OpenAPI - version: 0.3.3 - title: Bandwidth Management API - termsOfService: TBD - contact: - name: TBD - url: TBD + The ETSI MEC ISG MEC015 Bandwidth Management API described using OpenAPI + version: 1.1.1 + title: BWM API license: - name: ETSI MEC - url: TBD + name: ETSI Forge copyright notice + url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt' externalDocs: - description: ETSI MEC015 V0.3.3 Bandwidth Management API - url: 'https://docbox.etsi.org/ISG/MEC/70-Draft/0015BandMngtAPI' + 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' host: '127.0.0.1:8081' basePath: /bwm/v1 schemes: @@ -34,7 +29,6 @@ securityDefinitions: tokenUrl: 'https://oauth.exampleAPI/token' scopes: all: Single oauth2 scope for API - parameters: Body.BwInfo: name: bwInfo @@ -81,7 +75,7 @@ parameters: name: session_id in: query description: >- - A mobile edge application instance may use session_id as an input parameter to query the bandwitdth allocation of a list of sessions. + A mobile edge 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: @@ -163,7 +157,7 @@ paths: $ref: '#/definitions/ProblemDetails' '404': description: >- - TIt 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. + 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: @@ -171,7 +165,7 @@ paths: /bw_allocations/{allocationId}: get: description: >- - This method retrieves information about a a bandwidthAllocation resource. + This method retrieves information about a specific bandwidthAllocation resource. produces: - application/json parameters: @@ -209,7 +203,7 @@ paths: $ref: '#/definitions/ProblemDetails' put: description: >- - This method updates the information about a bandwidthAllocation resource. + This method updates the information about a specific bandwidthAllocation resource. produces: - application/json parameters: @@ -256,7 +250,7 @@ paths: $ref: '#/definitions/ProblemDetails' patch: description: >- - This method updates the information about a bandwidthAllocation resource. + This method updates the information about a specific bandwidthAllocation resource. produces: - application/json parameters: @@ -302,7 +296,7 @@ paths: ProblemDetails: $ref: '#/definitions/ProblemDetails' delete: - description: DELETE method is typically used in "Unregister from Bandwidth Management Service " procedure + description: Remove a specific bandwidthAllocation resource. DELETE method is typically used in "Unregister from Bandwidth Management Service" procedure produces: - application/json parameters: @@ -411,16 +405,18 @@ definitions: $ref: '#/definitions/NanoSeconds' AppInsId: description: >- - application instance identifier + Application instance identifier type: string RequestType: + description: >- + Numeric value (0 - 255) corresponding to specific type of consumer type: string enum: - APPLICATION_SPECIFIC_BW_ALLOCATION - SESSION_SPECIFIC_BW_ALLOCATION SessionFilter: description: >- - Session filtering criteria, applicable whenWhen requestType is from type session specific:set as SESSION_SPECIFIC_BW_ALLOCATION Session filtering criteria. Any filtering criteria should suite shall define a single session only. In case multiple sessions match sessionFilterof suitable multiple sessions the request should shall be rejected + Session filtering criteria, applicable when requestType is set as SESSION_SPECIFIC_BW_ALLOCATION. Any filtering criteria shall define a single session only. In case multiple sessions match sessionFilter the request shall be rejected type: array items: type: object @@ -452,7 +448,7 @@ definitions: enum: - 00 = Downlink (towards the UE) - 01 = Uplink (towards the application/session) - - 10 = symmetrical + - 10 = Symmetrical Seconds: description: >- The seconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC @@ -460,7 +456,7 @@ definitions: format: uint32 NanoSeconds: description: >- - Time in nanoseconds in Unix-time since January 1, 1970, 00:00:00 UTC + The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC type: integer format: uint32 SourceIp: @@ -486,5 +482,4 @@ definitions: Protocol: description: >- Protocol number - type: string - + type: string \ No newline at end of file -- GitLab