Newer
Older
"openapi": "3.0.0",
"info": {
"contact": {
"url": "https://forge.etsi.org/rep/mec/gs015-bandwith-mgmt-api"
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
"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": {
"$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"
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
}
},
"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": {
"$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": {
"$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"
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
"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"
}
}
}
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
"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": {
"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"
"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"
"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"
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
"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": {
"description": "The nanoseconds part of the Time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC",
"format": "uint32",
"type": "integer",
"x-etsi-mec-cardinality": "1",
"x-etsi-mec-origin-type": "Uint32"
},
"seconds": {
"format": "uint32",
"type": "integer",
"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"
"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"
"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"
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
"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)"
"appInsId",
"requestType"
"type": "object",
"x-etsi-ref": "7.2.3"
},
"ProblemDetails": {
"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"
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
"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": "uint32",
"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"