Commit e519a6e9 authored by Walter Featherstone's avatar Walter Featherstone

Added YAML & JSON from MEC(17)000363

Change-Id: Ia28761483b69a9b054ec709997e7beeb9132e446
Signed-off-by: Walter Featherstone's avatarfeatherstone <walter.featherstone@viavisolutions.com>
parent f14c8a6d
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
externalDocs:
description: ETSI MEC015 V0.3.3 Bandwidth Management API
url: 'https://docbox.etsi.org/ISG/MEC/70-Draft/0015BandMngtAPI'
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 bandwitdth 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: >-
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'
/bw_allocations/{allocationId}:
get:
description: >-
This method retrieves information about a a 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 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 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: 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:
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
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: >-
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
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
{
"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"
}
},
"externalDocs": {
"description": "ETSI MEC015 V0.3.3 Bandwidth Management API",
"url": "https://docbox.etsi.org/ISG/MEC/70-Draft/0015BandMngtAPI"
},
"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 bandwitdth 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": "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"
}
}
}
}
}
}
},
"/bw_allocations/{allocationId}": {
"get": {
"description": "This method retrieves information about a a 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.",