Commit 09342c6f authored by Walter Featherstone's avatar Walter Featherstone

Added YAML & JSON based on MEC-014 0.0.9 draft

Change-Id: I73f072cfb241f9dbb8d66a268b6a3c873ee1e06a
Signed-off-by: Walter Featherstone's avatarfeatherstone <walter.featherstone@viavisolutions.com>
parent 997ae967
{
"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"
},
"description": "The ETSI MEC ISG MEC014 UE Identity API described using OpenAPI",
"version": "0.0.9",
"title": "UE Identity API",
"license": {
"name": "ETSI MEC",
"url": "TBD"
"name": "ETSI Forge copyright notice",
"url": "https://forge.etsi.org/etsi-forge-copyright-notice.txt"
}
},
"externalDocs": {
"description": "ETSI MEC015 V0.3.3 Bandwidth Management API",
"url": "https://docbox.etsi.org/ISG/MEC/70-Draft/0015BandMngtAPI"
"description": "ETSI GS MEC014 UE Identity API, V0.0.9",
"url": "https://docbox.etsi.org/ISG/MEC/70-Draft/0014UEidentityAPI"
},
"host": "127.0.0.1:8081",
"basePath": "/bwm/v1",
"basePath": "/uis/v1",
"schemes": [
"http",
"https"
......@@ -48,155 +43,61 @@
}
},
"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",
"Body.UeIdentityTagInfo": {
"name": "UeIdentityTagInfo",
"in": "body",
"description": "Description of the changes to instruct the server how to modify the resource representation. ",
"description": "information of UE identity tag used in UE Identity feature.",
"required": true,
"schema": {
"$ref": "#/definitions/BwInfoDeltas"
"$ref": "#/definitions/UeIdentityTagInfo"
}
},
"Path.AllocationId": {
"name": "allocationId",
"Path.AppInstanceId": {
"name": "appInstanceId",
"in": "path",
"description": "Represents a bandwidth allocation instance",
"description": "Represents a mobile edge application 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": {
"Path.UeIdentityTag": {
"name": "ueIdentityTag",
"in": "path",
"description": "Represents a UE",
"required": true,
"type": "string"
}
}
},
"paths": {
"/bw_allocations": {
"/{appInstanceId}/ue_identity_tag_info/{ueIdentityTag}": {
"get": {
"description": "This method retrieves information about a list of bandwidthAllocation resources",
"description": "retrieves information about a ueIdentityTagInfo resource",
"produces": [
"application/json"
],
"parameters": [
{
"$ref": "#/parameters/Query.AppInstanceId"
},
{
"$ref": "#/parameters/Query.AppName"
"$ref": "#/parameters/Path.AppInstanceId"
},
{
"$ref": "#/parameters/Query.SessionId"
"$ref": "#/parameters/Path.UeIdentityTag"
}
],
"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.",
"description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.",
"schema": {
"required": [
"bwInfo"
"UeIdentityTagInfo"
],
"properties": {
"bwInfo": {
"$ref": "#/definitions/BwInfo"
"UeIdentityTagInfo": {
"$ref": "#/definitions/UeIdentityTagInfo"
}
}
}
},
"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.",
"description": "Incorrect parameters were passed in the request.In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"schema": {
"properties": {
"ProblemDetails": {
......@@ -219,7 +120,7 @@
}
},
"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.",
"description": "The client provided a URI that cannot be mapped to a valid resource URL. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"schema": {
"properties": {
"ProblemDetails": {
......@@ -229,87 +130,39 @@
}
}
}
}
},
"/bw_allocations/{allocationId}": {
"get": {
"description": "This method retrieves information about a a bandwidthAllocation resource. ",
"put": {
"description": "registers/de-registers a UE identity tag in UE Identity Service ",
"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:\n - ProblemDetails\nproperties:\n ProblemDetails:\n $ref: '#/definitions/ProblemDetails'"
"$ref": "#/parameters/Path.AppInstanceId"
},
"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/Path.UeIdentityTag"
},
{
"$ref": "#/parameters/Body.BwInfo"
"$ref": "#/parameters/Body.UeIdentityTagInfo"
}
],
"responses": {
"200": {
"description": "Upon success, a response body containing data type describing the updated BwInfo is returned.",
"description": "Upon success, a response body containing data type describing the updated UeIdentityTagInfo is returned.",
"schema": {
"required": [
"bwInfo"
"UeIdentityTagInfo"
],
"properties": {
"bwInfo": {
"$ref": "#/definitions/BwInfo"
"UeIdentityTagInfo": {
"$ref": "#/definitions/UeIdentityTagInfo"
}
}
}
},
"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.",
"description": "Incorrect parameters were passed in the request.In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"schema": {
"properties": {
"ProblemDetails": {
......@@ -318,70 +171,8 @@
}
}
},
"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.",
"401": {
"description": "An erroneous or missing bearer token. More information should be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"schema": {
"properties": {
"ProblemDetails": {
......@@ -391,7 +182,7 @@
}
},
"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.",
"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"
......@@ -404,7 +195,7 @@
}
},
"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.",
"description": "The client provided a URI that cannot be mapped to a valid resource URL. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"schema": {
"properties": {
"ProblemDetails": {
......@@ -414,46 +205,7 @@
}
},
"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.",
"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": {
......@@ -510,168 +262,33 @@
"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": {
"UeIdentityTagInfo": {
"description": "information of UE identity tag used in UE Identity feature",
"type": "object",
"required": [
"seconds",
"nanoSeconds"
"ueIdentityTag",
"state"
],
"properties": {
"seconds": {
"$ref": "#/definitions/Seconds"
"ueIdentityTag": {
"$ref": "#/definitions/UeIdentityTag"
},
"nanoSeconds": {
"$ref": "#/definitions/NanoSeconds"
"state": {
"$ref": "#/definitions/State"
}
}
},
"AppInsId": {
"description": "application instance identifier",
"UeIdentityTag": {
"description": "Tag presented by ME Application to ME Platform",
"type": "string"
},
"RequestType": {
"State": {
"description": "Status of the resource ueIdentityTagInfo",
"type": "string",
"enum": [
"APPLICATION_SPECIFIC_BW_ALLOCATION",
"SESSION_SPECIFIC_BW_ALLOCATION"
"UNREGISTERED",
"REGISTERED"
]
},
"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"
}
}
}
\ No newline at end of file
swagger: '2.0'
info:
description: An initial attempt to describe the MEC UE Identity API using OpenAPI
version: 0.0.6
description: The ETSI MEC ISG MEC014 UE Identity API described using OpenAPI
version: 0.0.9
title: UE Identity API
termsOfService: TBD
contact:
name: TBD
url: TBD
license:
name: ETSI MEC
url: TBD
name: ETSI Forge copyright notice
url: 'https://forge.etsi.org/etsi-forge-copyright-notice.txt'
externalDocs:
description: ETSI MEC014 V0.0.6 UE Identity API
description: ETSI GS MEC014 UE Identity API, V0.0.9
url: 'https://docbox.etsi.org/ISG/MEC/70-Draft/0014UEidentityAPI'
host: '127.0.0.1:8081'
basePath: /uis/v1
......@@ -34,7 +30,7 @@ securityDefinitions:
all: Single oauth2 scope for API
parameters:
Body.UeIdentityTagInfo:
name: ueIdentityTagInfo
name: UeIdentityTagInfo
in: body
description: information of UE identity tag used in UE Identity feature.
required: true
......@@ -68,9 +64,9 @@ paths:
contains a representation of the resource.
schema:
required:
- ueIdentityTagInfo
- UeIdentityTagInfo
properties:
ueIdentityTagInfo:
UeIdentityTagInfo:
$ref: '#/definitions/UeIdentityTagInfo'
'400':
description: >-
......@@ -116,9 +112,9 @@ paths:
updated UeIdentityTagInfo is returned.
schema:
required:
- ueIdentityTagInfo
- UeIdentityTagInfo
properties:
ueIdentityTagInfo:
UeIdentityTagInfo:
$ref: '#/definitions/UeIdentityTagInfo'
'400':
description: >-
......@@ -217,7 +213,7 @@ definitions:
description: Tag presented by ME Application to ME Platform
type: string
State:
description: status of the resource ueIdentityTagInfo
description: Status of the resource ueIdentityTagInfo
type: string
enum:
- UNREGISTERED
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment