Newer
Older
"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": "BSD-3-Clause",
"url": "https://forge.etsi.org/legal-matters"
"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"
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
{
"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"
}
}
"/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"
}
}
},
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
"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,
},
"Query.AppInstanceId": {
"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 mobile edge application instances.",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
},
"Query.AppName": {
"name": "app_name",
"in": "query",
"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,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
},
"Query.SessionId": {
"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.",
"required": false,
"schema": {
"type": "array",
"items": {
"type": "string"
}
}
}
"requestBodies": {
"BwInfo": {
"description": "Bandwidth Allocation information",
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BwInfo"
}
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
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
}
}
},
"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"
}
"headers": {
"location": {
"description": "The resource URI of the created resource",
"schema": {
"type": "string",
"format": "uri"
}
}
}
},
"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"
}
},
"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"
},
"text/plain": {
"schema": {
"$ref": "#/components/schemas/Empty"
}
}
},
"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"
}
},
"text/plain": {
"schema": {
"$ref": "#/components/schemas/Empty"
}
}
},
"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"
}
}
}
},
"Error.404": {
"description": "Not Found. It is 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"
}
},
"text/plain": {
"schema": {
"$ref": "#/components/schemas/Empty"
}
}
},
"Error.412": {
"description": "Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
},
"text/plain": {
"schema": {
"$ref": "#/components/schemas/Empty"
}
}
}
},
"securitySchemes": {
"OauthSecurity": {
"type": "oauth2",
"flows": {
"clientCredentials": {
"tokenUrl": "https://oauth.exampleAPI/token",
"scopes": {
"all": "Single oauth2 scope for API"
}
}
}
}
},
"schemas": {
"Empty": {
"description": "Empty schema"
},
"ProblemDetails": {
"type": "object",
"properties": {
"type": {
},
"title": {
"$ref": "#/components/schemas/Problem.title"
},
"status": {
"$ref": "#/components/schemas/Problem.status"
},
"detail": {
"$ref": "#/components/schemas/Problem.detail"
},
"instance": {
"$ref": "#/components/schemas/Problem.instance"
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
}
}
},
"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": {
},
"appInsId": {
},
"requestType": {
},
"sessionFilter": {
"$ref": "#/components/schemas/SessionFilter"
},
"fixedBWPriority": {
"$ref": "#/components/schemas/FixedBWPriority"
},
"fixedAllocation": {
"$ref": "#/components/schemas/FixedAllocation"
},
"allocationDirection": {
"$ref": "#/components/schemas/AllocationDirection"
}
}
},
"BwInfoDeltas": {
"description": "Conform to JSON merge patch format and processing rules specified IETF RFC 7396, this type represents the attributes whose value are allowed to be updated with HTTP PATCH method in content format JSON",
"type": "object",
"properties": {
"appInsId": {
},
"requestType": {
},
"sessionFilter": {
"$ref": "#/components/schemas/SessionFilter"
},
"fixedBWPriority": {
"$ref": "#/components/schemas/FixedBWPriority"
},
"fixedAllocation": {
"$ref": "#/components/schemas/FixedAllocation"
},
"allocationDirection": {
"$ref": "#/components/schemas/AllocationDirection"
}
}
},
"TimeStamp": {
"type": "object",
"required": [
"seconds",
"nanoSeconds"
],
"properties": {
"seconds": {
},
"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"
],
"example": "APPLICATION_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": {
},
"sourcePort": {
},
"dstAddress": {
},
"dstPort": {
},
"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"
}