openapi: 3.0.0 info: contact: url: https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api title: 'ETSI GS MEC 015 Bandwidth Management API' version: 2.1.1 description: The ETSI MEC ISG Bandwidth Management API described using OpenAPI. license: name: BSD-3-Clause url: 'https://forge.etsi.org/legal-matters' externalDocs: description: ETSI GS MEC015 V2.1.1 Traffic Management APIs url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/015/02.01.01_60/gs_MEC015v020101p.pdf' servers: - url: 'https://localhost/bwm/v1' tags: - name: "bwm" paths: /bw_allocations: get: tags: - "bwm" summary: "Retrieve information about a list of bandwidthAllocation resources" description: "Retrieves information about a list of bandwidthAllocation resources. Typically used in 'Get configured bandwidth allocation from Bandwidth Management Service' procedure as described in clause 6.2.5." operationId: "bandwidthAllocationListGET" parameters: - $ref: '#/components/parameters/Query.app_instance_id' - $ref: '#/components/parameters/Query.app_name' - $ref: '#/components/parameters/Query.session_id' responses: 200: description: "Upon success, a response body containing an array of the bandwidthAllocations is returned." content: application/json: schema: type: array items: $ref: "#/components/schemas/BwInfo" 400: $ref: "#/components/responses/400" 403: $ref: '#/components/responses/403' 404: $ref: '#/components/responses/404' post: tags: - "bwm" summary: "Create a bandwidthAllocation resource" description: "Used to create a bandwidthAllocation resource. Typically used in 'Register to Bandwidth Management Service' procedure as described in clause 6.2.1." operationId: "bandwidthAllocationPOST" parameters: [] requestBody: description: "Entity body in the request contains BwInfo to be created." required: true content: application/json: schema: $ref: '#/components/schemas/BwInfo' responses: 201: description: "Upon success, the HTTP response shall include a 'Location' HTTP header that contains the resource URI of the created resource." content: application/json: schema: $ref: "#/components/schemas/BwInfo" 400: $ref: "#/components/responses/400" 403: $ref: '#/components/responses/403' 404: $ref: '#/components/responses/404' /bw_allocations/{allocationId}: get: tags: - "bwm" summary: "Retrieve information about a specific bandwidthAllocation" description: "Retrieves information about a bandwidthAllocation resource. Typically used in 'Get configured bandwidth allocation from Bandwidth Management Service' procedure as described in clause 6.2.5." operationId: "bandwidthAllocationGET" parameters: - $ref: '#/components/parameters/Path.allocationId' responses: 200: description: "Used to indicate nonspecific success. The response body contains a representation of the resource." content: application/json: schema: $ref: "#/components/schemas/BwInfo" 400: $ref: "#/components/responses/400" 403: $ref: '#/components/responses/403' 404: $ref: '#/components/responses/404' put: tags: - "bwm" summary: "Update the information about a specific bandwidthAllocation" description: "Updates the information about a bandwidthAllocation resource. As specified in ETSI GS MEC 009 [6], the PUT HTTP method has 'replace' semantics." operationId: "bandwidthAllocationPUT" requestBody: description: "BwInfo with updated information is included as entity body of the request." required: true content: application/json: schema: $ref: '#/components/schemas/BwInfo' parameters: - $ref: '#/components/parameters/Path.allocationId' responses: 200: description: "Used to indicate nonspecific success. The response body contains a representation of the resource." content: application/json: schema: $ref: "#/components/schemas/BwInfo" 400: $ref: "#/components/responses/400" 403: $ref: '#/components/responses/403' 404: $ref: '#/components/responses/404' 412: $ref: '#/components/responses/412' patch: tags: - "bwm" summary: "Modify the information about a specific existing bandwidthAllocation by sending updates on the data structure" description: "Updates the information about a bandwidthAllocation resource. As specified in ETSI GS MEC 009 [6], the PATCH HTTP method updates a resource on top of the existing resource state by just including the changes ('deltas') in the request body." operationId: "bandwidthAllocationPATCH" requestBody: description: "Description of the changes to instruct the server how to modify the resource representation." required: true content: application/json: schema: $ref: '#/components/schemas/BwInfoDeltas' parameters: - $ref: '#/components/parameters/Path.allocationId' responses: 200: description: "Used to indicate nonspecific success. The response body contains a representation of the resource." content: application/json: schema: $ref: "#/components/schemas/BwInfo" 400: $ref: "#/components/responses/400" 403: $ref: '#/components/responses/403' 404: $ref: '#/components/responses/404' 412: $ref: '#/components/responses/412' delete: tags: - "bwm" summary: "Remove a specific bandwidthAllocation" description: "Used in 'Unregister from Bandwidth Management Service' procedure as described in clause 6.2.3." operationId: "bandwidthAllocationDELETE" parameters: - $ref: '#/components/parameters/Path.allocationId' responses: 204: $ref: '#/components/responses/204' 403: $ref: '#/components/responses/403' 404: $ref: '#/components/responses/404' components: responses: 204: description: "Upon success, a response 204 No Content without any response body is returned." 400: description: 'Bad Request : used to indicate that incorrect parameters were passed to the request.' content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' 403: description: 'Forbidden : operation is not allowed given the current status of the resource.' content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' 404: description: 'Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.' content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' 412: description: 'Precondition failed : used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts when using PUT' content: application/problem+json: schema: $ref: '#/components/schemas/ProblemDetails' parameters: Path.allocationId: name: allocationId in: "path" description: "Represents a bandwidth allocation instance" required: true schema: type: string Query.app_instance_id: name: app_instance_id in: "query" description: "A MEC application instance may use multiple app_instance_ids as an input parameter to query the bandwidth allocation of a list of MEC application instances. See note." required: false schema: type: array items: type: string Query.app_name: name: app_name in: "query" description: "A MEC application instance may use multiple app_names as an input parameter to query the bandwidth allocation of a list of MEC application instances. See note." required: false schema: type: array items: type: string Query.session_id: name: session_id in: "query" description: "A MEC application instance may use session_id as an input parameter to query the bandwidth allocation of a list of sessions. See note." required: false schema: type: array items: type: string schemas: BwInfo: properties: allocationDirection: description: 'The direction of the requested BW allocation: 00 = Downlink (towards the UE) 01 = Uplink (towards the application/session) 10 = Symmetrical' type: string x-etsi-mec-cardinality: '1' x-etsi-mec-origin-type: String appInsId: description: Application instance identifier type: string x-etsi-mec-cardinality: '1' x-etsi-mec-origin-type: String fixedAllocation: description: Size of requested fixed BW allocation in [bps] type: string x-etsi-mec-cardinality: '1' x-etsi-mec-origin-type: String fixedBWPriority: description: Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document enum: - SEE_DESCRIPTION type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Enum requestType: description: 'Numeric value (0 - 255) corresponding to specific type of consumer as following: 0 = APPLICATION_SPECIFIC_BW_ALLOCATION 1 = SESSION_SPECIFIC_BW_ALLOCATION' type: integer enum: - 0 - 1 x-etsi-mec-cardinality: '1' x-etsi-mec-origin-type: Enum_inlined 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 items: type: object properties: dstAddress: description: Destination address identity of session (including range) type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String dstPort: description: Destination port identity of session items: type: string minItems: 0 type: array x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: String protocol: description: Protocol number type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String sourceIp: description: Source address identity of session (including range) type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String sourcePort: description: Source port identity of session items: type: string minItems: 0 type: array x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: String minItems: 0 type: array x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: Structure (inlined) timeStamp: description: Time stamp to indicate when the corresponding information elements are sent properties: nanoSeconds: type: integer format: int32 description: The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC x-etsi-mec-cardinality: '1' x-etsi-mec-origin-type: Uint32 seconds: type: integer format: int32 description: The seconds part of the Time. Time is defined as Unixtime since January 1, 1970, 00:00:00 UTC x-etsi-mec-cardinality: '1' x-etsi-mec-origin-type: Uint32 required: - seconds - nanoSeconds type: object x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Structure (inlined) required: - appInsId - requestType - fixedAllocation - allocationDirection type: object x-etsi-ref: 7.2.2 BwInfoDeltas: properties: allocationDirection: description: 'The direction of the requested BW allocation: 00 = Downlink (towards the UE) 01 = Uplink (towards the application/session) 10 = Symmetrical' type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String appInsId: description: Application instance identifier type: string x-etsi-mec-cardinality: '1' x-etsi-mec-origin-type: String fixedAllocation: description: Size of requested fixed BW allocation in [bps] type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String fixedBWPriority: description: Indicates the allocation priority when dealing with several applications or sessions in parallel. Values are not defined in the present document enum: - SEE DESCRIPTION type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Enum_inlined requestType: description: 'Numeric value (0 - 255) corresponding to specific type of consumer as following: 0 = APPLICATION_SPECIFIC_BW_ALLOCATION 1 = SESSION_SPECIFIC_BW_ALLOCATION' type: string enum: - 0 - 1 x-etsi-mec-cardinality: '1' x-etsi-mec-origin-type: Enum_inlined 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 items: type: object properties: dstAddress: description: Destination address identity of session (including range) type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String dstPort: description: Destination port identity of session items: type: string minItems: 0 type: array x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: String protocol: description: Protocol number type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String sourceIp: description: Source address identity of session (including range) type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String sourcePort: description: 'Source port identity of session ' items: type: string minItems: 0 type: array x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: String minItems: 0 type: array x-etsi-mec-cardinality: 0..N x-etsi-mec-origin-type: Structure (inlined) required: - appInsId - requestType type: object x-etsi-ref: 7.2.3 ProblemDetails: properties: detail: description: A human-readable explanation specific to this occurrence of the problem type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String instance: description: A URI reference that identifies the specific occurrence of the problem format: uri type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: URI status: description: The HTTP status code for this occurrence of the problem format: int32 type: integer x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: Uint32 title: description: A short, human-readable summary of the problem type type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: String type: description: A URI reference according to IETF RFC 3986 that identifies the problem type format: uri type: string x-etsi-mec-cardinality: 0..1 x-etsi-mec-origin-type: URI type: object