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: BSD-3-Clause url: 'https://forge.etsi.org/legal-matters' 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' 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 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 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' 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' 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 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' /bw_allocations/{allocationId}: get: description: >- This method retrieves information about a specific bandwidthAllocation resource. produces: - application/json parameters: - $ref: '#/parameters/Path.AllocationId' 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: - 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' 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' 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: 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' 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' 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' 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