From 997ae9676562a2919a8635d54c1510aaf80ba5e4 Mon Sep 17 00:00:00 2001 From: featherstone Date: Tue, 18 Jul 2017 10:32:02 +0100 Subject: [PATCH] Added YAML & JSON from MEC(17)000362r1 Change-Id: I5ffe0507ea01fa1dc5ba5c548e201f33bd072177 Signed-off-by: featherstone --- UEidentityAPI.json | 677 +++++++++++++++++++++++++++++++++++++++++++++ UEidentityAPI.yaml | 224 +++++++++++++++ 2 files changed, 901 insertions(+) create mode 100644 UEidentityAPI.json create mode 100644 UEidentityAPI.yaml diff --git a/UEidentityAPI.json b/UEidentityAPI.json new file mode 100644 index 0000000..711e578 --- /dev/null +++ b/UEidentityAPI.json @@ -0,0 +1,677 @@ +{ + "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:\n - ProblemDetails\nproperties:\n ProblemDetails:\n $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" + } + } +} diff --git a/UEidentityAPI.yaml b/UEidentityAPI.yaml new file mode 100644 index 0000000..6d6cb55 --- /dev/null +++ b/UEidentityAPI.yaml @@ -0,0 +1,224 @@ +swagger: '2.0' +info: + description: An initial attempt to describe the MEC UE Identity API using OpenAPI + version: 0.0.6 + title: UE Identity API + termsOfService: TBD + contact: + name: TBD + url: TBD + license: + name: ETSI MEC + url: TBD +externalDocs: + description: ETSI MEC014 V0.0.6 UE Identity API + url: 'https://docbox.etsi.org/ISG/MEC/70-Draft/0014UEidentityAPI' +host: '127.0.0.1:8081' +basePath: /uis/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.UeIdentityTagInfo: + name: ueIdentityTagInfo + in: body + description: information of UE identity tag used in UE Identity feature. + required: true + schema: + $ref: '#/definitions/UeIdentityTagInfo' + Path.AppInstanceId: + name: appInstanceId + in: path + description: Represents a mobile edge application instance + required: true + type: string + Path.UeIdentityTag: + name: ueIdentityTag + in: path + description: Represents a UE + required: true + type: string +paths: + '/{appInstanceId}/ue_identity_tag_info/{ueIdentityTag}': + get: + description: retrieves information about a ueIdentityTagInfo resource + produces: + - application/json + parameters: + - $ref: '#/parameters/Path.AppInstanceId' + - $ref: '#/parameters/Path.UeIdentityTag' + responses: + '200': + description: >- + It is used to indicate nonspecific success. The response body + contains a representation of the resource. + schema: + required: + - ueIdentityTagInfo + properties: + ueIdentityTagInfo: + $ref: '#/definitions/UeIdentityTagInfo' + '400': + 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: + $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: >- + 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: + $ref: '#/definitions/ProblemDetails' + put: + description: 'registers/de-registers a UE identity tag in UE Identity Service ' + produces: + - application/json + parameters: + - $ref: '#/parameters/Path.AppInstanceId' + - $ref: '#/parameters/Path.UeIdentityTag' + - $ref: '#/parameters/Body.UeIdentityTagInfo' + responses: + '200': + description: >- + Upon success, a response body containing data type describing the + updated UeIdentityTagInfo is returned. + schema: + required: + - ueIdentityTagInfo + properties: + ueIdentityTagInfo: + $ref: '#/definitions/UeIdentityTagInfo' + '400': + 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: + $ref: '#/definitions/ProblemDetails' + '401': + description: >- + An erroneous or missing bearer token. More information should be + provided in the "detail" attribute of the "ProblemDetails" + structure. + 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: >- + 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: + $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' +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 + UeIdentityTagInfo: + description: information of UE identity tag used in UE Identity feature + type: object + required: + - ueIdentityTag + - state + properties: + ueIdentityTag: + $ref: '#/definitions/UeIdentityTag' + state: + $ref: '#/definitions/State' + UeIdentityTag: + description: Tag presented by ME Application to ME Platform + type: string + State: + description: status of the resource ueIdentityTagInfo + type: string + enum: + - UNREGISTERED + - REGISTERED -- GitLab