diff --git a/MecAppSupportApi.json b/MecAppSupportApi.json index 1ec697867c04007dbcd9523d635d68d3bc689bd2..5c091285416076713bc8e1e694545a41b39472ae 100644 --- a/MecAppSupportApi.json +++ b/MecAppSupportApi.json @@ -1,13 +1,5 @@ { - "openapi": "3.0.2", - "servers": [ - { - "url": "http://127.0.0.1:8081/mec_app_support/v1" - }, - { - "url": "https://127.0.0.1:8081/mec_app_support/v1" - } - ], + "openapi": "3.1.0", "info": { "title": "MEC Application Support API", "version": "2.1.1", @@ -47,441 +39,1607 @@ "name": "callbacks" } ], + "jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema", + "servers": [ + { + "url": "http://127.0.0.1:8081/mec_app_support/v1", + "variables": {} + }, + { + "url": "https://127.0.0.1:8081/mec_app_support/v1", + "variables": {} + } + ], "paths": { "/applications/{appInstanceId}/traffic_rules": { - "parameters": [ - { - "$ref": "#/components/parameters/Path.AppInstanceId" - } - ], "get": { - "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.", - "operationId": "ApplicationsTrafficRules_GET", "tags": [ "appTrafficRules" ], + "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.", + "operationId": "ApplicationsTrafficRules_GET", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { - "$ref": "#/components/responses/ApplicationsTrafficRules.200" + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "minItems": 0, + "type": "array", + "items": { + "$ref": "#/components/schemas/TrafficRule" + }, + "description": "", + "examples": [ + [ + { + "trafficRuleId": "TrafficRule123", + "serName": "ExampleService", + "filterType": "FLOW", + "priority": 1, + "trafficFilter": [ + { + "srcAddress": [ + "192.168.2.0/24", + "192.168.3.0/24" + ], + "dstAddress": [ + "192.127.4.100/32" + ], + "dstPort": [ + "80" + ] + } + ], + "action": "FORWARD_DECAPSULATED", + "dstInterface": { + "interfaceType": "IP", + "dstIpAddress": "20.1.1.1" + }, + "state": "ACTIVE" + } + ] + ], + "contentMediaType": "application/json" + }, + "examples": { + "TrafficRules": { + "value": [ + { + "trafficRuleId": "TrafficRule123", + "serName": "ExampleService", + "filterType": "FLOW", + "priority": 1, + "trafficFilter": [ + { + "srcAddress": [ + "192.168.2.0/24", + "192.168.3.0/24" + ], + "dstAddress": [ + "192.127.4.100/32" + ], + "dstPort": [ + "80" + ] + } + ], + "action": "FORWARD_DECAPSULATED", + "dstInterface": { + "interfaceType": "IP", + "dstIpAddress": "20.1.1.1" + }, + "state": "ACTIVE" + } + ] + } + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } - } + }, + "deprecated": false + }, + "parameters": [] }, "/applications/{appInstanceId}/traffic_rules/{trafficRuleId}": { - "parameters": [ - { - "$ref": "#/components/parameters/Path.AppInstanceId" - }, - { - "$ref": "#/components/parameters/Path.TrafficRuleId" - } - ], "get": { - "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.", - "operationId": "ApplicationsTrafficRule_GET", "tags": [ "appTrafficRules" ], + "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.", + "operationId": "ApplicationsTrafficRule_GET", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + }, + { + "name": "trafficRuleId", + "in": "path", + "description": "Represents a traffic rule.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { - "$ref": "#/components/responses/ApplicationsTrafficRule.200" + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TrafficRule" + }, + "examples": { + "TrafficRule": { + "value": { + "trafficRuleId": "TrafficRule123", + "serName": "ExampleService", + "filterType": "FLOW", + "priority": 1, + "trafficFilter": [ + { + "srcAddress": [ + "192.168.2.0/24", + "192.168.3.0/24" + ], + "dstAddress": [ + "192.127.4.100/32" + ], + "dstPort": [ + "80" + ] + } + ], + "action": "FORWARD_DECAPSULATED", + "dstInterface": { + "interfaceType": "IP", + "dstIpAddress": "20.1.1.1" + }, + "state": "ACTIVE" + } + } + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } + }, + "deprecated": false }, "put": { - "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.", - "operationId": "ApplicationsTrafficRule_PUT", "tags": [ "appTrafficRules" ], + "description": "This method retrieves information about all the traffic rules associated with a MEC application instance.", + "operationId": "ApplicationsTrafficRule_PUT", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + }, + { + "name": "trafficRuleId", + "in": "path", + "description": "Represents a traffic rule.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "One or more updated attributes that are allowed to be changed", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TrafficRule" + } + } + }, + "required": true + }, "responses": { "200": { - "$ref": "#/components/responses/ApplicationsTrafficRule.200" + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TrafficRule" + }, + "examples": { + "TrafficRule": { + "value": { + "trafficRuleId": "TrafficRule123", + "serName": "ExampleService", + "filterType": "FLOW", + "priority": 1, + "trafficFilter": [ + { + "srcAddress": [ + "192.168.2.0/24", + "192.168.3.0/24" + ], + "dstAddress": [ + "192.127.4.100/32" + ], + "dstPort": [ + "80" + ] + } + ], + "action": "FORWARD_DECAPSULATED", + "dstInterface": { + "interfaceType": "IP", + "dstIpAddress": "20.1.1.1" + }, + "state": "ACTIVE" + } + } + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "412": { - "$ref": "#/components/responses/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.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } }, - "requestBody": { - "$ref": "#/components/requestBodies/ApplicationsTrafficRule" - } - } + "deprecated": false + }, + "parameters": [] }, "/applications/{appInstanceId}/dns_rules": { - "parameters": [ - { - "$ref": "#/components/parameters/Path.AppInstanceId" - } - ], "get": { - "description": "This method retrieves information about all the DNS rules associated with a MEC application instance.", - "operationId": "ApplicationsDnsRules_GET", "tags": [ "appDnsRules" ], + "description": "This method retrieves information about all the DNS rules associated with a MEC application instance.", + "operationId": "ApplicationsDnsRules_GET", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { - "$ref": "#/components/responses/ApplicationsDnsRules.200" + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "minItems": 0, + "type": "array", + "items": { + "$ref": "#/components/schemas/DnsRule" + }, + "description": "", + "examples": [ + [ + { + "dnsRuleId": "DnsRule1", + "domainName": "www.example.com", + "ipAddressType": "IP_V4", + "ipAddress": "146.241.7.3", + "ttl": 300, + "state": "ACTIVE" + }, + { + "dnsRuleId": "DnsRule2", + "domainName": "www.example.com", + "ipAddressType": "IP_V4", + "ipAddress": "146.241.7.4", + "ttl": 300, + "state": "INACTIVE" + } + ] + ], + "contentMediaType": "application/json" + }, + "examples": { + "DnsRules": { + "value": [ + { + "dnsRuleId": "DnsRule1", + "domainName": "www.example.com", + "ipAddressType": "IP_V4", + "ipAddress": "146.241.7.3", + "ttl": 300, + "state": "ACTIVE" + }, + { + "dnsRuleId": "DnsRule2", + "domainName": "www.example.com", + "ipAddressType": "IP_V4", + "ipAddress": "146.241.7.4", + "ttl": 300, + "state": "INACTIVE" + } + ] + } + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } - } + }, + "deprecated": false + }, + "parameters": [] }, "/applications/{appInstanceId}/dns_rules/{dnsRuleId}": { - "parameters": [ - { - "$ref": "#/components/parameters/Path.AppInstanceId" - }, - { - "$ref": "#/components/parameters/Path.DnsRuleId" - } - ], "get": { - "description": "This method retrieves information about a DNS rule associated with a MEC application instance.", - "operationId": "ApplicationsDnsRule_GET", "tags": [ "appDnsRules" ], + "description": "This method retrieves information about a DNS rule associated with a MEC application instance.", + "operationId": "ApplicationsDnsRule_GET", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + }, + { + "name": "dnsRuleId", + "in": "path", + "description": "Represents a DNS rule.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { - "$ref": "#/components/responses/ApplicationsDnsRule.200" + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DnsRule" + }, + "examples": { + "DnsRule": { + "value": { + "dnsRuleId": "DnsRule1", + "domainName": "www.example.com", + "ipAddressType": "IP_V4", + "ipAddress": "146.241.7.3", + "ttl": 300, + "state": "ACTIVE" + } + } + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } + }, + "deprecated": false }, "put": { - "description": "This method activates, de-activates or updates a traffic rule.", - "operationId": "ApplicationsDnsRule_PUT", "tags": [ "appDnsRules" ], + "description": "This method activates, de-activates or updates a traffic rule.", + "operationId": "ApplicationsDnsRule_PUT", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + }, + { + "name": "dnsRuleId", + "in": "path", + "description": "Represents a DNS rule.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "The updated state is included in the entity body of the request.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DnsRule" + } + } + }, + "required": true + }, "responses": { "200": { - "$ref": "#/components/responses/ApplicationsDnsRule.200" + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/DnsRule" + }, + "examples": { + "DnsRule": { + "value": { + "dnsRuleId": "DnsRule1", + "domainName": "www.example.com", + "ipAddressType": "IP_V4", + "ipAddress": "146.241.7.3", + "ttl": 300, + "state": "ACTIVE" + } + } + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "412": { - "$ref": "#/components/responses/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.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } }, - "requestBody": { - "$ref": "#/components/requestBodies/ApplicationsDnsRule" - } - } + "deprecated": false + }, + "parameters": [] }, "/applications/{appInstanceId}/subscriptions": { - "parameters": [ - { - "$ref": "#/components/parameters/Path.AppInstanceId" - } - ], "get": { - "description": "The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains entity body with all the subscriptions for the requestor.", - "operationId": "ApplicationsSubscriptions_GET", "tags": [ "appSubscriptions" ], + "description": "The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains entity body with all the subscriptions for the requestor.", + "operationId": "ApplicationsSubscriptions_GET", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { - "$ref": "#/components/responses/ApplicationsSubscriptions.200" + "description": "Upon success, a response body containing the list of links to the requested subscriptions is returned.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MecAppSuptApiSubscriptionLinkList" + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } + }, + "deprecated": false }, "post": { - "description": "The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains entity body describing the created subscription.", - "operationId": "ApplicationsSubscriptions_POST", "tags": [ "appSubscriptions" ], + "description": "The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains entity body describing the created subscription.", + "operationId": "ApplicationsSubscriptions_POST", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "Entity body in the request contains a subscription to the MEC application termination notifications that is to be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppTerminationNotificationSubscription" + } + } + }, + "required": true + }, "responses": { "201": { - "$ref": "#/components/responses/ApplicationsSubscriptions.201" + "description": "Entity body in the request contains a subscription to the MEC service availability notifications that is to be created.", + "headers": { + "location": { + "description": "The resource URI of the created resource", + "content": { + "text/plain": { + "schema": { + "type": "string", + "description": "The resource URI of the created resource", + "contentMediaType": "text/plain" + } + } + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppTerminationNotificationSubscription" + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } }, - "requestBody": { - "$ref": "#/components/requestBodies/ApplicationsSubscriptions" - }, + "deprecated": false, "callbacks": { - "appTerminationNotification": { - "$ref": "#/components/callbacks/AppTerminationNotification" + "AppTerminationNotification": { + "{$request.body#/callbackUri}": { + "post": { + "description": "Represents the information that the MEP notifies the subscribed application instance about the corresponding application instance termination/stop'", + "operationId": "AppTerminationNotification_POST", + "tags": [ + "callbacks" + ], + "requestBody": { + "$ref": "#/components/requestBodies/AppTerminationNotification" + }, + "responses": { + "200": { + "description": "Expected responses from callback consumer, if it accepts the callback" + } + } + } + } } } - } + }, + "parameters": [] }, "/applications/{appInstanceId}/subscriptions/{subscriptionId}": { - "parameters": [ - { - "$ref": "#/components/parameters/Path.AppInstanceId" - }, - { - "$ref": "#/components/parameters/Path.SubscriptionId" - } - ], "get": { - "description": "The GET method requests information about a subscription for this requestor. Upon success, the response contains entity body with the subscription for the requestor.", - "operationId": "ApplicationsSubscription_GET", "tags": [ "appSubscriptions" ], + "description": "The GET method requests information about a subscription for this requestor. Upon success, the response contains entity body with the subscription for the requestor.", + "operationId": "ApplicationsSubscription_GET", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + }, + { + "name": "subscriptionId", + "in": "path", + "description": "Represents a subscription to the notifications from the MEC platform.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], "responses": { "200": { - "$ref": "#/components/responses/ApplicationsSubscription.200" + "description": "Upon success, a response body containing the requested subscription is returned.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppTerminationNotificationSubscription" + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } + }, + "deprecated": false }, "delete": { - "description": "This method deletes a mecAppSuptApiSubscription. This method is typically used in \"Unsubscribing from service availability event notifications\" procedure.", - "operationId": "ApplicationsSubscription_DELETE", "tags": [ "appSubscriptions" ], - "responses": { - "204": { - "description": "No Content" - }, - "403": { - "$ref": "#/components/responses/Error.403" - }, - "404": { - "$ref": "#/components/responses/Error.404" + "description": "This method deletes a mecAppSuptApiSubscription. This method is typically used in \"Unsubscribing from service availability event notifications\" procedure.", + "operationId": "ApplicationsSubscription_DELETE", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + }, + { + "name": "subscriptionId", + "in": "path", + "description": "Represents a subscription to the notifications from the MEC platform.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } } - } - } + ], + "responses": { + "204": { + "description": "No Content", + "headers": {}, + "content": {} + }, + "403": { + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + } + }, + "deprecated": false + }, + "parameters": [] }, "/applications/{appInstanceId}/confirm_termination": { - "parameters": [ - { - "$ref": "#/components/parameters/Path.AppInstanceId" - } - ], "post": { - "description": "This method is used to confirm the application level termination of an application instance.", - "operationId": "ApplicationsConfirmTermination_POST", "tags": [ "appConfirmTermination" ], + "description": "This method is used to confirm the application level termination of an application instance.", + "operationId": "ApplicationsConfirmTermination_POST", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppTerminationConfirmation" + } + } + }, + "required": false + }, "responses": { "204": { - "description": "No Content" + "description": "No Content", + "headers": {}, + "content": {} }, "401": { - "$ref": "#/components/responses/Error.401" + "description": "Unauthorized. It is used when the client did not submit the appropriate credentials.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "409": { - "$ref": "#/components/responses/Error.409" + "description": "Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "429": { - "$ref": "#/components/responses/Error.429" + "description": "Too Many Requests. It is used when a rate limiter has triggered.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } }, - "requestBody": { - "$ref": "#/components/requestBodies/ApplicationsConfirmTermination" - } - } + "deprecated": false + }, + "parameters": [] }, "/applications/{appInstanceId}/confirm_ready": { - "parameters": [ - { - "$ref": "#/components/parameters/Path.AppInstanceId" - } - ], "post": { - "description": "This method may be used by the MEC application instance to notify the MEC platform that it is up and running. ", - "operationId": "ApplicationsConfirmReady_POST", "tags": [ "appConfirmReady" ], + "description": "This method may be used by the MEC application instance to notify the MEC platform that it is up and running. ", + "operationId": "ApplicationsConfirmReady_POST", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/AppReadyConfirmation" + } + } + }, + "required": false + }, "responses": { "204": { - "description": "No Content" + "description": "No Content", + "headers": {}, + "content": {} }, "401": { - "$ref": "#/components/responses/Error.401" + "description": "Unauthorized. It is used when the client did not submit the appropriate credentials.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "409": { - "$ref": "#/components/responses/Error.409" + "description": "Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "429": { - "$ref": "#/components/responses/Error.429" + "description": "Too Many Requests. It is used when a rate limiter has triggered.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } }, - "requestBody": { - "$ref": "#/components/requestBodies/ApplicationsConfirmReady" - } - } + "deprecated": false + }, + "parameters": [] }, "/timing/timing_caps": { "get": { - "description": "This method retrieves the information of the platform's timing capabilities which corresponds to the timing capabilities query", - "operationId": "TimingCaps_GET", "tags": [ "timing" ], + "description": "This method retrieves the information of the platform's timing capabilities which corresponds to the timing capabilities query", + "operationId": "TimingCaps_GET", + "parameters": [], "responses": { "200": { - "$ref": "#/components/responses/TimingCaps.200" + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/TimingCaps" + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } - } + }, + "deprecated": false + }, + "parameters": [] }, "/timing/current_time": { "get": { - "description": "This method retrieves the information of the platform's current time which corresponds to the get platform time procedure", - "operationId": "TimingCurrentTime_GET", "tags": [ "timing" ], + "description": "This method retrieves the information of the platform's current time which corresponds to the get platform time procedure", + "operationId": "TimingCurrentTime_GET", + "parameters": [], "responses": { "200": { - "$ref": "#/components/responses/TimingCurrentTime.200" + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/CurrentTime" + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } - } + }, + "deprecated": false + }, + "parameters": [] } }, "components": { "schemas": { - "Empty": { - "description": "Empty schema" - }, "AppReadyConfirmation": { - "description": "This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running.", - "type": "object", + "title": "AppReadyConfirmation", "required": [ "indication" ], + "type": "object", "properties": { "indication": { - "$ref": "#/components/schemas/ReadyIndicationType" + "const": "READY", + "type": "string", + "description": "Indication about the MEC application instance.", + "examples": [ + "READY" + ] } - } + }, + "description": "This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running." }, "AppTerminationConfirmation": { - "description": "This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop.", - "type": "object", + "title": "AppTerminationConfirmation", "required": [ "operationAction" ], + "type": "object", "properties": { "operationAction": { "$ref": "#/components/schemas/OperationActionType" } - } + }, + "description": "This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop." }, "AppTerminationNotification.Links": { - "description": "Object containing hyperlinks related to the resource.", - "type": "object", + "title": "AppTerminationNotification.Links", "required": [ "subscription" ], + "type": "object", "properties": { "subscription": { "$ref": "#/components/schemas/LinkType" @@ -489,140 +1647,127 @@ "confirmTermination": { "$ref": "#/components/schemas/LinkType.ConfirmTermination" } - } - }, - "AppTerminationNotification.MaxGracefulTimeout": { - "description": "Maximum timeout value in seconds for graceful termination or graceful stop of an application instance.", - "type": "integer", - "format": "uint32", - "example": 10 - }, - "AppTerminationNotification.NotificationType": { - "description": "Shall be set to AppTerminationNotification.", - "type": "string", - "example": "AppTerminationNotification" + }, + "description": "Object containing hyperlinks related to the resource." }, "AppTerminationNotification": { - "description": "This type represents the information that the MEC platform notifies the subscribed application instance about the corresponding application instance termination/stop.", - "type": "object", + "title": "AppTerminationNotification", "required": [ "notificationType", "operationAction", "maxGracefulTimeout", "_links" ], + "type": "object", "properties": { "notificationType": { - "$ref": "#/components/schemas/AppTerminationNotification.NotificationType" + "type": "string", + "description": "Shall be set to AppTerminationNotification.", + "examples": [ + "AppTerminationNotification" + ] }, "operationAction": { "$ref": "#/components/schemas/OperationActionType" }, "maxGracefulTimeout": { - "$ref": "#/components/schemas/AppTerminationNotification.MaxGracefulTimeout" + "type": "integer", + "description": "Maximum timeout value in seconds for graceful termination or graceful stop of an application instance.", + "contentEncoding": "int32", + "examples": [ + 10 + ] }, "_links": { "$ref": "#/components/schemas/AppTerminationNotification.Links" } - } - }, - "AppTerminationNotificationSubscription.AppInstanceId": { - "description": "It is used as the filtering criterion for the subscribed events.", - "type": "string", - "example": "ID1" - }, - "AppTerminationNotificationSubscription.CallbackReference": { - "description": "URI selected by the MEC application instance to receive notifications on the subscribed MEC application instance management information. This shall be included in both the request and the response.", - "type": "string", - "format": "uri" + }, + "description": "This type represents the information that the MEC platform notifies the subscribed application instance about the corresponding application instance termination/stop." }, "AppTerminationNotificationSubscription": { - "description": "This type represents the information that the MEC platform notifies the subscribed application instance about the corresponding application instance termination/stop.", - "type": "object", + "title": "AppTerminationNotificationSubscription", "required": [ "subscriptionType", "callbackReference", "_links", "appInstanceId" ], + "type": "object", "properties": { "subscriptionType": { - "$ref": "#/components/schemas/AppTerminationNotificationSubscription.SubscriptionType" + "type": "string", + "description": "Shall be set to AppTerminationNotificationSubscription.", + "examples": [ + "AppTerminationNotificationSubscription" + ] }, "callbackReference": { - "$ref": "#/components/schemas/AppTerminationNotificationSubscription.CallbackReference" + "type": "string", + "description": "URI selected by the MEC application instance to receive notifications on the subscribed MEC application instance management information. This shall be included in both the request and the response." }, "_links": { "$ref": "#/components/schemas/Self" }, "appInstanceId": { - "$ref": "#/components/schemas/AppTerminationNotificationSubscription.AppInstanceId" + "type": "string", + "description": "It is used as the filtering criterion for the subscribed events.", + "examples": [ + "ID1" + ] } - } - }, - "AppTerminationNotificationSubscription.SubscriptionType": { - "description": "Shall be set to AppTerminationNotificationSubscription.", - "type": "string", - "example": "AppTerminationNotificationSubscription" + }, + "description": "This type represents the information that the MEC platform notifies the subscribed application instance about the corresponding application instance termination/stop." }, "CurrentTime": { - "description": "This type represents the information provided by the MEC platform in response to the Get Platform Time Request message.", - "type": "object", + "title": "CurrentTime", "required": [ - "nanoSeconds", "seconds", + "nanoSeconds", "timeSourceStatus" ], + "type": "object", "properties": { "seconds": { "type": "integer", - "format": "uint32", "description": "The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC", - "example": 1577836800 + "contentEncoding": "int32", + "examples": [ + 1577836800 + ] }, "nanoSeconds": { "type": "integer", - "format": "uint32", "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC", - "example": 0 + "contentEncoding": "int32", + "examples": [ + 0 + ] }, "timeSourceStatus": { - "type": "string", - "enum": [ - "TRACEABLE", - "NONTRACEABLE" - ], - "description": "Platform Time Source status. 1 = TRACEABLE - time source is locked to the UTC time source. 2 = NONTRACEABLE - time source is not locked to the UTC time source", - "example": "TRACEABLE" + "$ref": "#/components/schemas/TimeSourceStatus" } - } + }, + "description": "This type represents the information provided by the MEC platform in response to the Get Platform Time Request message." }, "DestinationInterface.InterfaceType": { - "description": "Type of the interface", - "type": "string", + "title": "DestinationInterface.InterfaceType", "enum": [ "TUNNEL", "MAC", "IP" ], - "example": "TUNNEL" - }, - "DestinationInterface.IpAddress": { - "description": "IP address of the remote destination", - "type": "string", - "example": "192.0.2.0" - }, - "DestinationInterface.MacAddress": { - "description": "Source address identifies the MAC address of the interface", "type": "string", - "example": "02-00-00-00-00-00" + "description": "Type of the interface", + "examples": [ + "TUNNEL" + ] }, "DestinationInterface": { - "description": "This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided.", - "type": "object", + "title": "DestinationInterface", "required": [ "interfaceType" ], + "type": "object", "properties": { "interfaceType": { "$ref": "#/components/schemas/DestinationInterface.InterfaceType" @@ -631,58 +1776,55 @@ "$ref": "#/components/schemas/TunnelInfo" }, "srcMacAddress": { - "$ref": "#/components/schemas/DestinationInterface.MacAddress" + "type": "string", + "description": "Source address identifies the MAC address of the interface", + "examples": [ + "02-00-00-00-00-00" + ] }, "dstMacAddress": { - "$ref": "#/components/schemas/DestinationInterface.MacAddress" + "type": "string", + "description": "Source address identifies the MAC address of the interface", + "examples": [ + "02-00-00-00-00-00" + ] }, "dstIpAddress": { - "$ref": "#/components/schemas/DestinationInterface.IpAddress" + "type": "string", + "description": "IP address of the remote destination", + "examples": [ + "192.0.2.0" + ] } - } - }, - "DnsRule.DomainName": { - "description": "FQDN resolved by the DNS rule", - "type": "string", - "example": "www.example.com" - }, - "DnsRule.Id": { - "description": "Identifies the DNS Rule", - "type": "string", - "example": "dnsRule1" - }, - "DnsRule.IpAddress": { - "description": "IP address associated with the FQDN resolved by the DNS rule", - "type": "string", - "example": "192.0.2.0" + }, + "description": "This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided." }, "DnsRule.IpAddressType": { - "description": "IP address type", - "type": "string", + "title": "DnsRule.IpAddressType", "enum": [ "IP_V6", "IP_V4" ], - "example": "IP_V6" + "type": "string", + "description": "IP address type", + "examples": [ + "IP_V6" + ] }, "DnsRule.State": { - "description": "DNS rule state. This attribute may be updated using HTTP PUT method", - "type": "string", + "title": "DnsRule.State", "enum": [ "ACTIVE", "INACTIVE" ], - "example": "ACTIVE" - }, - "DnsRule.Ttl": { - "description": "Time to live value", - "type": "integer", - "format": "uint32", - "example": "?" + "type": "string", + "description": "DNS rule state. This attribute may be updated using HTTP PUT method", + "examples": [ + "ACTIVE" + ] }, "DnsRule": { - "description": "This type represents the general information of a DNS rule.", - "type": "object", + "title": "DnsRule", "required": [ "dnsRuleId", "domainName", @@ -690,240 +1832,205 @@ "ipAddress", "state" ], + "type": "object", "properties": { "dnsRuleId": { - "$ref": "#/components/schemas/DnsRule.Id" + "type": "string", + "description": "Identifies the DNS Rule", + "examples": [ + "dnsRule1" + ] }, "domainName": { - "$ref": "#/components/schemas/DnsRule.DomainName" + "type": "string", + "description": "FQDN resolved by the DNS rule", + "examples": [ + "www.example.com" + ] }, "ipAddressType": { "$ref": "#/components/schemas/DnsRule.IpAddressType" }, "ipAddress": { - "$ref": "#/components/schemas/DnsRule.IpAddress" + "type": "string", + "description": "IP address associated with the FQDN resolved by the DNS rule", + "examples": [ + "192.0.2.0" + ] }, "ttl": { - "$ref": "#/components/schemas/DnsRule.Ttl" + "type": "integer", + "description": "Time to live value", + "contentEncoding": "int32" }, "state": { "$ref": "#/components/schemas/DnsRule.State" } - } + }, + "description": "This type represents the general information of a DNS rule." }, "LinkType": { - "description": "This type represents a type of link and may be referenced from data structures", + "title": "LinkType", "type": "object", "properties": { "href": { - "$ref": "#/components/schemas/Href" + "type": "string", + "description": "URI referring to a resource", + "examples": [ + "/mecAppSuptApi/example" + ] } - } + }, + "description": "This type represents a type of link and may be referenced from data structures" }, "LinkType.ConfirmTermination": { - "description": "Link to the task resource where to confirm termination in case the application is ready to be terminated before expiry of the timeout.", + "title": "LinkType.ConfirmTermination", "type": "object", "properties": { "href": { - "$ref": "#/components/schemas/Href" + "type": "string", + "description": "URI referring to a resource", + "examples": [ + "/mecAppSuptApi/example" + ] } - } - }, - "Href": { - "description": "URI referring to a resource", - "type": "string", - "format": "uri", - "example": "/mecAppSuptApi/example" + }, + "description": "Link to the task resource where to confirm termination in case the application is ready to be terminated before expiry of the timeout." }, "MecAppSuptApiSubscriptionLinkList.Links": { - "description": "Self-referring URI.", - "type": "object", + "title": "MecAppSuptApiSubscriptionLinkList.Links", "required": [ "self" ], + "type": "object", "properties": { "self": { "$ref": "#/components/schemas/LinkType" }, "subscriptions": { - "description": "The MEC application instance's subscriptions", "type": "array", "items": { "$ref": "#/components/schemas/MecAppSuptApiSubscriptionLinkList.Subscription" - } + }, + "description": "The MEC application instance's subscriptions" } - } + }, + "description": "Self-referring URI." }, "MecAppSuptApiSubscriptionLinkList.Subscription": { - "description": "A link to a subscription.", - "type": "object", + "title": "MecAppSuptApiSubscriptionLinkList.Subscription", "required": [ "href", "rel" ], + "type": "object", "properties": { "href": { - "$ref": "#/components/schemas/Href" + "type": "string", + "description": "URI referring to a resource", + "examples": [ + "/mecAppSuptApi/example" + ] }, "rel": { - "description": "The values shall be set to AppTerminationNotificationSubscription.", - "type": "string" + "type": "string", + "description": "The values shall be set to AppTerminationNotificationSubscription." } - } + }, + "description": "A link to a subscription." }, "MecAppSuptApiSubscriptionLinkList": { - "description": "This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions.", - "type": "object", + "title": "MecAppSuptApiSubscriptionLinkList", "required": [ "_links" ], + "type": "object", "properties": { "_links": { "$ref": "#/components/schemas/MecAppSuptApiSubscriptionLinkList.Links" } - } + }, + "description": "This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions." }, "OperationActionType": { - "description": "Operation that is being performed on the MEC application instance.", - "type": "string", + "title": "OperationActionType", "enum": [ "STOPPING", "TERMINATING" ], - "example": "TERMINATING" + "type": "string", + "description": "Operation that is being performed on the MEC application instance.", + "examples": [ + "TERMINATING" + ] }, "ProblemDetails": { + "title": "ProblemDetails", "type": "object", "properties": { "type": { - "$ref": "#/components/schemas/Problem.type" + "type": "string", + "description": "A URI reference according to IETF RFC 3986 that identifies the problem type" }, "title": { - "$ref": "#/components/schemas/Problem.title" + "type": "string", + "description": "A short, human-readable summary of the problem type" }, "status": { - "$ref": "#/components/schemas/Problem.status" + "type": "integer", + "description": "The HTTP status code for this occurrence of the problem", + "contentEncoding": "int32" }, "detail": { - "$ref": "#/components/schemas/Problem.detail" + "type": "string", + "description": "A human-readable explanation specific to this occurrence of the problem" }, "instance": { - "$ref": "#/components/schemas/Problem.instance" + "type": "string", + "description": "A URI reference that identifies the specific 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" - }, - "Problem.status": { - "type": "integer", - "format": "uint32", - "description": "The HTTP status code for this occurrence of the problem" - }, - "Problem.title": { - "type": "string", - "description": "A short, human-readable summary of the problem type" - }, - "Problem.type": { - "type": "string", - "format": "uri", - "description": "A URI reference according to IETF RFC 3986 that identifies the problem type" - }, - "ReadyIndicationType": { - "description": "Indication about the MEC application instance.", - "type": "string", - "enum": [ - "READY" - ], - "example": "READY" - }, "Self": { - "description": "Self-referring URI.", - "type": "object", + "title": "Self", "required": [ "self" ], + "type": "object", "properties": { "self": { "$ref": "#/components/schemas/LinkType" } }, - "readOnly": true - }, - "TimingCaps.NtpServers.AuthenticationKeyNum": { - "description": "Authentication key number", - "type": "integer", - "format": "uint32", - "example": 1 + "description": "Self-referring URI." }, "TimingCaps.NtpServers.AuthenticationOption": { - "description": "NTP authentication option", - "type": "string", + "title": "TimingCaps.NtpServers.AuthenticationOption", "enum": [ "NONE", "SYMMETRIC_KEY", "AUTO_KEY" ], - "example": "NONE" - }, - "TimingCaps.NtpServers.DelayReqMaxRate": { - "description": "Acceptable maximum rate of the Delay_Req messages in packets per second", - "type": "integer", - "format": "uint32", - "example": 10 - }, - "TimingCaps.NtpServers.LocalPriority": { - "description": "NTP server local priority", - "type": "integer", - "format": "uint32", - "example": 1 - }, - "TimingCaps.NtpServers.MaxPollingInterval": { - "description": "Maximum poll interval for NTP messages, in seconds as a power of two. Range 3...17", - "type": "integer", - "format": "uint32", - "example": 17 - }, - "TimingCaps.NtpServers.MinPollingInterval": { - "description": "Minimum poll interval for NTP messages, in seconds as a power of two. Range 3...17", - "type": "integer", - "format": "uint32", - "example": 3 - }, - "TimingCaps.NtpServers.NtpServerAddr": { - "description": "NTP server address", "type": "string", - "example": "192.0.2.0" - }, + "description": "NTP authentication option", + "examples": [ + "NONE" + ] + }, "TimingCaps.NtpServers.NtpServerAddrType": { - "description": "Address type of NTP server", - "type": "string", + "title": "TimingCaps.NtpServers.NtpServerAddrType", "enum": [ "IP_ADDRESS", "DNS_NAME" ], - "example": "IP_ADDRESS" - }, - "TimingCaps.NtpServers_PtpMasterIpAddress": { - "description": "PTP Master IP Address", "type": "string", - "example": "192.0.2.0" - }, - "TimingCaps.NtpServers_PtpMasterLocalPriority": { - "description": "PTP Master local priority", - "type": "integer", - "format": "uint32", - "example": 1 + "description": "Address type of NTP server", + "examples": [ + "IP_ADDRESS" + ] }, "TimingCaps.NtpServers": { - "description": "NTP server detail.", - "type": "object", + "title": "TimingCaps.NtpServers", "required": [ "ntpServerAddrType", "ntpServerAddr", @@ -933,231 +2040,245 @@ "authenticationOption", "authenticationKeyNum" ], + "type": "object", "properties": { "ntpServerAddrType": { "$ref": "#/components/schemas/TimingCaps.NtpServers.NtpServerAddrType" }, "ntpServerAddr": { - "$ref": "#/components/schemas/TimingCaps.NtpServers.NtpServerAddr" + "type": "string", + "description": "NTP server address", + "examples": [ + "192.0.2.0" + ] }, "minPollingInterval": { - "$ref": "#/components/schemas/TimingCaps.NtpServers.MinPollingInterval" + "type": "integer", + "description": "Minimum poll interval for NTP messages, in seconds as a power of two. Range 3...17", + "contentEncoding": "int32", + "examples": [ + 3 + ] }, "maxPollingInterval": { - "$ref": "#/components/schemas/TimingCaps.NtpServers.MaxPollingInterval" + "type": "integer", + "description": "Maximum poll interval for NTP messages, in seconds as a power of two. Range 3...17", + "contentEncoding": "int32", + "examples": [ + 17 + ] }, "localPriority": { - "$ref": "#/components/schemas/TimingCaps.NtpServers.LocalPriority" + "type": "integer", + "description": "NTP server local priority", + "contentEncoding": "int32", + "examples": [ + 1 + ] }, "authenticationOption": { "$ref": "#/components/schemas/TimingCaps.NtpServers.AuthenticationOption" }, "authenticationKeyNum": { - "$ref": "#/components/schemas/TimingCaps.NtpServers.AuthenticationKeyNum" + "type": "integer", + "description": "Authentication key number", + "contentEncoding": "int32", + "examples": [ + 1 + ] } - } + }, + "description": "NTP server detail." }, "TimingCaps_PtpMasters": { - "description": "NTP server detail.", - "type": "object", + "title": "TimingCaps_PtpMasters", "required": [ "ptpMasterIpAddress", "ptpMasterLocalPriority", "delayReqMaxRate" ], + "type": "object", "properties": { "ptpMasterIpAddress": { - "$ref": "#/components/schemas/TimingCaps.NtpServers_PtpMasterIpAddress" + "type": "string", + "description": "PTP Master IP Address", + "examples": [ + "192.0.2.0" + ] }, "ptpMasterLocalPriority": { - "$ref": "#/components/schemas/TimingCaps.NtpServers_PtpMasterLocalPriority" + "type": "integer", + "description": "PTP Master local priority", + "contentEncoding": "int32", + "examples": [ + 1 + ] }, "delayReqMaxRate": { - "$ref": "#/components/schemas/TimingCaps.NtpServers.DelayReqMaxRate" + "type": "integer", + "description": "Acceptable maximum rate of the Delay_Req messages in packets per second", + "contentEncoding": "int32", + "examples": [ + 10 + ] } - } + }, + "description": "NTP server detail." }, "TimingCaps.TimeStamp": { - "description": "time", - "type": "object", + "title": "TimingCaps.TimeStamp", "required": [ - "nanoSeconds", - "seconds" + "seconds", + "nanoSeconds" ], + "type": "object", "properties": { "seconds": { "type": "integer", - "format": "uint32", "description": "The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC", - "example": 1577836800 + "contentEncoding": "int32", + "examples": [ + 1577836800 + ] }, "nanoSeconds": { "type": "integer", - "format": "uint32", "description": "The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC", - "example": 0 + "contentEncoding": "int32", + "examples": [ + 0 + ] } - } + }, + "description": "time" }, "TimingCaps": { - "description": "This type represents the information provided by the MEC platform in response to the Timing capabilities Query message.", + "title": "TimingCaps", "type": "object", "properties": { "timeStamp": { "$ref": "#/components/schemas/TimingCaps.TimeStamp" }, "ntpServers": { - "description": "Available NTP servers", "type": "array", "items": { "$ref": "#/components/schemas/TimingCaps.NtpServers" - } + }, + "description": "Available NTP servers" }, "ptpMasters": { - "description": "Available PTP Masters", "type": "array", "items": { "$ref": "#/components/schemas/TimingCaps_PtpMasters" - } + }, + "description": "Available PTP Masters" } - } - }, - "TrafficFilter.Address": { - "description": "Identify the traffic ip address.", - "type": "string", - "example": "192.168.1.1" - }, - "TrafficFilter.DSCP": { - "description": "Used to match all IPv4 packets that have the same Differentiated Services Code Point (DSCP)", - "type": "integer", - "format": "uint32", - "example": 0 - }, - "TrafficFilter.Port": { - "description": "A port", - "type": "string", - "example": "8080" - }, - "TrafficFilter.Protocol": { - "description": "Protocol of the traffic filter", - "type": "string", - "example": "?" - }, - "TrafficFilter.QCI": { - "description": "Used to match all packets that have the same Quality Class Indicator (QCI).", - "type": "integer", - "format": "uint32", - "example": 1 - }, - "TrafficFilter.TC": { - "description": "Used to match all IPv6 packets that have the same Traffic Class.", - "type": "integer", - "format": "uint32", - "example": 1 - }, - "TrafficFilter.Token": { - "description": "Used for token based traffic rule", - "type": "string", - "example": "?" - }, - "TrafficFilter.TunnelAddress": { - "description": "Used for GTP tunnel based traffic rule", - "type": "string", - "example": "?" - }, - "TrafficFilter.TunnelPort": { - "description": "Used for GTP tunnel based traffic rule", - "type": "string", - "example": "?" + }, + "description": "This type represents the information provided by the MEC platform in response to the Timing capabilities Query message." }, "TrafficFilter": { - "description": "This type represents the traffic filter.", + "title": "TrafficFilter", "type": "object", "properties": { "srcAddress": { - "description": "An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes.", "type": "array", "items": { - "$ref": "#/components/schemas/TrafficFilter.Address" - } + "type": "string" + }, + "description": "An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes." }, "dstAddress": { - "description": "An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes.", "type": "array", "items": { - "$ref": "#/components/schemas/TrafficFilter.Address" - } + "type": "string" + }, + "description": "An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes." }, "srcPort": { - "description": "A port or a range of ports", "type": "array", "items": { - "$ref": "#/components/schemas/TrafficFilter.Port" - } + "type": "string" + }, + "description": "A port or a range of ports" }, "dstPort": { - "description": "A port or a range of ports", "type": "array", "items": { - "$ref": "#/components/schemas/TrafficFilter.Port" - } + "type": "string" + }, + "description": "A port or a range of ports" }, "protocol": { - "description": "Specify the protocol of the traffic filter", "type": "array", "items": { - "$ref": "#/components/schemas/TrafficFilter.Protocol" - } + "type": "string" + }, + "description": "Specify the protocol of the traffic filter" }, "token": { - "description": "Used for token based traffic rule", "type": "array", "items": { - "$ref": "#/components/schemas/TrafficFilter.Token" - } + "type": "string" + }, + "description": "Used for token based traffic rule" }, "srcTunnelAddress": { - "description": "Used for GTP tunnel based traffic rule", "type": "array", "items": { - "$ref": "#/components/schemas/TrafficFilter.TunnelAddress" - } + "type": "string" + }, + "description": "Used for GTP tunnel based traffic rule" }, "tgtTunnelAddress": { - "description": "Used for GTP tunnel based traffic rule", "type": "array", "items": { - "$ref": "#/components/schemas/TrafficFilter.TunnelAddress" - } + "type": "string" + }, + "description": "Used for GTP tunnel based traffic rule" }, "srcTunnelPort": { - "description": "Used for GTP tunnel based traffic rule", "type": "array", "items": { - "$ref": "#/components/schemas/TrafficFilter.TunnelPort" - } + "type": "string" + }, + "description": "Used for GTP tunnel based traffic rule" }, "dstTunnelPort": { - "description": "Used for GTP tunnel based traffic rule", "type": "array", "items": { - "$ref": "#/components/schemas/TrafficFilter.TunnelPort" - } + "type": "string" + }, + "description": "Used for GTP tunnel based traffic rule" }, "qCI": { - "$ref": "#/components/schemas/TrafficFilter.QCI" + "type": "integer", + "description": "Used to match all packets that have the same Quality Class Indicator (QCI).", + "contentEncoding": "int32", + "examples": [ + 1 + ] }, "dSCP": { - "$ref": "#/components/schemas/TrafficFilter.DSCP" + "type": "integer", + "description": "Used to match all IPv4 packets that have the same Differentiated Services Code Point (DSCP)", + "contentEncoding": "int32", + "examples": [ + 0 + ] }, "tC": { - "$ref": "#/components/schemas/TrafficFilter.TC" + "type": "integer", + "description": "Used to match all IPv6 packets that have the same Traffic Class.", + "contentEncoding": "int32", + "examples": [ + 1 + ] } - } + }, + "description": "This type represents the traffic filter." }, "TrafficRule.Action": { - "description": "The action of the MEC host data plane when a packet matches the trafficFilter\n ", - "type": "string", + "title": "TrafficRule.Action", "enum": [ "DROP", "FORWARD_DECAPSULATED", @@ -1166,40 +2287,38 @@ "DUPLICATE_DECAPSULATED", "DUPLICATE_ENCAPSULATED" ], - "example": "DROP" + "type": "string", + "description": "The action of the MEC host data plane when a packet matches the trafficFilter", + "examples": [ + "DROP" + ] }, "TrafficRule.FilterType": { - "description": "Definition of filter per FLOW or PACKET. If flow the filter match UE->EPC packet and the reverse packet is handled in the same context", - "type": "string", + "title": "TrafficRule.FilterType", "enum": [ "FLOW", "PACKET" ], - "example": "FLOW" - }, - "TrafficRule.Id": { - "description": "Identify the traffic rule.", "type": "string", - "example": "TrafficRule1" - }, - "TrafficRule_Priority": { - "description": "Priority of this traffic rule. If traffic rule conflicts, the one with higher priority take precedence", - "type": "integer", - "format": "uint32", - "example": 1 + "description": "Definition of filter per FLOW or PACKET. If flow the filter match UE->EPC packet and the reverse packet is handled in the same context", + "examples": [ + "FLOW" + ] }, "TrafficRule.State": { - "description": "Contains the traffic rule state. This attribute may be updated using HTTP PUT method", - "type": "string", + "title": "TrafficRule.State", "enum": [ "ACTIVE", "INACTIVE" ], - "example": "ACTIVE" + "type": "string", + "description": "Contains the traffic rule state. This attribute may be updated using HTTP PUT method", + "examples": [ + "ACTIVE" + ] }, "TrafficRule": { - "description": "This type represents the general information of a traffic rule.", - "type": "object", + "title": "TrafficRule", "required": [ "trafficRuleId", "filterType", @@ -1208,21 +2327,32 @@ "action", "state" ], + "type": "object", "properties": { "trafficRuleId": { - "$ref": "#/components/schemas/TrafficRule.Id" + "type": "string", + "description": "Identify the traffic rule.", + "examples": [ + "TrafficRule1" + ] }, "filterType": { "$ref": "#/components/schemas/TrafficRule.FilterType" }, "priority": { - "$ref": "#/components/schemas/TrafficRule_Priority" + "type": "integer", + "description": "Priority of this traffic rule. If traffic rule conflicts, the one with higher priority take precedence", + "contentEncoding": "int32", + "examples": [ + 1 + ] }, "trafficFilter": { "type": "array", "items": { "$ref": "#/components/schemas/TrafficFilter" - } + }, + "description": "" }, "action": { "$ref": "#/components/schemas/TrafficRule.Action" @@ -1233,397 +2363,62 @@ "state": { "$ref": "#/components/schemas/TrafficRule.State" } - } - }, - "TunnelInfo.TunnelDstAddress": { - "description": "Destination address of the tunnel", - "type": "string", - "example": "?" - }, - "TunnelInfo.TunnelSrcAddress": { - "description": "Source address of the tunnel", - "type": "string", - "example": "?" + }, + "description": "This type represents the general information of a traffic rule." }, "TunnelInfo.TunnelType": { - "description": "This type represents the tunnel information.", - "type": "string", + "title": "TunnelInfo.TunnelType", "enum": [ "GTP_U", "GRE" ], - "example": "GTP_U" + "type": "string", + "description": "This type represents the tunnel information.", + "examples": [ + "GTP_U" + ] }, "TunnelInfo": { - "description": "This type represents the tunnel information.", - "type": "object", + "title": "TunnelInfo", "required": [ "tunnelType" ], + "type": "object", "properties": { "tunnelType": { "$ref": "#/components/schemas/TunnelInfo.TunnelType" }, "tunnelDstAddress": { - "$ref": "#/components/schemas/TunnelInfo.TunnelDstAddress" + "type": "string", + "description": "Destination address of the tunnel", + "examples": [ + "?" + ] }, "tunnelSrcAddress": { - "$ref": "#/components/schemas/TunnelInfo.TunnelSrcAddress" - } - } - } - }, - "parameters": { - "Path.AppInstanceId": { - "name": "appInstanceId", - "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - "Path.DnsRuleId": { - "name": "dnsRuleId", - "description": "Represents a DNS rule.", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - "Path.SubscriptionId": { - "name": "subscriptionId", - "description": "Represents a subscription to the notifications from the MEC platform.", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - "Path.TrafficRuleId": { - "name": "trafficRuleId", - "description": "Represents a traffic rule.", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - } - }, - "responses": { - "ApplicationsDnsRules.200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "content": { - "application/json": { - "schema": { - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/DnsRule" - } - }, - "examples": { - "DnsRules": { - "$ref": "#/components/examples/DnsRules" - } - } - } - }, - "links": { - "getIndividualMeDNSRule": { - "$ref": "#/components/links/GetIndividualMeDNSRule" - }, - "putIndividualMeDNSRule": { - "$ref": "#/components/links/PutIndividualMeDNSRule" - } - } - }, - "ApplicationsDnsRule.200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DnsRule" - }, - "examples": { - "DnsRule": { - "$ref": "#/components/examples/DnsRule" - } - } - } - } - }, - "ApplicationsSubscriptions.200": { - "description": "Upon success, a response body containing the list of links to the requested subscriptions is returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MecAppSuptApiSubscriptionLinkList" - } - } - }, - "links": { - "getIndividualmecAppSuptApiSubscriptionLinkList": { - "$ref": "#/components/links/GetIndividualmecAppSuptApiSubscriptionLinkList" - }, - "delIndividualmecAppSuptApiSubscriptionLinkList": { - "$ref": "#/components/links/DelIndividualmecAppSuptApiSubscriptionLinkList" - } - } - }, - "ApplicationsSubscriptions.201": { - "description": "Entity body in the request contains a subscription to the MEC service availability notifications that is to be created.", - "headers": { - "location": { - "description": "The resource URI of the created resource", - "schema": { - "type": "string", - "format": "uri" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppTerminationNotificationSubscription" - } - } - }, - "links": { - "getIndividualmecAppSuptApiSubscription": { - "$ref": "#/components/links/GetIndividualmecAppSuptApiSubscription" - }, - "delIndividualmecAppSuptApiSubscription": { - "$ref": "#/components/links/DelIndividualmecAppSuptApiSubscription" - } - } - }, - "ApplicationsSubscription.200": { - "description": "Upon success, a response body containing the requested subscription is returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppTerminationNotificationSubscription" - } - } - } - }, - "ApplicationsTrafficRules.200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "content": { - "application/json": { - "schema": { - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/TrafficRule" - } - }, - "examples": { - "TrafficRules": { - "$ref": "#/components/examples/TrafficRules" - } - } + "type": "string", + "description": "Source address of the tunnel", + "examples": [ + "?" + ] } }, - "links": { - "getIndividualMeTrafficRule": { - "$ref": "#/components/links/GetIndividualMeTrafficRule" - }, - "putIndividualMeTrafficRule": { - "$ref": "#/components/links/PutIndividualMeTrafficRule" - } - } - }, - "ApplicationsTrafficRule.200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TrafficRule" - }, - "examples": { - "TrafficRule": { - "$ref": "#/components/examples/TrafficRule" - } - } - } - } - }, - "TimingCurrentTime.200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/CurrentTime" - } - } - } + "description": "This type represents the tunnel information." }, - "TimingCaps.200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TimingCaps" - } - } - } - }, - "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.409": { - "description": "Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state.", - "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" - } - } - } - }, - "Error.429": { - "description": "Too Many Requests. It is used when a rate limiter has triggered.", - "content": { - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - }, - "text/plain": { - "schema": { - "$ref": "#/components/schemas/Empty" - } - } - } + "TimeSourceStatus": { + "title": "TimeSourceStatus", + "enum": [ + "TRACEABLE", + "NONTRACEABLE" + ], + "type": "string", + "description": "Platform Time Source status. 1 = TRACEABLE - time source is locked to the UTC time source. 2 = NONTRACEABLE - time source is not locked to the UTC time source", + "examples": [ + "TRACEABLE" + ] } }, "requestBodies": { - "ApplicationsConfirmReady": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppReadyConfirmation" - } - } - } - }, - "ApplicationsConfirmTermination": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppTerminationConfirmation" - } - } - } - }, - "ApplicationsDnsRule": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/DnsRule" - } - } - }, - "description": "The updated state is included in the entity body of the request.", - "required": true - }, - "ApplicationsSubscriptions": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/AppTerminationNotificationSubscription" - } - } - }, - "description": "Entity body in the request contains a subscription to the MEC application termination notifications that is to be created.", - "required": true - }, - "ApplicationsTrafficRule": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/TrafficRule" - } - } - }, - "description": "One or more updated attributes that are allowed to be changed", - "required": true - }, "AppTerminationNotification": { "content": { "application/json": { @@ -1634,179 +2429,9 @@ }, "required": true } - }, - "callbacks": { - "AppTerminationNotification": { - "{$request.body#/callbackReference}": { - "post": { - "description": "Represents the information that the MEP notifies the subscribed application instance about the corresponding application instance termination/stop", - "operationId": "AppTerminationNotification_POST", - "tags": [ - "callbacks" - ], - "requestBody": { - "$ref": "#/components/requestBodies/AppTerminationNotification" - }, - "responses": { - "200": { - "description": "Expected responses from callback consumer, if it accepts the callback" - } - } - } - } - } - }, - "links": { - "GetIndividualMeDNSRule": { - "operationId": "ApplicationsDnsRule_GET", - "description": "The `dnsRuleId` value returned in the response can be used as the `dnsRuleId` parameter in `GET /applications/{appInstanceId}/dns_rules/{dnsRuleId}`", - "parameters": { - "dnsRuleId": "$response.body#/dnsRuleId" - } - }, - "PutIndividualMeDNSRule": { - "operationId": "ApplicationsDnsRule_PUT", - "description": "The `dnsRuleId` value returned in the response can be used as the `dnsRuleId` parameter in `PUT /applications/{appInstanceId}/dns_rules/{dnsRuleId}`", - "parameters": { - "dnsRuleId": "$response.body#/dnsRuleId" - } - }, - "GetIndividualMeTrafficRule": { - "operationId": "ApplicationsTrafficRule_GET", - "description": "The `trafficRuleId` value returned in the response can be used as the `trafficRuleId` parameter in `GET /applications/{appInstanceId}/traffic_rules/{trafficRuleId}`", - "parameters": { - "trafficRuleId": "$response.body#/trafficRuleId" - } - }, - "PutIndividualMeTrafficRule": { - "operationId": "ApplicationsTrafficRule_PUT", - "description": "The `trafficRuleId` value returned in the response can be used as the `trafficRuleId` parameter in `PUT /applications/{appInstanceId}/traffic_rules/{trafficRuleId}`", - "parameters": { - "trafficRuleId": "$response.body#/trafficRuleId" - } - }, - "GetIndividualmecAppSuptApiSubscription": { - "operationId": "ApplicationsSubscription_GET", - "description": "The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}`", - "parameters": { - "description": "regex = \\/mec_app_support\\/v1\\/applications\\/.*\\/subscriptions\\/.*\\/(.*);subscriptionId = href.match(regex)[1];// where \"href\" is an attribute within the subscription attribute within the _links attribute", - "subscriptionId": "TBC" - } - }, - "DelIndividualmecAppSuptApiSubscription": { - "operationId": "ApplicationsSubscription_DELETE", - "description": "The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}`", - "parameters": { - "description": "regex = \\/mec_app_support\\/v1\\/applications\\/.*\\/subscriptions\\/(.*);subscriptionId = href.match(regex)[1];// where \"href\" is an attribute within the subscription attribute within the _links attribute", - "subscriptionId": "TBC" - } - }, - "GetIndividualmecAppSuptApiSubscriptionLinkList": { - "operationId": "ApplicationsSubscription_GET", - "description": "The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}`", - "parameters": { - "description": "regex = \\/mec_app_support\\/v1\\/applications\\/.*\\/subscriptions\\/(.*);subscriptionId = href.match(regex)[1];// where \"href\" is an attribute within the subscription attribute within the _links attribute", - "subscriptionId": "TBC" - } - }, - "DelIndividualmecAppSuptApiSubscriptionLinkList": { - "operationId": "ApplicationsSubscription_DELETE", - "description": "The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}`", - "parameters": { - "description": "regex = \\/mec_app_support\\/v1\\/applications\\/.*\\/subscriptions\\/(.*);subscriptionId = href.match(regex)[1];// where \"href\" is an attribute within the subscription attribute within the _links attribute", - "subscriptionId": "TBC" - } - } - }, - "examples": { - "DnsRule": { - "value": { - "dnsRuleId": "DnsRule1", - "domainName": "www.example.com", - "ipAddressType": "IP_V4", - "ipAddress": "146.241.7.3", - "ttl": 300, - "state": "ACTIVE" - } - }, - "DnsRules": { - "value": [ - { - "dnsRuleId": "DnsRule1", - "domainName": "www.example.com", - "ipAddressType": "IP_V4", - "ipAddress": "146.241.7.3", - "ttl": 300, - "state": "ACTIVE" - }, - { - "dnsRuleId": "DnsRule2", - "domainName": "www.example.com", - "ipAddressType": "IP_V4", - "ipAddress": "146.241.7.4", - "ttl": 300, - "state": "INACTIVE" - } - ] - }, - "TrafficRule": { - "value": { - "trafficRuleId": "TrafficRule123", - "serName": "ExampleService", - "filterType": "FLOW", - "priority": 1, - "trafficFilter": [ - { - "srcAddress": [ - "192.168.2.0/24", - "192.168.3.0/24" - ], - "dstAddress": [ - "192.127.4.100/32" - ], - "dstPort": [ - "80" - ] - } - ], - "action": "FORWARD_DECAPSULATED", - "dstInterface": { - "interfaceType": "IP", - "dstIpAddress": "20.1.1.1" - }, - "state": "ACTIVE" - } - }, - "TrafficRules": { - "value": [ - { - "trafficRuleId": "TrafficRule123", - "serName": "ExampleService", - "filterType": "FLOW", - "priority": 1, - "trafficFilter": [ - { - "srcAddress": [ - "192.168.2.0/24", - "192.168.3.0/24" - ], - "dstAddress": [ - "192.127.4.100/32" - ], - "dstPort": [ - "80" - ] - } - ], - "action": "FORWARD_DECAPSULATED", - "dstInterface": { - "interfaceType": "IP", - "dstIpAddress": "20.1.1.1" - }, - "state": "ACTIVE" - } - ] - } } - } + }, + "security": [ + {} + ] } \ No newline at end of file diff --git a/MecAppSupportApi.yaml b/MecAppSupportApi.yaml index c39a7a1f6339a8c5b4256fae5792a0f2f47d6935..21013fe2aa7479347db621e76ec054d442f7e081 100644 --- a/MecAppSupportApi.yaml +++ b/MecAppSupportApi.yaml @@ -1,10 +1,7 @@ -openapi: 3.0.2 -servers: - - url: 'http://127.0.0.1:8081/mec_app_support/v1' - - url: 'https://127.0.0.1:8081/mec_app_support/v1' +openapi: 3.1.0 info: title: MEC Application Support API - version: 2.1.1 + version: '2.1.1' description: The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI license: name: BSD-3-Clause @@ -12,1359 +9,1671 @@ info: contact: email: cti_support@etsi.org externalDocs: - description: 'ETSI GS MEC011 Application Enablement API, V2.1.1' - url: >- - https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf + description: ETSI GS MEC011 Application Enablement API, V2.1.1 + url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf tags: - - name: appTrafficRules - - name: appDnsRules - - name: appSubscriptions - - name: appConfirmTermination - - name: appConfirmReady - - name: timing - - name: callbacks +- name: appTrafficRules +- name: appDnsRules +- name: appSubscriptions +- name: appConfirmTermination +- name: appConfirmReady +- name: timing +- name: callbacks +jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema +servers: +- url: http://127.0.0.1:8081/mec_app_support/v1 + variables: {} +- url: https://127.0.0.1:8081/mec_app_support/v1 + variables: {} paths: - '/applications/{appInstanceId}/traffic_rules': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' + /applications/{appInstanceId}/traffic_rules: get: - description: >- - This method retrieves information about all the traffic rules associated - with a MEC application instance. - operationId: ApplicationsTrafficRules_GET tags: - - appTrafficRules + - appTrafficRules + description: This method retrieves information about all the traffic rules associated with a MEC application instance. + operationId: ApplicationsTrafficRules_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string responses: '200': - $ref: '#/components/responses/ApplicationsTrafficRules.200' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + minItems: 0 + type: array + items: + $ref: '#/components/schemas/TrafficRule' + description: '' + examples: + - - trafficRuleId: TrafficRule123 + serName: ExampleService + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.168.2.0/24 + - 192.168.3.0/24 + dstAddress: + - 192.127.4.100/32 + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + interfaceType: IP + dstIpAddress: 20.1.1.1 + state: ACTIVE + contentMediaType: application/json + examples: + TrafficRules: + value: + - trafficRuleId: TrafficRule123 + serName: ExampleService + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.168.2.0/24 + - 192.168.3.0/24 + dstAddress: + - 192.127.4.100/32 + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + interfaceType: IP + dstIpAddress: 20.1.1.1 + state: ACTIVE '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' - '/applications/{appInstanceId}/traffic_rules/{trafficRuleId}': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' - - $ref: '#/components/parameters/Path.TrafficRuleId' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + /applications/{appInstanceId}/traffic_rules/{trafficRuleId}: get: - description: >- - This method retrieves information about all the traffic rules associated - with a MEC application instance. - operationId: ApplicationsTrafficRule_GET tags: - - appTrafficRules + - appTrafficRules + + description: This method retrieves information about all the traffic rules associated with a MEC application instance. + operationId: ApplicationsTrafficRule_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: trafficRuleId + in: path + description: Represents a traffic rule. + required: true + style: simple + schema: + type: string responses: '200': - $ref: '#/components/responses/ApplicationsTrafficRule.200' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/TrafficRule' + examples: + TrafficRule: + value: + trafficRuleId: TrafficRule123 + serName: ExampleService + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.168.2.0/24 + - 192.168.3.0/24 + dstAddress: + - 192.127.4.100/32 + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + interfaceType: IP + dstIpAddress: 20.1.1.1 + state: ACTIVE '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false put: - description: >- - This method retrieves information about all the traffic rules associated - with a MEC application instance. - operationId: ApplicationsTrafficRule_PUT tags: - - appTrafficRules + - appTrafficRules + + description: This method retrieves information about all the traffic rules associated with a MEC application instance. + operationId: ApplicationsTrafficRule_PUT + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: trafficRuleId + in: path + description: Represents a traffic rule. + required: true + style: simple + schema: + type: string + requestBody: + description: One or more updated attributes that are allowed to be changed + content: + application/json: + schema: + $ref: '#/components/schemas/TrafficRule' + required: true responses: '200': - $ref: '#/components/responses/ApplicationsTrafficRule.200' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/TrafficRule' + examples: + TrafficRule: + value: + trafficRuleId: TrafficRule123 + serName: ExampleService + filterType: FLOW + priority: 1 + trafficFilter: + - srcAddress: + - 192.168.2.0/24 + - 192.168.3.0/24 + dstAddress: + - 192.127.4.100/32 + dstPort: + - '80' + action: FORWARD_DECAPSULATED + dstInterface: + interfaceType: IP + dstIpAddress: 20.1.1.1 + state: ACTIVE '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '412': - $ref: '#/components/responses/Error.412' - requestBody: - $ref: '#/components/requestBodies/ApplicationsTrafficRule' - '/applications/{appInstanceId}/dns_rules': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' + description: Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + /applications/{appInstanceId}/dns_rules: get: - description: >- - This method retrieves information about all the DNS rules associated - with a MEC application instance. - operationId: ApplicationsDnsRules_GET tags: - - appDnsRules + - appDnsRules + description: This method retrieves information about all the DNS rules associated with a MEC application instance. + operationId: ApplicationsDnsRules_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string responses: '200': - $ref: '#/components/responses/ApplicationsDnsRules.200' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + minItems: 0 + type: array + items: + $ref: '#/components/schemas/DnsRule' + description: '' + examples: + - - dnsRuleId: DnsRule1 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.3 + ttl: 300 + state: ACTIVE + - dnsRuleId: DnsRule2 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.4 + ttl: 300 + state: INACTIVE + contentMediaType: application/json + examples: + DnsRules: + value: + - dnsRuleId: DnsRule1 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.3 + ttl: 300 + state: ACTIVE + - dnsRuleId: DnsRule2 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.4 + ttl: 300 + state: INACTIVE '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' - '/applications/{appInstanceId}/dns_rules/{dnsRuleId}': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' - - $ref: '#/components/parameters/Path.DnsRuleId' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + /applications/{appInstanceId}/dns_rules/{dnsRuleId}: get: - description: >- - This method retrieves information about a DNS rule associated with a - MEC application instance. - operationId: ApplicationsDnsRule_GET tags: - - appDnsRules + - appDnsRules + description: This method retrieves information about a DNS rule associated with a MEC application instance. + operationId: ApplicationsDnsRule_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: dnsRuleId + in: path + description: Represents a DNS rule. + required: true + style: simple + schema: + type: string responses: '200': - $ref: '#/components/responses/ApplicationsDnsRule.200' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/DnsRule' + examples: + DnsRule: + value: + dnsRuleId: DnsRule1 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.3 + ttl: 300 + state: ACTIVE '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false put: - description: 'This method activates, de-activates or updates a traffic rule.' - operationId: ApplicationsDnsRule_PUT tags: - - appDnsRules + - appDnsRules + description: This method activates, de-activates or updates a traffic rule. + operationId: ApplicationsDnsRule_PUT + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: dnsRuleId + in: path + description: Represents a DNS rule. + required: true + style: simple + schema: + type: string + requestBody: + description: The updated state is included in the entity body of the request. + content: + application/json: + schema: + $ref: '#/components/schemas/DnsRule' + required: true responses: '200': - $ref: '#/components/responses/ApplicationsDnsRule.200' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/DnsRule' + examples: + DnsRule: + value: + dnsRuleId: DnsRule1 + domainName: www.example.com + ipAddressType: IP_V4 + ipAddress: 146.241.7.3 + ttl: 300 + state: ACTIVE '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '412': - $ref: '#/components/responses/Error.412' - requestBody: - $ref: '#/components/requestBodies/ApplicationsDnsRule' - '/applications/{appInstanceId}/subscriptions': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' + description: Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + /applications/{appInstanceId}/subscriptions: get: - description: >- - The GET method may be used to request information about all - subscriptions for this requestor. Upon success, the response contains - entity body with all the subscriptions for the requestor. - operationId: ApplicationsSubscriptions_GET tags: - - appSubscriptions + - appSubscriptions + description: The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains entity body with all the subscriptions for the requestor. + operationId: ApplicationsSubscriptions_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string responses: '200': - $ref: '#/components/responses/ApplicationsSubscriptions.200' + description: Upon success, a response body containing the list of links to the requested subscriptions is returned. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList' '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false post: - description: >- - The POST method may be used to create a new subscription. One example - use case is to create a new subscription to the MEC service - availability notifications. Upon success, the response contains entity - body describing the created subscription. - operationId: ApplicationsSubscriptions_POST tags: - - appSubscriptions + - appSubscriptions + description: The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains entity body describing the created subscription. + operationId: ApplicationsSubscriptions_POST + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + requestBody: + description: Entity body in the request contains a subscription to the MEC application termination notifications that is to be created. + content: + application/json: + schema: + $ref: '#/components/schemas/AppTerminationNotificationSubscription' + required: true responses: '201': - $ref: '#/components/responses/ApplicationsSubscriptions.201' + description: Entity body in the request contains a subscription to the MEC service availability notifications that is to be created. + headers: + location: + description: The resource URI of the created resource + content: + text/plain: + schema: + type: string + description: The resource URI of the created resource + contentMediaType: text/plain + content: + application/json: + schema: + $ref: '#/components/schemas/AppTerminationNotificationSubscription' '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' - requestBody: - $ref: '#/components/requestBodies/ApplicationsSubscriptions' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + callbacks: - appTerminationNotification: - $ref: '#/components/callbacks/AppTerminationNotification' - '/applications/{appInstanceId}/subscriptions/{subscriptionId}': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' - - $ref: '#/components/parameters/Path.SubscriptionId' + AppTerminationNotification: + '{$request.body#/callbackUri}': + post: + description: Represents the information that the MEP notifies the + subscribed application instance about the corresponding + application instance termination/stop' + operationId: AppTerminationNotification_POST + tags: + - callbacks + requestBody: + $ref: '#/components/requestBodies/AppTerminationNotification' + responses: + '200': + description: Expected responses from callback consumer, if it accepts the callback + parameters: [] + /applications/{appInstanceId}/subscriptions/{subscriptionId}: get: - description: >- - The GET method requests information about a subscription for this - requestor. Upon success, the response contains entity body with the - subscription for the requestor. - operationId: ApplicationsSubscription_GET tags: - - appSubscriptions + - appSubscriptions + + description: The GET method requests information about a subscription for this requestor. Upon success, the response contains entity body with the subscription for the requestor. + operationId: ApplicationsSubscription_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: subscriptionId + in: path + description: Represents a subscription to the notifications from the MEC platform. + required: true + style: simple + schema: + type: string responses: '200': - $ref: '#/components/responses/ApplicationsSubscription.200' + description: Upon success, a response body containing the requested subscription is returned. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/AppTerminationNotificationSubscription' '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false delete: - description: >- - This method deletes a mecAppSuptApiSubscription. This method is typically used - in "Unsubscribing from service availability event notifications" - procedure. - operationId: ApplicationsSubscription_DELETE tags: - - appSubscriptions + - appSubscriptions + + description: This method deletes a mecAppSuptApiSubscription. This method is typically used in "Unsubscribing from service availability event notifications" procedure. + operationId: ApplicationsSubscription_DELETE + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: subscriptionId + in: path + description: Represents a subscription to the notifications from the MEC platform. + required: true + style: simple + schema: + type: string responses: '204': description: No Content + headers: {} + content: {} '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' - '/applications/{appInstanceId}/confirm_termination': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + /applications/{appInstanceId}/confirm_termination: post: - description: >- - This method is used to confirm the application level termination - of an application instance. - operationId: ApplicationsConfirmTermination_POST tags: - - appConfirmTermination + - appConfirmTermination + + description: This method is used to confirm the application level termination of an application instance. + operationId: ApplicationsConfirmTermination_POST + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + requestBody: + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/AppTerminationConfirmation' + required: false responses: '204': description: No Content - - + headers: {} + content: {} '401': - $ref: '#/components/responses/Error.401' + description: Unauthorized. It is used when the client did not submit the appropriate credentials. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '409': - $ref: '#/components/responses/Error.409' + description: Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '429': - $ref: '#/components/responses/Error.429' - requestBody: - $ref: '#/components/requestBodies/ApplicationsConfirmTermination' - '/applications/{appInstanceId}/confirm_ready': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' + description: Too Many Requests. It is used when a rate limiter has triggered. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + /applications/{appInstanceId}/confirm_ready: post: - description: >- - This method may be used by the MEC application instance to notify the MEC platform that it is up and running. - operationId: ApplicationsConfirmReady_POST tags: - - appConfirmReady + - appConfirmReady + + description: 'This method may be used by the MEC application instance to notify the MEC platform that it is up and running. ' + operationId: ApplicationsConfirmReady_POST + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + requestBody: + description: '' + content: + application/json: + schema: + $ref: '#/components/schemas/AppReadyConfirmation' + required: false responses: '204': description: No Content + headers: {} + content: {} '401': - $ref: '#/components/responses/Error.401' + description: Unauthorized. It is used when the client did not submit the appropriate credentials. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '409': - $ref: '#/components/responses/Error.409' + description: Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '429': - $ref: '#/components/responses/Error.429' - requestBody: - $ref: '#/components/requestBodies/ApplicationsConfirmReady' - '/timing/timing_caps': + description: Too Many Requests. It is used when a rate limiter has triggered. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + /timing/timing_caps: get: - description: >- - This method retrieves the information of the platform's timing - capabilities which corresponds to the timing capabilities query - operationId: TimingCaps_GET tags: - - timing + - timing + + description: This method retrieves the information of the platform's timing capabilities which corresponds to the timing capabilities query + operationId: TimingCaps_GET + parameters: [] responses: '200': - $ref: '#/components/responses/TimingCaps.200' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/TimingCaps' '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' - '/timing/current_time': + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + /timing/current_time: get: - description: >- - This method retrieves the information of the platform's current time - which corresponds to the get platform time procedure - operationId: TimingCurrentTime_GET tags: - - timing + - timing + + description: This method retrieves the information of the platform's current time which corresponds to the get platform time procedure + operationId: TimingCurrentTime_GET + parameters: [] responses: '200': - $ref: '#/components/responses/TimingCurrentTime.200' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/CurrentTime' '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] components: schemas: - Empty: - description: Empty schema AppReadyConfirmation: - description: >- - This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running. - type: object + title: AppReadyConfirmation required: - - indication + - indication + type: object properties: indication: - $ref: '#/components/schemas/ReadyIndicationType' + const: READY + type: string + description: Indication about the MEC application instance. + examples: + - READY + description: This type represents the information that the MEC application instance indicates to the MEC platform that it is up and running. AppTerminationConfirmation: - description: >- - This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop. - type: object + title: AppTerminationConfirmation required: - - operationAction + - operationAction + type: object properties: operationAction: $ref: '#/components/schemas/OperationActionType' + description: This type represents the information that the MEC application instance provides to the MEC platform when informing it that the application has completed its application level related terminate/stop actions, e.g. retention of application state in the case of stop. AppTerminationNotification.Links: - description: >- - Object containing hyperlinks related to the resource. - type: object + title: AppTerminationNotification.Links required: - - subscription + - subscription + type: object properties: subscription: $ref: '#/components/schemas/LinkType' confirmTermination: $ref: '#/components/schemas/LinkType.ConfirmTermination' - AppTerminationNotification.MaxGracefulTimeout: - description: >- - Maximum timeout value in seconds for graceful termination or graceful - stop of an application instance. - type: integer - format: uint32 - example: 10 - AppTerminationNotification.NotificationType: - description: Shall be set to AppTerminationNotification. - type: string - example: 'AppTerminationNotification' + description: Object containing hyperlinks related to the resource. AppTerminationNotification: - description: >- - This type represents the information that the MEC platform - notifies the subscribed application instance about the corresponding - application instance termination/stop. - type: object + title: AppTerminationNotification required: - - notificationType - - operationAction - - maxGracefulTimeout - - _links + - notificationType + - operationAction + - maxGracefulTimeout + - _links + type: object properties: notificationType: - $ref: '#/components/schemas/AppTerminationNotification.NotificationType' + type: string + description: Shall be set to AppTerminationNotification. + examples: + - AppTerminationNotification operationAction: $ref: '#/components/schemas/OperationActionType' maxGracefulTimeout: - $ref: '#/components/schemas/AppTerminationNotification.MaxGracefulTimeout' + type: integer + description: Maximum timeout value in seconds for graceful termination or graceful stop of an application instance. + contentEncoding: int32 + examples: + - 10 _links: $ref: '#/components/schemas/AppTerminationNotification.Links' - AppTerminationNotificationSubscription.AppInstanceId: - description: It is used as the filtering criterion for the subscribed events. - type: string - example: 'ID1' - AppTerminationNotificationSubscription.CallbackReference: - description: >- - URI selected by the MEC application instance to receive - notifications on the subscribed MEC application instance - management information. This shall be included in both the request and - the response. - type: string - format: uri + description: This type represents the information that the MEC platform notifies the subscribed application instance about the corresponding application instance termination/stop. AppTerminationNotificationSubscription: - description: >- - This type represents the information that the MEC platform - notifies the subscribed application instance about the corresponding - application instance termination/stop. - type: object + title: AppTerminationNotificationSubscription required: - - subscriptionType - - callbackReference - - _links - - appInstanceId + - subscriptionType + - callbackReference + - _links + - appInstanceId + type: object properties: subscriptionType: - $ref: >- - #/components/schemas/AppTerminationNotificationSubscription.SubscriptionType + type: string + description: Shall be set to AppTerminationNotificationSubscription. + examples: + - AppTerminationNotificationSubscription callbackReference: - $ref: >- - #/components/schemas/AppTerminationNotificationSubscription.CallbackReference + type: string + description: URI selected by the MEC application instance to receive notifications on the subscribed MEC application instance management information. This shall be included in both the request and the response. _links: $ref: '#/components/schemas/Self' appInstanceId: - $ref: >- - #/components/schemas/AppTerminationNotificationSubscription.AppInstanceId - AppTerminationNotificationSubscription.SubscriptionType: - description: Shall be set to AppTerminationNotificationSubscription. - type: string - example: 'AppTerminationNotificationSubscription' + type: string + description: It is used as the filtering criterion for the subscribed events. + examples: + - ID1 + description: This type represents the information that the MEC platform notifies the subscribed application instance about the corresponding application instance termination/stop. CurrentTime: - description: >- - This type represents the information provided by the MEC - platform in response to the Get Platform Time Request message. - type: object + title: CurrentTime required: - - nanoSeconds - - seconds - - timeSourceStatus + - seconds + - nanoSeconds + - timeSourceStatus + type: object properties: seconds: type: integer - format: uint32 - description: >- - The seconds part of the time. Time is defined as Unix-time since - January 1, 1970, 00:00:00 UTC - example: 1577836800 + description: The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + contentEncoding: int32 + examples: + - 1577836800 nanoSeconds: type: integer - format: uint32 - description: >- - The nanoseconds part of the time. Time is defined as Unix-time since - January 1, 1970, 00:00:00 UTC - example: 0 + description: The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + contentEncoding: int32 + examples: + - 0 timeSourceStatus: - type: string - enum: - - TRACEABLE - - NONTRACEABLE - description: >- - Platform Time Source status. 1 = TRACEABLE - time source is locked - to the UTC time source. 2 = NONTRACEABLE - time source is not locked - to the UTC time source - example: 'TRACEABLE' + $ref: '#/components/schemas/TimeSourceStatus' + description: This type represents the information provided by the MEC platform in response to the Get Platform Time Request message. DestinationInterface.InterfaceType: - description: Type of the interface - type: string + title: DestinationInterface.InterfaceType enum: - - TUNNEL - - MAC - - IP - example: 'TUNNEL' - DestinationInterface.IpAddress: - description: IP address of the remote destination + - TUNNEL + - MAC + - IP type: string - example: '192.0.2.0' - DestinationInterface.MacAddress: - description: Source address identifies the MAC address of the interface - type: string - example: '02-00-00-00-00-00' + description: Type of the interface + examples: + - TUNNEL DestinationInterface: - description: This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided. - type: object + title: DestinationInterface required: - - interfaceType + - interfaceType + type: object properties: interfaceType: $ref: '#/components/schemas/DestinationInterface.InterfaceType' tunnelInfo: $ref: '#/components/schemas/TunnelInfo' srcMacAddress: - $ref: '#/components/schemas/DestinationInterface.MacAddress' + type: string + description: Source address identifies the MAC address of the interface + examples: + - 02-00-00-00-00-00 dstMacAddress: - $ref: '#/components/schemas/DestinationInterface.MacAddress' + type: string + description: Source address identifies the MAC address of the interface + examples: + - 02-00-00-00-00-00 dstIpAddress: - $ref: '#/components/schemas/DestinationInterface.IpAddress' - DnsRule.DomainName: - description: FQDN resolved by the DNS rule - type: string - example: 'www.example.com' - DnsRule.Id: - description: Identifies the DNS Rule - type: string - example: 'dnsRule1' - DnsRule.IpAddress: - description: IP address associated with the FQDN resolved by the DNS rule - type: string - example: '192.0.2.0' + type: string + description: IP address of the remote destination + examples: + - 192.0.2.0 + description: This type represents the destination interface. If the action is FORWARD_DECAPSULATED, FORWARD_ENCAPSULATED or PASSTHROUGH one value shall be provided. If the action is DUPLICATE_DECAPSULATED or DUPLICATE_ENCAPSULATED, two values shall be provided. If the action is DROP, no value shall be provided. DnsRule.IpAddressType: - description: IP address type - type: string + title: DnsRule.IpAddressType enum: - - IP_V6 - - IP_V4 - example: 'IP_V6' - DnsRule.State: - description: DNS rule state. This attribute may be updated using HTTP PUT method + - IP_V6 + - IP_V4 type: string + description: IP address type + examples: + - IP_V6 + DnsRule.State: + title: DnsRule.State enum: - - ACTIVE - - INACTIVE - example: 'ACTIVE' - DnsRule.Ttl: - description: Time to live value - type: integer - format: uint32 - example: '?' + - ACTIVE + - INACTIVE + type: string + description: DNS rule state. This attribute may be updated using HTTP PUT method + examples: + - ACTIVE DnsRule: - description: This type represents the general information of a DNS rule. - type: object + title: DnsRule required: - - dnsRuleId - - domainName - - ipAddressType - - ipAddress - - state + - dnsRuleId + - domainName + - ipAddressType + - ipAddress + - state + type: object properties: dnsRuleId: - $ref: '#/components/schemas/DnsRule.Id' + type: string + description: Identifies the DNS Rule + examples: + - dnsRule1 domainName: - $ref: '#/components/schemas/DnsRule.DomainName' + type: string + description: FQDN resolved by the DNS rule + examples: + - www.example.com ipAddressType: $ref: '#/components/schemas/DnsRule.IpAddressType' ipAddress: - $ref: '#/components/schemas/DnsRule.IpAddress' + type: string + description: IP address associated with the FQDN resolved by the DNS rule + examples: + - 192.0.2.0 ttl: - $ref: '#/components/schemas/DnsRule.Ttl' + type: integer + description: Time to live value + contentEncoding: int32 state: $ref: '#/components/schemas/DnsRule.State' + description: This type represents the general information of a DNS rule. LinkType: - description: This type represents a type of link and may be referenced from data structures + title: LinkType type: object properties: - href: - $ref: '#/components/schemas/Href' + href: + type: string + description: URI referring to a resource + examples: + - /mecAppSuptApi/example + description: This type represents a type of link and may be referenced from data structures LinkType.ConfirmTermination: - description: >- - Link to the task resource where to confirm termination in case the - application is ready to be terminated before expiry of the timeout. + title: LinkType.ConfirmTermination type: object properties: - href: - $ref: '#/components/schemas/Href' - Href: - description: URI referring to a resource - type: string - format: uri - example: '/mecAppSuptApi/example' + href: + type: string + description: URI referring to a resource + examples: + - /mecAppSuptApi/example + description: Link to the task resource where to confirm termination in case the application is ready to be terminated before expiry of the timeout. MecAppSuptApiSubscriptionLinkList.Links: - description: Self-referring URI. - type: object + title: MecAppSuptApiSubscriptionLinkList.Links required: - - self + - self + type: object properties: self: $ref: '#/components/schemas/LinkType' subscriptions: - description: The MEC application instance's subscriptions type: array items: $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Subscription' + description: The MEC application instance's subscriptions + description: Self-referring URI. MecAppSuptApiSubscriptionLinkList.Subscription: - description: A link to a subscription. - type: object + title: MecAppSuptApiSubscriptionLinkList.Subscription required: - - href - - rel + - href + - rel + type: object properties: href: - $ref: '#/components/schemas/Href' + type: string + description: URI referring to a resource + examples: + - /mecAppSuptApi/example rel: - description: >- - The values shall be set to AppTerminationNotificationSubscription. type: string + description: The values shall be set to AppTerminationNotificationSubscription. + description: A link to a subscription. MecAppSuptApiSubscriptionLinkList: - description: >- - This type represents a list of links related to currently existing - subscriptions for a MEC application instance. This information - is returned when sending a request to receive current subscriptions. - type: object + title: MecAppSuptApiSubscriptionLinkList required: - - _links + - _links + type: object properties: _links: $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList.Links' + description: This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions. OperationActionType: - description: Operation that is being performed on the MEC application instance. - type: string + title: OperationActionType enum: - - STOPPING - - TERMINATING - example: 'TERMINATING' + - STOPPING + - TERMINATING + type: string + description: Operation that is being performed on the MEC application instance. + examples: + - TERMINATING ProblemDetails: + title: ProblemDetails type: object properties: type: - $ref: '#/components/schemas/Problem.type' + type: string + description: A URI reference according to IETF RFC 3986 that identifies the problem type title: - $ref: '#/components/schemas/Problem.title' + type: string + description: A short, human-readable summary of the problem type status: - $ref: '#/components/schemas/Problem.status' + type: integer + description: The HTTP status code for this occurrence of the problem + contentEncoding: int32 detail: - $ref: '#/components/schemas/Problem.detail' + type: string + description: A human-readable explanation specific to this occurrence of the problem instance: - $ref: '#/components/schemas/Problem.instance' - 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 - Problem.status: - type: integer - format: uint32 - description: The HTTP status code for this occurrence of the problem - Problem.title: - type: string - description: 'A short, human-readable summary of the problem type' - Problem.type: - type: string - format: uri - description: >- - A URI reference according to IETF RFC 3986 that identifies the problem - type - ReadyIndicationType: - description: Indication about the MEC application instance. - type: string - enum: - - READY - example: 'READY' + type: string + description: A URI reference that identifies the specific occurrence of the problem Self: - description: Self-referring URI. - type: object + title: Self required: - - self + - self + type: object properties: self: $ref: '#/components/schemas/LinkType' - readOnly: true - TimingCaps.NtpServers.AuthenticationKeyNum: - description: Authentication key number - type: integer - format: uint32 - example: 1 + description: Self-referring URI. TimingCaps.NtpServers.AuthenticationOption: - description: NTP authentication option - type: string + title: TimingCaps.NtpServers.AuthenticationOption enum: - - NONE - - SYMMETRIC_KEY - - AUTO_KEY - example: 'NONE' - TimingCaps.NtpServers.DelayReqMaxRate: - description: Acceptable maximum rate of the Delay_Req messages in packets per second - type: integer - format: uint32 - example: 10 - TimingCaps.NtpServers.LocalPriority: - description: NTP server local priority - type: integer - format: uint32 - example: 1 - TimingCaps.NtpServers.MaxPollingInterval: - description: >- - Maximum poll interval for NTP messages, in seconds as a power of two. - Range 3...17 - type: integer - format: uint32 - example: 17 - TimingCaps.NtpServers.MinPollingInterval: - description: >- - Minimum poll interval for NTP messages, in seconds as a power of two. - Range 3...17 - type: integer - format: uint32 - example: 3 - TimingCaps.NtpServers.NtpServerAddr: - description: NTP server address + - NONE + - SYMMETRIC_KEY + - AUTO_KEY type: string - example: '192.0.2.0' + description: NTP authentication option + examples: + - NONE TimingCaps.NtpServers.NtpServerAddrType: - description: Address type of NTP server - type: string + title: TimingCaps.NtpServers.NtpServerAddrType enum: - - IP_ADDRESS - - DNS_NAME - example: 'IP_ADDRESS' - TimingCaps.NtpServers_PtpMasterIpAddress: - description: PTP Master IP Address + - IP_ADDRESS + - DNS_NAME type: string - example: '192.0.2.0' - TimingCaps.NtpServers_PtpMasterLocalPriority: - description: PTP Master local priority - type: integer - format: uint32 - example: 1 + description: Address type of NTP server + examples: + - IP_ADDRESS TimingCaps.NtpServers: - description: NTP server detail. - type: object + title: TimingCaps.NtpServers required: - - ntpServerAddrType - - ntpServerAddr - - minPollingInterval - - maxPollingInterval - - localPriority - - authenticationOption - - authenticationKeyNum + - ntpServerAddrType + - ntpServerAddr + - minPollingInterval + - maxPollingInterval + - localPriority + - authenticationOption + - authenticationKeyNum + type: object properties: ntpServerAddrType: $ref: '#/components/schemas/TimingCaps.NtpServers.NtpServerAddrType' ntpServerAddr: - $ref: '#/components/schemas/TimingCaps.NtpServers.NtpServerAddr' + type: string + description: NTP server address + examples: + - 192.0.2.0 minPollingInterval: - $ref: '#/components/schemas/TimingCaps.NtpServers.MinPollingInterval' + type: integer + description: Minimum poll interval for NTP messages, in seconds as a power of two. Range 3...17 + contentEncoding: int32 + examples: + - 3 maxPollingInterval: - $ref: '#/components/schemas/TimingCaps.NtpServers.MaxPollingInterval' + type: integer + description: Maximum poll interval for NTP messages, in seconds as a power of two. Range 3...17 + contentEncoding: int32 + examples: + - 17 localPriority: - $ref: '#/components/schemas/TimingCaps.NtpServers.LocalPriority' + type: integer + description: NTP server local priority + contentEncoding: int32 + examples: + - 1 authenticationOption: $ref: '#/components/schemas/TimingCaps.NtpServers.AuthenticationOption' authenticationKeyNum: - $ref: '#/components/schemas/TimingCaps.NtpServers.AuthenticationKeyNum' - TimingCaps_PtpMasters: + type: integer + description: Authentication key number + contentEncoding: int32 + examples: + - 1 description: NTP server detail. - type: object + TimingCaps_PtpMasters: + title: TimingCaps_PtpMasters required: - - ptpMasterIpAddress - - ptpMasterLocalPriority - - delayReqMaxRate + - ptpMasterIpAddress + - ptpMasterLocalPriority + - delayReqMaxRate + type: object properties: ptpMasterIpAddress: - $ref: '#/components/schemas/TimingCaps.NtpServers_PtpMasterIpAddress' + type: string + description: PTP Master IP Address + examples: + - 192.0.2.0 ptpMasterLocalPriority: - $ref: '#/components/schemas/TimingCaps.NtpServers_PtpMasterLocalPriority' + type: integer + description: PTP Master local priority + contentEncoding: int32 + examples: + - 1 delayReqMaxRate: - $ref: '#/components/schemas/TimingCaps.NtpServers.DelayReqMaxRate' + type: integer + description: Acceptable maximum rate of the Delay_Req messages in packets per second + contentEncoding: int32 + examples: + - 10 + description: NTP server detail. TimingCaps.TimeStamp: - description: time - type: object + title: TimingCaps.TimeStamp required: - - nanoSeconds - - seconds + - seconds + - nanoSeconds + type: object properties: seconds: type: integer - format: uint32 - description: >- - The seconds part of the time. Time is defined as Unix-time since - January 1, 1970, 00:00:00 UTC - example: 1577836800 + description: The seconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + contentEncoding: int32 + examples: + - 1577836800 nanoSeconds: type: integer - format: uint32 - description: >- - The nanoseconds part of the time. Time is defined as Unix-time since - January 1, 1970, 00:00:00 UTC - example: 0 + description: The nanoseconds part of the time. Time is defined as Unix-time since January 1, 1970, 00:00:00 UTC + contentEncoding: int32 + examples: + - 0 + description: time TimingCaps: - description: >- - This type represents the information provided by the MEC - platform in response to the Timing capabilities Query message. + title: TimingCaps type: object properties: timeStamp: $ref: '#/components/schemas/TimingCaps.TimeStamp' ntpServers: - description: Available NTP servers type: array items: $ref: '#/components/schemas/TimingCaps.NtpServers' + description: Available NTP servers ptpMasters: - description: Available PTP Masters type: array items: $ref: '#/components/schemas/TimingCaps_PtpMasters' - TrafficFilter.Address: - description: Identify the traffic ip address. - type: string - example: '192.168.1.1' - TrafficFilter.DSCP: - description: >- - Used to match all IPv4 packets that have the same Differentiated - Services Code Point (DSCP) - type: integer - format: uint32 - example: 0 - TrafficFilter.Port: - description: A port - type: string - example: '8080' - TrafficFilter.Protocol: - description: Protocol of the traffic filter - type: string - example: '?' - TrafficFilter.QCI: - description: >- - Used to match all packets that have the same Quality Class Indicator - (QCI). - type: integer - format: uint32 - example: 1 - TrafficFilter.TC: - description: Used to match all IPv6 packets that have the same Traffic Class. - type: integer - format: uint32 - example: 1 - TrafficFilter.Token: - description: Used for token based traffic rule - type: string - example: '?' - TrafficFilter.TunnelAddress: - description: Used for GTP tunnel based traffic rule - type: string - example: '?' - TrafficFilter.TunnelPort: - description: Used for GTP tunnel based traffic rule - type: string - example: '?' + description: Available PTP Masters + description: This type represents the information provided by the MEC platform in response to the Timing capabilities Query message. TrafficFilter: - description: This type represents the traffic filter. + title: TrafficFilter type: object properties: srcAddress: - description: >- - An IP address or a range of IP address. For IPv4, the IP address - could be an IP address plus mask, or an individual IP address, or a - range of IP addresses. For IPv6, the IP address could be an IP - prefix, or a range of IP prefixes. type: array items: - $ref: '#/components/schemas/TrafficFilter.Address' + type: string + description: An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes. dstAddress: - description: >- - An IP address or a range of IP address. For IPv4, the IP address - could be an IP address plus mask, or an individual IP address, or a - range of IP addresses. For IPv6, the IP address could be an IP - prefix, or a range of IP prefixes. type: array items: - $ref: '#/components/schemas/TrafficFilter.Address' + type: string + description: An IP address or a range of IP address. For IPv4, the IP address could be an IP address plus mask, or an individual IP address, or a range of IP addresses. For IPv6, the IP address could be an IP prefix, or a range of IP prefixes. srcPort: - description: A port or a range of ports type: array items: - $ref: '#/components/schemas/TrafficFilter.Port' - dstPort: + type: string description: A port or a range of ports + dstPort: type: array items: - $ref: '#/components/schemas/TrafficFilter.Port' + type: string + description: A port or a range of ports protocol: - description: Specify the protocol of the traffic filter type: array items: - $ref: '#/components/schemas/TrafficFilter.Protocol' + type: string + description: Specify the protocol of the traffic filter token: - description: Used for token based traffic rule type: array items: - $ref: '#/components/schemas/TrafficFilter.Token' + type: string + description: Used for token based traffic rule srcTunnelAddress: - description: Used for GTP tunnel based traffic rule type: array items: - $ref: '#/components/schemas/TrafficFilter.TunnelAddress' - tgtTunnelAddress: + type: string description: Used for GTP tunnel based traffic rule + tgtTunnelAddress: type: array items: - $ref: '#/components/schemas/TrafficFilter.TunnelAddress' - srcTunnelPort: + type: string description: Used for GTP tunnel based traffic rule + srcTunnelPort: type: array items: - $ref: '#/components/schemas/TrafficFilter.TunnelPort' - dstTunnelPort: + type: string description: Used for GTP tunnel based traffic rule + dstTunnelPort: type: array items: - $ref: '#/components/schemas/TrafficFilter.TunnelPort' + type: string + description: Used for GTP tunnel based traffic rule qCI: - $ref: '#/components/schemas/TrafficFilter.QCI' + type: integer + description: Used to match all packets that have the same Quality Class Indicator (QCI). + contentEncoding: int32 + examples: + - 1 dSCP: - $ref: '#/components/schemas/TrafficFilter.DSCP' + type: integer + description: Used to match all IPv4 packets that have the same Differentiated Services Code Point (DSCP) + contentEncoding: int32 + examples: + - 0 tC: - $ref: '#/components/schemas/TrafficFilter.TC' + type: integer + description: Used to match all IPv6 packets that have the same Traffic Class. + contentEncoding: int32 + examples: + - 1 + description: This type represents the traffic filter. TrafficRule.Action: - description: >- - The action of the MEC host data plane when a packet matches the trafficFilter - - type: string + title: TrafficRule.Action enum: - - DROP - - FORWARD_DECAPSULATED - - FORWARD_ENCAPSULATED - - PASSTHROUGH - - DUPLICATE_DECAPSULATED - - DUPLICATE_ENCAPSULATED - example: 'DROP' - TrafficRule.FilterType: - description: >- - Definition of filter per FLOW or PACKET. If flow the filter match - UE->EPC packet and the reverse packet is handled in the same context + - DROP + - FORWARD_DECAPSULATED + - FORWARD_ENCAPSULATED + - PASSTHROUGH + - DUPLICATE_DECAPSULATED + - DUPLICATE_ENCAPSULATED type: string + description: The action of the MEC host data plane when a packet matches the trafficFilter + examples: + - DROP + TrafficRule.FilterType: + title: TrafficRule.FilterType enum: - - FLOW - - PACKET - example: FLOW - TrafficRule.Id: - description: Identify the traffic rule. + - FLOW + - PACKET type: string - example: 'TrafficRule1' - TrafficRule_Priority: - description: >- - Priority of this traffic rule. If traffic rule conflicts, the one with - higher priority take precedence - type: integer - format: uint32 - example: 1 + description: Definition of filter per FLOW or PACKET. If flow the filter match UE->EPC packet and the reverse packet is handled in the same context + examples: + - FLOW TrafficRule.State: - description: Contains the traffic rule state. This attribute may be updated using HTTP PUT method - type: string + title: TrafficRule.State enum: - - ACTIVE - - INACTIVE - example: 'ACTIVE' + - ACTIVE + - INACTIVE + type: string + description: Contains the traffic rule state. This attribute may be updated using HTTP PUT method + examples: + - ACTIVE TrafficRule: - description: This type represents the general information of a traffic rule. - type: object + title: TrafficRule required: - - trafficRuleId - - filterType - - priority - - trafficFilter - - action - - state + - trafficRuleId + - filterType + - priority + - trafficFilter + - action + - state + type: object properties: trafficRuleId: - $ref: '#/components/schemas/TrafficRule.Id' + type: string + description: Identify the traffic rule. + examples: + - TrafficRule1 filterType: $ref: '#/components/schemas/TrafficRule.FilterType' priority: - $ref: '#/components/schemas/TrafficRule_Priority' + type: integer + description: Priority of this traffic rule. If traffic rule conflicts, the one with higher priority take precedence + contentEncoding: int32 + examples: + - 1 trafficFilter: type: array items: $ref: '#/components/schemas/TrafficFilter' + description: '' action: $ref: '#/components/schemas/TrafficRule.Action' dstInterface: $ref: '#/components/schemas/DestinationInterface' state: $ref: '#/components/schemas/TrafficRule.State' - TunnelInfo.TunnelDstAddress: - description: Destination address of the tunnel - type: string - example: '?' - TunnelInfo.TunnelSrcAddress: - description: Source address of the tunnel - type: string - example: '?' + description: This type represents the general information of a traffic rule. TunnelInfo.TunnelType: - description: This type represents the tunnel information. - type: string + title: TunnelInfo.TunnelType enum: - - GTP_U - - GRE - example: 'GTP_U' - TunnelInfo: + - GTP_U + - GRE + type: string description: This type represents the tunnel information. - type: object + examples: + - GTP_U + TunnelInfo: + title: TunnelInfo required: - - tunnelType + - tunnelType + type: object properties: tunnelType: $ref: '#/components/schemas/TunnelInfo.TunnelType' tunnelDstAddress: - $ref: '#/components/schemas/TunnelInfo.TunnelDstAddress' - tunnelSrcAddress: - $ref: '#/components/schemas/TunnelInfo.TunnelSrcAddress' - parameters: - Path.AppInstanceId: - name: appInstanceId - description: >- - Represents a MEC application instance. Note that the - appInstanceId is allocated by the MEC platform manager. - in: path - required: true - schema: - type: string - Path.DnsRuleId: - name: dnsRuleId - description: Represents a DNS rule. - in: path - required: true - schema: - type: string - Path.SubscriptionId: - name: subscriptionId - description: >- - Represents a subscription to the notifications from the MEC - platform. - in: path - required: true - schema: - type: string - Path.TrafficRuleId: - name: trafficRuleId - description: Represents a traffic rule. - in: path - required: true - schema: - type: string - responses: - ApplicationsDnsRules.200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - type: array - minItems: 0 - items: - $ref: '#/components/schemas/DnsRule' - examples: - DnsRules: - $ref: '#/components/examples/DnsRules' - links: - getIndividualMeDNSRule: - $ref: '#/components/links/GetIndividualMeDNSRule' - putIndividualMeDNSRule: - $ref: '#/components/links/PutIndividualMeDNSRule' - ApplicationsDnsRule.200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/DnsRule' - examples: - DnsRule: - $ref: '#/components/examples/DnsRule' - ApplicationsSubscriptions.200: - description: >- - Upon success, a response body containing the list of links to the - requested subscriptions is returned. - content: - application/json: - schema: - $ref: '#/components/schemas/MecAppSuptApiSubscriptionLinkList' - links: - getIndividualmecAppSuptApiSubscriptionLinkList: - $ref: '#/components/links/GetIndividualmecAppSuptApiSubscriptionLinkList' - delIndividualmecAppSuptApiSubscriptionLinkList: - $ref: '#/components/links/DelIndividualmecAppSuptApiSubscriptionLinkList' - ApplicationsSubscriptions.201: - description: >- - Entity body in the request contains a subscription to the - MEC service availability notifications that is to be created. - headers: - location: - description: The resource URI of the created resource - schema: - type: string - format: uri - content: - application/json: - schema: - $ref: '#/components/schemas/AppTerminationNotificationSubscription' - links: - getIndividualmecAppSuptApiSubscription: - $ref: '#/components/links/GetIndividualmecAppSuptApiSubscription' - delIndividualmecAppSuptApiSubscription: - $ref: '#/components/links/DelIndividualmecAppSuptApiSubscription' - ApplicationsSubscription.200: - description: >- - Upon success, a response body containing the requested subscription - is returned. - content: - application/json: - schema: - $ref: '#/components/schemas/AppTerminationNotificationSubscription' - ApplicationsTrafficRules.200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - type: array - minItems: 0 - items: - $ref: '#/components/schemas/TrafficRule' + type: string + description: Destination address of the tunnel examples: - TrafficRules: - $ref: '#/components/examples/TrafficRules' - links: - getIndividualMeTrafficRule: - $ref: '#/components/links/GetIndividualMeTrafficRule' - putIndividualMeTrafficRule: - $ref: '#/components/links/PutIndividualMeTrafficRule' - ApplicationsTrafficRule.200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/TrafficRule' + - '?' + tunnelSrcAddress: + type: string + description: Source address of the tunnel examples: - TrafficRule: - $ref: '#/components/examples/TrafficRule' - TimingCurrentTime.200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/CurrentTime' - TimingCaps.200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/TimingCaps' - 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.409: - description: >- - Conflict. - The operation cannot be executed currently, due to a conflict with - the state of the resource. Typically, this is because the application - instance resource is in NOT_INSTANTIATED state. - 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' - Error.429: - description: >- - Too Many Requests. - It is used when a rate limiter has triggered. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - text/plain: - schema: - $ref: '#/components/schemas/Empty' + - '?' + description: This type represents the tunnel information. + TimeSourceStatus: + title: TimeSourceStatus + enum: + - TRACEABLE + - NONTRACEABLE + type: string + description: Platform Time Source status. 1 = TRACEABLE - time source is locked to the UTC time source. 2 = NONTRACEABLE - time source is not locked to the UTC time source + examples: + - TRACEABLE + requestBodies: - ApplicationsConfirmReady: - content: - application/json: - schema: - $ref: '#/components/schemas/AppReadyConfirmation' - ApplicationsConfirmTermination: - content: - application/json: - schema: - $ref: '#/components/schemas/AppTerminationConfirmation' - ApplicationsDnsRule: - content: - application/json: - schema: - $ref: '#/components/schemas/DnsRule' - description: The updated state is included in the entity body of the request. - required: true - ApplicationsSubscriptions: - content: - application/json: - schema: - $ref: '#/components/schemas/AppTerminationNotificationSubscription' - description: >- - Entity body in the request contains a subscription to the MEC - application termination notifications that is to be created. - required: true - ApplicationsTrafficRule: - content: - application/json: - schema: - $ref: '#/components/schemas/TrafficRule' - description: One or more updated attributes that are allowed to be changed - required: true AppTerminationNotification: content: application/json: schema: $ref: '#/components/schemas/AppTerminationNotification' required: true - callbacks: - AppTerminationNotification: - '{$request.body#/callbackReference}': - post: - description: >- - Represents the information that the MEP notifies the - subscribed application instance about the corresponding - application instance termination/stop - operationId: AppTerminationNotification_POST - tags: - - callbacks - requestBody: - $ref: '#/components/requestBodies/AppTerminationNotification' - responses: - '200': - description: Expected responses from callback consumer, if it accepts the callback - links: - GetIndividualMeDNSRule: - operationId: ApplicationsDnsRule_GET - description: The `dnsRuleId` value returned in the response can be used as the `dnsRuleId` parameter in `GET /applications/{appInstanceId}/dns_rules/{dnsRuleId}` - parameters: - dnsRuleId: '$response.body#/dnsRuleId' - PutIndividualMeDNSRule: - operationId: ApplicationsDnsRule_PUT - description: The `dnsRuleId` value returned in the response can be used as the `dnsRuleId` parameter in `PUT /applications/{appInstanceId}/dns_rules/{dnsRuleId}` - parameters: - dnsRuleId: '$response.body#/dnsRuleId' - GetIndividualMeTrafficRule: - operationId: ApplicationsTrafficRule_GET - description: The `trafficRuleId` value returned in the response can be used as the `trafficRuleId` parameter in `GET /applications/{appInstanceId}/traffic_rules/{trafficRuleId}` - parameters: - trafficRuleId: '$response.body#/trafficRuleId' - PutIndividualMeTrafficRule: - operationId: ApplicationsTrafficRule_PUT - description: The `trafficRuleId` value returned in the response can be used as the `trafficRuleId` parameter in `PUT /applications/{appInstanceId}/traffic_rules/{trafficRuleId}` - parameters: - trafficRuleId: '$response.body#/trafficRuleId' - GetIndividualmecAppSuptApiSubscription: - operationId: ApplicationsSubscription_GET - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_app_support\/v1\/applications\/.*\/subscriptions\/.*\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - DelIndividualmecAppSuptApiSubscription: - operationId: ApplicationsSubscription_DELETE - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_app_support\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - GetIndividualmecAppSuptApiSubscriptionLinkList: - operationId: ApplicationsSubscription_GET - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_app_support\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - DelIndividualmecAppSuptApiSubscriptionLinkList: - operationId: ApplicationsSubscription_DELETE - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_app_support\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - examples: - DnsRule: - value: - dnsRuleId: 'DnsRule1' - domainName: 'www.example.com' - ipAddressType: 'IP_V4' - ipAddress: '146.241.7.3' - ttl: 300 - state: 'ACTIVE' - DnsRules: - value: - - dnsRuleId: 'DnsRule1' - domainName: 'www.example.com' - ipAddressType: 'IP_V4' - ipAddress: '146.241.7.3' - ttl: 300 - state: 'ACTIVE' - - dnsRuleId: 'DnsRule2' - domainName: 'www.example.com' - ipAddressType: 'IP_V4' - ipAddress: '146.241.7.4' - ttl: 300 - state: 'INACTIVE' - TrafficRule: - value: - trafficRuleId: 'TrafficRule123' - serName: 'ExampleService' - filterType: 'FLOW' - priority: 1 - trafficFilter: - - srcAddress: - - '192.168.2.0/24' - - '192.168.3.0/24' - dstAddress: - - '192.127.4.100/32' - dstPort: - - '80' - action: 'FORWARD_DECAPSULATED' - dstInterface: - interfaceType: 'IP' - dstIpAddress: '20.1.1.1' - state: 'ACTIVE' - TrafficRules: - value: - - trafficRuleId: 'TrafficRule123' - serName: 'ExampleService' - filterType: 'FLOW' - priority: 1 - trafficFilter: - - srcAddress: - - '192.168.2.0/24' - - '192.168.3.0/24' - dstAddress: - - '192.127.4.100/32' - dstPort: - - '80' - action: 'FORWARD_DECAPSULATED' - dstInterface: - interfaceType: 'IP' - dstIpAddress: '20.1.1.1' - state: 'ACTIVE' + +security: +- {} diff --git a/MecServiceMgmtApi.json b/MecServiceMgmtApi.json index fab08a9b0f4eddb58af205d1d7e738d6dde8ca09..d9e11f1e67ad0ceceb533ccb29d11301b293c8ad 100644 --- a/MecServiceMgmtApi.json +++ b/MecServiceMgmtApi.json @@ -1,16 +1,7 @@ { - "openapi": "3.0.2", - "servers": [ - { - "url": "http://127.0.0.1:8081/mec_service_mgmt/v1" - }, - { - "url": "https://127.0.0.1:8081/mec_service_mgmt/v1" - } - ], + "openapi": "3.1.0", "info": { "title": "MEC Service Management API", - "version": "2.1.1", "description": "The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI", "license": { "name": "BSD-3-Clause", @@ -18,12 +9,24 @@ }, "contact": { "email": "cti_support@etsi.org" - } + }, + "version": "2.1.1" }, "externalDocs": { "description": "ETSI GS MEC011 Application Enablement API, V2.1.1", "url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf" }, + "jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema", + "servers": [ + { + "url": "http://127.0.0.1:8081/mec_service_mgmt/v1", + "variables": {} + }, + { + "url": "https://127.0.0.1:8081/mec_service_mgmt/v1", + "variables": {} + } + ], "tags": [ { "name": "appSubscriptions" @@ -42,685 +45,1879 @@ } ], "paths": { - "/services": { + "/applications/{appInstanceId}/subscriptions": { "get": { - "description": "This method retrieves information about a list of mecService resources. This method is typically used in \"service availability query\" procedure", - "operationId": "Services_GET", "tags": [ - "services" + "appSubscriptions" ], + "description": "The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains entity body with all the subscriptions for the requestor.", + "operationId": "ApplicationsSubscriptions_GET", "parameters": [ { - "$ref": "#/components/parameters/Query.Ser_instance_id" - }, - { - "$ref": "#/components/parameters/Query.Ser_name" - }, - { - "$ref": "#/components/parameters/Query.Ser_category_id" - }, - { - "$ref": "#/components/parameters/Query.Consumed_local_only" - }, - { - "$ref": "#/components/parameters/Query.Is_local" - }, - { - "$ref": "#/components/parameters/Query.LocalityType" + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } } ], "responses": { "200": { - "$ref": "#/components/responses/Services.200" + "description": "Upon success, a response body containing the list of links to the requested subscriptions is returned.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/MecServiceMgmtApiSubscriptionLinkList" + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" - }, - "414": { - "$ref": "#/components/responses/Error.414" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } - } - }, - "/services/{serviceId}": { - "parameters": [ - { - "$ref": "#/components/parameters/Path.ServiceId" - } - ], - "get": { - "description": "This method retrieves information about a mecService resource. This method is typically used in \"service availability query\" procedure", - "operationId": "ServicesServiceId_GET", + }, + "deprecated": false + }, + "post": { "tags": [ - "services" + "appSubscriptions" + ], + "description": "The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains entity body describing the created subscription.", + "operationId": "ApplicationsSubscriptions_POST", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } ], + "requestBody": { + "description": "Entity body in the request contains a subscription to the MEC application termination notifications that is to be created.", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SerAvailabilityNotificationSubscription" + } + } + }, + "required": true + }, "responses": { - "200": { - "$ref": "#/components/responses/ServicesServiceId.200" + "201": { + "description": "Entity body in the request contains a subscription to the MEC service availability notifications that is to be created.", + "headers": { + "location": { + "description": "The resource URI of the created resource", + "content": { + "text/plain": { + "schema": { + "type": "string", + "description": "The resource URI of the created resource", + "contentMediaType": "text/plain" + } + } + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SerAvailabilityNotificationSubscription" + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + } + }, + "deprecated": false, + "callbacks": { + "ServiceAvailailityNotification": { + "{$request.body#/callbackReference}": { + "post": { + "description": "'Represents the service availability information that is used in the following cases\n when the MEC platform announces the newly available\nservices to the authorized relevant MEC applications (e.g. the applications that indicate the services as \"optional\" or \"required\") that are subscribed to the corresponding service availability notifications when the MEC platform notifies the authorized relevant applications that are subscribed to the corresponding service availability notifications about the service availability changes.'", + "operationId": "ServiceAvailabilityNotification_POST", + "tags": [ + "callbacks" + ], + "requestBody": { + "$ref": "#/components/requestBodies/ServiceAvailabilityNotification" + }, + "responses": { + "200": { + "description": "Expected responses from callback consumer, if it accepts the callback" + } + } + } + } } } - } + }, + "parameters": [] }, - "/applications/{appInstanceId}/services": { - "parameters": [ - { - "$ref": "#/components/parameters/Path.AppInstanceId" - } - ], + "/applications/{appInstanceId}/subscriptions/{subscriptionId}": { "get": { - "description": "This method retrieves information about a list of mecService resources. This method is typically used in \"service availability query\" procedure", - "operationId": "AppServices_GET", "tags": [ - "appServices" + "appSubscriptions" ], + "description": "The GET method requests information about a subscription for this requestor. Upon success, the response contains entity body with the subscription for the requestor.", + "operationId": "ApplicationsSubscription_GET", "parameters": [ { - "$ref": "#/components/parameters/Query.Ser_instance_id" - }, - { - "$ref": "#/components/parameters/Query.Ser_name" - }, - { - "$ref": "#/components/parameters/Query.Ser_category_id" - }, - { - "$ref": "#/components/parameters/Query.Consumed_local_only" - }, - { - "$ref": "#/components/parameters/Query.Is_local" + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } }, { - "$ref": "#/components/parameters/Query.LocalityType" + "name": "subscriptionId", + "in": "path", + "description": "Represents a subscription to the notifications from the MEC platform.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } } ], "responses": { "200": { - "$ref": "#/components/responses/Services.200" + "description": "Upon success, a response body containing the requested subscription is returned.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/SerAvailabilityNotificationSubscription" + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" - }, - "414": { - "$ref": "#/components/responses/Error.414" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } + }, + "deprecated": false }, - "post": { - "description": "This method is used to create a mecService resource. This method is typically used in \"service availability update and new service registration\" procedure", - "operationId": "AppServices_POST", + "delete": { "tags": [ - "appServices" + "appSubscriptions" ], - "responses": { - "201": { - "$ref": "#/components/responses/Services.201" + "description": "This method deletes a mecSrvMgmtSubscription. This method is typically used in \"Unsubscribing from service availability event notifications\" procedure.", + "operationId": "ApplicationsSubscription_DELETE", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } }, - "400": { - "$ref": "#/components/responses/Error.400" + { + "name": "subscriptionId", + "in": "path", + "description": "Represents a subscription to the notifications from the MEC platform.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "responses": { + "204": { + "description": "No Content", + "headers": {}, + "content": {} }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } }, - "requestBody": { - "$ref": "#/components/requestBodies/Services.Post" - } - } + "deprecated": false + }, + "parameters": [] }, - "/applications/{appInstanceId}/services/{serviceId}": { - "parameters": [ - { - "$ref": "#/components/parameters/Path.AppInstanceId" - }, - { - "$ref": "#/components/parameters/Path.ServiceId" - } - ], + "/applications/{appInstanceId}/services": { "get": { - "description": "This method retrieves information about a mecService resource. This method is typically used in \"service availability query\" procedure", - "operationId": "AppServicesServiceId_GET", "tags": [ "appServices" ], - "responses": { - "200": { - "$ref": "#/components/responses/ServicesServiceId.200" + "description": "This method retrieves information about a list of mecService resources. This method is typically used in \"service availability query\" procedure", + "operationId": "AppServices_GET", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } }, - "400": { - "$ref": "#/components/responses/Error.400" + { + "name": "ser_instance_id", + "in": "query", + "description": "A MEC application instance may use multiple ser_instance_ids as an input parameter to query the availability of a list of MEC service instances. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present.", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } }, - "403": { - "$ref": "#/components/responses/Error.403" + { + "name": "ser_name", + "in": "query", + "description": "A MEC application instance may use multiple ser_names as an input parameter to query the availability of a list of MEC service instances. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present.", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } }, - "404": { - "$ref": "#/components/responses/Error.404" + { + "name": "ser_category_id", + "in": "query", + "description": "A MEC application instance may use ser_category_id as an input parameter to query the availability of a list of MEC service instances in a serCategory. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present.", + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "consumed_local_only", + "in": "query", + "description": "Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance.", + "style": "form", + "explode": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "is_local", + "in": "query", + "description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.", + "style": "form", + "explode": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "scope_of_locality", + "in": "query", + "description": "A MEC application instance may use scope_of_locality as an input parameter to query the availability of a list of MEC service instances with a certain scope of locality.", + "style": "form", + "explode": true, + "schema": { + "type": "string" + } } - } - }, - "put": { - "description": "This method updates the information about a mecService resource", - "operationId": "AppServicesServiceId_PUT", - "tags": [ - "appServices" ], "responses": { "200": { - "$ref": "#/components/responses/ServicesServiceId.200" + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "minItems": 0, + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceInfo" + }, + "description": "", + "examples": [ + [ + { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.0", + "port": 8080 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": [ + "OAUTH2_CLIENT_CREDENTIALS" + ], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON" + } + ] + ], + "contentMediaType": "application/json" + }, + "examples": { + "ServiceInfoList": { + "value": [ + { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.0", + "port": 8080 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": [ + "OAUTH2_CLIENT_CREDENTIALS" + ], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON" + } + ] + } + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, - "412": { - "$ref": "#/components/responses/Error.412" - } + "414": { + "description": "It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + } }, - "requestBody": { - "$ref": "#/components/requestBodies/ServicesServiceId" - } + "deprecated": false }, - "delete": { - "description": "This method deletes a mecService resource. This method is typically used in the service deregistration procedure. ", - "operationId": "AppServicesServiceId_DELETE", + "post": { "tags": [ "appServices" ], + "description": "This method is used to create a mecService resource. This method is typically used in \"service availability update and new service registration\" procedure", + "operationId": "AppServices_POST", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "requestBody": { + "description": "New ServiceInfo with updated \"state\" is included as entity body of the request", + "content": { + "application/json": { + "schema": { + "oneOf": [ + { + "type": "object" + }, + { + "type": "object" + } + ], + "description": "New ServiceInfo with updated \"state\" is included as entity body of the request", + "contentMediaType": "application/json" + } + } + }, + "required": true + }, "responses": { - "204": { - "description": "No Content" + "201": { + "description": "Upon success, the HTTP response shall include a Location HTTP header that contains the resource URI of the created resource.", + "headers": { + "location": { + "description": "The resource URI of the created resource", + "content": { + "text/plain": { + "schema": { + "type": "string", + "description": "The resource URI of the created resource", + "contentMediaType": "text/plain" + } + } + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceInfo" + }, + "examples": { + "ServiceInfo": { + "value": { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "uris": [ + "/mecSerMgmtApi/service/EntryPoint" + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": [ + "OAUTH2_CLIENT_CREDENTIALS" + ], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON" + } + } + } + } + } + }, + "400": { + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } - } + }, + "deprecated": false + }, + "parameters": [] }, - "/applications/{appInstanceId}/subscriptions": { - "parameters": [ - { - "$ref": "#/components/parameters/Path.AppInstanceId" - } - ], + "/applications/{appInstanceId}/services/{serviceId}": { "get": { - "description": "The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains entity body with all the subscriptions for the requestor.", - "operationId": "ApplicationsSubscriptions_GET", "tags": [ - "appSubscriptions" + "appServices" + ], + "description": "This method retrieves information about a mecService resource. This method is typically used in \"service availability query\" procedure", + "operationId": "AppServicesServiceId_GET", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + }, + { + "name": "serviceId", + "in": "path", + "description": "Represents a MEC service instance.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } ], "responses": { "200": { - "$ref": "#/components/responses/ApplicationsSubscriptions.200" + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceInfo" + }, + "examples": { + "ServiceInfo": { + "value": { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "uris": [ + "/mecSerMgmtApi/service/EntryPoint" + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": [ + "OAUTH2_CLIENT_CREDENTIALS" + ], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON" + } + } + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } + }, + "deprecated": false }, - "post": { - "description": "The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains entity body describing the created subscription.", - "operationId": "ApplicationsSubscriptions_POST", + "put": { "tags": [ - "appSubscriptions" + "appServices" ], - "responses": { - "201": { - "$ref": "#/components/responses/ApplicationsSubscriptions.201" - }, - "400": { - "$ref": "#/components/responses/Error.400" - }, - "403": { - "$ref": "#/components/responses/Error.403" + "description": "This method updates the information about a mecService resource", + "operationId": "AppServicesServiceId_PUT", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } }, - "404": { - "$ref": "#/components/responses/Error.404" + { + "name": "serviceId", + "in": "path", + "description": "Represents a MEC service instance.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } } - }, + ], "requestBody": { - "$ref": "#/components/requestBodies/ApplicationsSubscriptions" - }, - "callbacks": { - "serviceAvailabilityNotification": { - "$ref": "#/components/callbacks/ServiceAvailabilityNotification" - } - } - } - }, - "/applications/{appInstanceId}/subscriptions/{subscriptionId}": { - "parameters": [ - { - "$ref": "#/components/parameters/Path.AppInstanceId" + "description": "New ServiceInfo with updated \"state\" is included as entity body of the request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceInfo" + } + } + }, + "required": true }, - { - "$ref": "#/components/parameters/Path.SubscriptionId" - } - ], - "get": { - "description": "The GET method requests information about a subscription for this requestor. Upon success, the response contains entity body with the subscription for the requestor.", - "operationId": "ApplicationsSubscription_GET", - "tags": [ - "appSubscriptions" - ], "responses": { "200": { - "$ref": "#/components/responses/ApplicationsSubscription.200" + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceInfo" + }, + "examples": { + "ServiceInfo": { + "value": { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "uris": [ + "/mecSerMgmtApi/service/EntryPoint" + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": [ + "OAUTH2_CLIENT_CREDENTIALS" + ], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON" + } + } + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + }, + "412": { + "description": "Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } + }, + "deprecated": false }, "delete": { - "description": "This method deletes a mecSrvMgmtSubscription. This method is typically used in \"Unsubscribing from service availability event notifications\" procedure.", - "operationId": "ApplicationsSubscription_DELETE", "tags": [ - "appSubscriptions" + "appServices" + ], + "description": "This method deletes a mecService resource. This method is typically used in the service deregistration procedure. ", + "operationId": "AppServicesServiceId_DELETE", + "parameters": [ + { + "name": "appInstanceId", + "in": "path", + "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + }, + { + "name": "serviceId", + "in": "path", + "description": "Represents a MEC service instance.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } ], "responses": { "204": { - "description": "No Content" + "description": "No Content", + "headers": {}, + "content": {} }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } } - } - } + }, + "deprecated": false + }, + "parameters": [] }, - "/transports": { + "/services": { "get": { - "description": "This method retrieves information about a list of available transports. This method is typically used by a service-producing application to discover transports provided by the MEC platform in the \"transport information query\" procedure", - "operationId": "Transports_GET", "tags": [ - "transports" + "services" + ], + "description": "This method retrieves information about a list of mecService resources. This method is typically used in \"service availability query\" procedure", + "operationId": "Services_GET", + "parameters": [ + { + "name": "ser_instance_id", + "in": "query", + "description": "A MEC application instance may use multiple ser_instance_ids as an input parameter to query the availability of a list of MEC service instances. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present.", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "ser_name", + "in": "query", + "description": "A MEC application instance may use multiple ser_names as an input parameter to query the availability of a list of MEC service instances. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present.", + "style": "form", + "explode": true, + "schema": { + "type": "array", + "items": { + "type": "string" + } + } + }, + { + "name": "ser_category_id", + "in": "query", + "description": "A MEC application instance may use ser_category_id as an input parameter to query the availability of a list of MEC service instances in a serCategory. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present.", + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + }, + { + "name": "consumed_local_only", + "in": "query", + "description": "Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance.", + "style": "form", + "explode": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "is_local", + "in": "query", + "description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.", + "style": "form", + "explode": true, + "schema": { + "type": "boolean" + } + }, + { + "name": "scope_of_locality", + "in": "query", + "description": "A MEC application instance may use scope_of_locality as an input parameter to query the availability of a list of MEC service instances with a certain scope of locality.", + "style": "form", + "explode": true, + "schema": { + "type": "string" + } + } ], "responses": { "200": { - "$ref": "#/components/responses/Transports.200" + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "minItems": 0, + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceInfo" + }, + "description": "", + "examples": [ + [ + { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.0", + "port": 8080 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": [ + "OAUTH2_CLIENT_CREDENTIALS" + ], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON" + } + ] + ], + "contentMediaType": "application/json" + }, + "examples": { + "ServiceInfoList": { + "value": [ + { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "addresses": [ + { + "host": "192.0.2.0", + "port": 8080 + } + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": [ + "OAUTH2_CLIENT_CREDENTIALS" + ], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON" + } + ] + } + } + } + } }, "400": { - "$ref": "#/components/responses/Error.400" + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } }, "403": { - "$ref": "#/components/responses/Error.403" + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } }, "404": { - "$ref": "#/components/responses/Error.404" - } - } - } - } - }, - "components": { - "schemas": { - "Empty": { - "description": "Empty schema" - }, - "CategoryRef.Href": { - "description": "Reference of the catalogue", - "type": "string", - "format": "uri", - "example": "/example/catalogue1" - }, - "CategoryRef.Id": { - "description": "Unique identifier of the category", - "type": "string", - "example": "id12345" + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + }, + "414": { + "description": "It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + } + }, + "deprecated": false }, - "CategoryRef.Name": { - "description": "Name of the category, example values include RNI, Location & Bandwidth Management", - "type": "string", - "example": "RNI" + "parameters": [] + }, + "/services/{serviceId}": { + "get": { + "tags": [ + "services" + ], + "description": "This method retrieves information about a mecService resource. This method is typically used in \"service availability query\" procedure", + "operationId": "ServicesServiceId_GET", + "parameters": [ + { + "name": "serviceId", + "in": "path", + "description": "Represents a MEC service instance.", + "required": true, + "style": "simple", + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/ServiceInfo" + }, + "examples": { + "ServiceInfo": { + "value": { + "serInstanceId": "ServiceInstance123", + "serName": "ExampleService", + "serCategory": { + "href": "catItem1", + "id": "id12345", + "name": "RNI", + "version": "version1" + }, + "version": "ServiceVersion1", + "state": "ACTIVE", + "transportInfo": { + "id": "TransId12345", + "name": "REST", + "description": "REST API", + "type": "REST_HTTP", + "protocol": "HTTP", + "version": "2.0", + "endpoint": { + "uris": [ + "/mecSerMgmtApi/service/EntryPoint" + ] + }, + "security": { + "oAuth2Info": { + "grantTypes": [ + "OAUTH2_CLIENT_CREDENTIALS" + ], + "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" + } + } + }, + "serializer": "JSON" + } + } + } + } + } + }, + "400": { + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + }, + "403": { + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + } + }, + "deprecated": false }, - "CategoryRef.Version": { - "description": "Category version", - "type": "string", - "example": "version1" + "parameters": [] + }, + "/transports": { + "get": { + "tags": [ + "transports" + ], + "description": "This method retrieves information about a list of available transports. This method is typically used by a service-producing application to discover transports provided by the MEC platform in the \"transport information query\" procedure", + "operationId": "Transports_GET", + "parameters": [], + "responses": { + "200": { + "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", + "headers": {}, + "content": { + "application/json": { + "schema": { + "minItems": 0, + "type": "array", + "items": { + "$ref": "#/components/schemas/TransportInfo" + }, + "description": "", + "contentMediaType": "application/json" + } + } + } + }, + "400": { + "description": "Bad Request. It is used to indicate that incorrect parameters were passed to the request.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + }, + "403": { + "description": "Forbidden. The operation is not allowed given the current status of the resource.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + } + } + }, + "404": { + "description": "Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI.", + "headers": {}, + "content": { + "application/problem+json": { + "schema": { + "$ref": "#/components/schemas/ProblemDetails" + } + }, + "text/plain": { + "schema": { + "type": "object", + "description": "Empty schema", + "contentMediaType": "text/plain" + } + } + } + } + }, + "deprecated": false }, + "parameters": [] + } + }, + "components": { + "schemas": { "CategoryRef": { - "description": "This type represents the category reference", - "type": "object", + "title": "CategoryRef", "required": [ "href", "id", "name", "version" ], + "type": "object", "properties": { "href": { - "$ref": "#/components/schemas/CategoryRef.Href" + "type": "string", + "description": "Reference of the catalogue", + "examples": [ + "/example/catalogue1" + ] }, "id": { - "$ref": "#/components/schemas/CategoryRef.Id" + "type": "string", + "description": "Unique identifier of the category", + "examples": [ + "id12345" + ] }, "name": { - "$ref": "#/components/schemas/CategoryRef.Name" + "type": "string", + "description": "Name of the category, example values include RNI, Location & Bandwidth Management", + "examples": [ + "RNI" + ] }, "version": { - "$ref": "#/components/schemas/CategoryRef.Version" + "type": "string", + "description": "Category version", + "examples": [ + "version1" + ] } - } - }, - "CategoryRefs": { - "description": "Categories of services about which to report events.", - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/CategoryRef" - } - }, - "EndPointInfo.Address.Host": { - "description": "Host portion of the address", - "type": "string", - "example": "192.0.2.0" - }, - "EndPointInfo.Address_Port": { - "description": "Port portion of the address", - "type": "integer", - "format": "uint32", - "example": 8080 + }, + "description": "This type represents the category reference" }, "EndPointInfo.Address": { - "description": "A IP address and port pair", - "type": "object", + "title": "EndPointInfo.Address", "required": [ "host", "port" ], + "type": "object", "properties": { "host": { - "$ref": "#/components/schemas/EndPointInfo.Address.Host" + "type": "string", + "description": "Host portion of the address", + "examples": [ + "192.0.2.0" + ] }, "port": { - "$ref": "#/components/schemas/EndPointInfo.Address_Port" + "type": "integer", + "description": "Port portion of the address", + "contentEncoding": "int32", + "examples": [ + 8080 + ] } - } + }, + "description": "A IP address and port pair" }, "EndPointInfo.Addresses": { - "description": "Entry point information of the service as one or more pairs of IP address and port", - "type": "object", + "title": "EndPointInfo.Addresses", "required": [ "addresses" ], + "type": "object", "properties": { "addresses": { - "type": "array", "minItems": 0, + "type": "array", "items": { "$ref": "#/components/schemas/EndPointInfo.Address" - } + }, + "description": "" } - } + }, + "description": "Entry point information of the service as one or more pairs of IP address and port" }, "EndPointInfo.Alternative": { - "description": "Entry point information of the service in a format defined by an implementation, or in an external specification.", - "type": "object", + "title": "EndPointInfo.Alternative", "required": [ "alternative" ], + "type": "object", "properties": { "alternative": { "type": "object" } - } - }, - "EndPointInfo.Uri": { - "description": "Entry point information of the service", - "type": "string", - "format": "uri", - "example": "/mecSerMgmtApi/service/EntryPoint" + }, + "description": "Entry point information of the service in a format defined by an implementation, or in an external specification." }, "EndPointInfo.Uris": { - "description": "Entry point information of the service as string, formatted according to URI syntax", - "type": "object", + "title": "EndPointInfo.Uris", "required": [ "uris" ], + "type": "object", "properties": { "uris": { - "type": "array", "minItems": 0, + "type": "array", "items": { - "$ref": "#/components/schemas/EndPointInfo.Uri" - } + "type": "string" + }, + "description": "" } - } + }, + "description": "Entry point information of the service as string, formatted according to URI syntax" }, "LinkType": { - "description": "This type represents a type of link and may be referenced from data structures", + "title": "LinkType", "type": "object", "properties": { "href": { - "$ref": "#/components/schemas/Href" + "type": "string", + "description": "URI referring to a resource", + "examples": [ + "/mecSerMgmtApi/example" + ] } - } - }, - "Href": { - "description": "URI referring to a resource", - "type": "string", - "format": "uri", - "example": "/mecSerMgmtApi/example" + }, + "description": "This type represents a type of link and may be referenced from data structures" }, "MecServiceMgmtApiSubscriptionLinkList.Links": { - "description": "Self-referring URI.", - "type": "object", + "title": "MecServiceMgmtApiSubscriptionLinkList.Links", "required": [ "self" ], + "type": "object", "properties": { "self": { "$ref": "#/components/schemas/LinkType" }, "subscriptions": { - "description": "The MEC application instance's subscriptions", "type": "array", "items": { "$ref": "#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Subscription" - } + }, + "description": "The MEC application instance's subscriptions" } - } + }, + "description": "Self-referring URI." }, "MecServiceMgmtApiSubscriptionLinkList.Subscription": { - "description": "A link to a subscription.", - "type": "object", + "title": "MecServiceMgmtApiSubscriptionLinkList.Subscription", "required": [ "href", "rel" ], + "type": "object", "properties": { "href": { - "$ref": "#/components/schemas/Href" + "type": "string", + "description": "URI referring to a resource", + "examples": [ + "/mecSerMgmtApi/example" + ] }, "rel": { - "description": "The value shall be se to SerAvailabilityNotificationSubscription.", - "type": "string" + "type": "string", + "description": "The value shall be se to SerAvailabilityNotificationSubscription." } - } + }, + "description": "A link to a subscription." }, "MecServiceMgmtApiSubscriptionLinkList": { - "description": "This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions.", - "type": "object", + "title": "MecServiceMgmtApiSubscriptionLinkList", "required": [ "_links" ], + "type": "object", "properties": { "_links": { "$ref": "#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Links" } - } + }, + "description": "This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions." }, "ProblemDetails": { + "title": "ProblemDetails", "type": "object", "properties": { "type": { - "$ref": "#/components/schemas/Problem.type" + "type": "string", + "description": "A URI reference according to IETF RFC 3986 that identifies the problem type" }, "title": { - "$ref": "#/components/schemas/Problem.title" + "type": "string", + "description": "A short, human-readable summary of the problem type" }, "status": { - "$ref": "#/components/schemas/Problem.status" + "type": "integer", + "description": "The HTTP status code for this occurrence of the problem", + "contentEncoding": "int32" }, "detail": { - "$ref": "#/components/schemas/Problem.detail" + "type": "string", + "description": "A human-readable explanation specific to this occurrence of the problem" }, "instance": { - "$ref": "#/components/schemas/Problem.instance" + "type": "string", + "description": "A URI reference that identifies the specific 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" - }, - "Problem.status": { - "type": "integer", - "format": "uint32", - "description": "The HTTP status code for this occurrence of the problem" - }, - "Problem.title": { - "type": "string", - "description": "A short, human-readable summary of the problem type" - }, - "Problem.type": { - "type": "string", - "format": "uri", - "description": "A URI reference according to IETF RFC 3986 that identifies the problem type" - }, "SecurityInfo.OAuth2Info.GrantType": { - "description": "OAuth 2.0 grant type", - "type": "string", + "title": "SecurityInfo.OAuth2Info.GrantType", "enum": [ "OAUTH2_AUTHORIZATION_CODE", "OAUTH2_IMPLICIT_GRANT", "OAUTH2_RESOURCE_OWNER", "OAUTH2_CLIENT_CREDENTIALS" ], - "example": "OAUTH2_CLIENT_CREDENTIALS" - }, - "SecurityInfo.OAuth2Info.GrantTypes": { - "description": "List of supported OAuth 2.0 grant types.", - "type": "array", - "minItems": 1, - "maxItems": 4, - "items": { - "$ref": "#/components/schemas/SecurityInfo.OAuth2Info.GrantType" - } - }, - "SecurityInfo.OAuth2Info.TokenEndpoint": { - "description": "The token endpoint", "type": "string", - "format": "uri", - "example": "/mecSerMgmtApi/security/TokenEndPoint" + "description": "OAuth 2.0 grant type", + "examples": [ + "OAUTH2_CLIENT_CREDENTIALS" + ] }, "SecurityInfo.OAuth2Info": { - "description": "Parameters related to use of OAuth 2.0", + "title": "SecurityInfo.OAuth2Info", "required": [ "grantTypes", "tokenEndpoint" ], + "type": "object", "properties": { "grantTypes": { - "$ref": "#/components/schemas/SecurityInfo.OAuth2Info.GrantTypes" + "maxItems": 4, + "minItems": 1, + "type": "array", + "items": { + "$ref": "#/components/schemas/SecurityInfo.OAuth2Info.GrantType" + }, + "description": "List of supported OAuth 2.0 grant types." }, "tokenEndpoint": { - "$ref": "#/components/schemas/SecurityInfo.OAuth2Info.TokenEndpoint" + "type": "string", + "description": "The token endpoint", + "examples": [ + "/mecSerMgmtApi/security/TokenEndPoint" + ] } }, - "type": "object" + "description": "Parameters related to use of OAuth 2.0" }, "SecurityInfo": { - "description": "This type represents security information related to a transport", + "title": "SecurityInfo", "type": "object", "properties": { "oAuth2Info": { "$ref": "#/components/schemas/SecurityInfo.OAuth2Info" } - } + }, + "description": "This type represents security information related to a transport" }, "Self": { - "description": "Self-referring URI.", - "type": "object", + "title": "Self", "required": [ "self" ], + "type": "object", "properties": { "self": { "$ref": "#/components/schemas/LinkType" } }, - "readOnly": true - }, - "SerAvailabilityNotificationSubscription.CallbackReference": { - "description": "URI selected by the MEC application instance to receive notifications on the subscribed MEC service availability information. This shall be included in both the request and the response.", - "type": "string", - "format": "uri" + "description": "Self-referring URI." }, "SerAvailabilityNotificationSubscription": { - "description": "This type represents a subscription to the notifications from the MEC platform regarding the availability of a MEC service or a list of MEC services.", - "type": "object", + "title": "SerAvailabilityNotificationSubscription", "required": [ "subscriptionType", "callbackReference", "_links" ], + "type": "object", "properties": { "subscriptionType": { - "$ref": "#/components/schemas/SerAvailabilityNotificationSubscription.SubscriptionType" + "type": "string", + "description": "Shall be set to SerAvailabilityNotificationSubscription.", + "examples": [ + "SerAvailabilityNotificationSubscription" + ] }, "callbackReference": { - "$ref": "#/components/schemas/SerAvailabilityNotificationSubscription.CallbackReference" + "type": "string", + "description": "URI selected by the MEC application instance to receive notifications on the subscribed MEC service availability information. This shall be included in both the request and the response." }, "_links": { "$ref": "#/components/schemas/Self" @@ -731,79 +1928,106 @@ } }, "SerAvailabilityNotificationSubscription.FilteringCriteria": { - "description": "Filtering criteria to match services for which events are requested to be reported. If absent, matches all services. All child attributes are combined with the logical \"AND\" operation.", + "title": "SerAvailabilityNotificationSubscription.FilteringCriteria", "type": "object", - "not": { - "required": [ - "serInstanceIds", - "serNames", - "serCategories" - ] - }, "properties": { "serInstanceIds": { - "$ref": "#/components/schemas/SerInstanceIds" + "minItems": 0, + "type": "array", + "items": { + "type": "string" + }, + "description": "Identifiers of service instances about which to report events." }, "serNames": { - "$ref": "#/components/schemas/SerNames" + "minItems": 0, + "type": "array", + "items": { + "type": "string" + }, + "description": "Names of services about which to report events." }, "serCategories": { - "$ref": "#/components/schemas/CategoryRefs" + "minItems": 0, + "type": "array", + "items": { + "$ref": "#/components/schemas/CategoryRef" + }, + "description": "Categories of services about which to report events." }, "states": { - "$ref": "#/components/schemas/ServiceStates" + "minItems": 0, + "type": "array", + "items": { + "$ref": "#/components/schemas/ServiceState" + }, + "description": "States of the services about which to report events. If the event is a state change, this filter represents the state after the change." }, "isLocal": { - "$ref": "#/components/schemas/ServiceInfo.IsLocal" + "type": "boolean", + "description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.", + "examples": [ + true + ] } - } - }, - "SerAvailabilityNotificationSubscription.SubscriptionType": { - "description": "Shall be set to SerAvailabilityNotificationSubscription.", - "type": "string", - "example": "SerAvailabilityNotificationSubscription" + }, + "description": "Filtering criteria to match services for which events are requested to be reported. If absent, matches all services. All child attributes are combined with the logical \"AND\" operation." }, "ServiceAvailabilityNotification": { - "description": "This type represents the service availability information.", - "type": "object", + "title": "ServiceAvailabilityNotification", "required": [ "notificationType", "serviceReferences", "_links" ], + "type": "object", "properties": { "notificationType": { - "$ref": "#/components/schemas/SerAvailabilityNotificationSubscription.SubscriptionType" + "type": "string", + "description": "Shall be set to SerAvailabilityNotificationSubscription.", + "examples": [ + "SerAvailabilityNotificationSubscription" + ] }, "serviceReferences": { "type": "array", "items": { "$ref": "#/components/schemas/ServiceAvailabilityNotification.ServiceReferences" - } + }, + "description": "" }, "_links": { "$ref": "#/components/schemas/Subscription" } - } + }, + "description": "This type represents the service availability information." }, "ServiceAvailabilityNotification.ServiceReferences": { - "description": "List of links to services whose availability has changed.", - "type": "object", + "title": "ServiceAvailabilityNotification.ServiceReferences", "required": [ "serName", "serInstanceId", "state", "changeType" ], + "type": "object", "properties": { "link": { "$ref": "#/components/schemas/LinkType" }, "serName": { - "$ref": "#/components/schemas/ServiceInfo.SerName" + "type": "string", + "description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.", + "examples": [ + "ExampleService" + ] }, "serInstanceId": { - "$ref": "#/components/schemas/ServiceInfo.SerInstanceId" + "type": "string", + "description": "Identifier of the service instance assigned by the MEC platform.", + "examples": [ + "ServiceInstance123" + ] }, "state": { "$ref": "#/components/schemas/ServiceState" @@ -811,31 +2035,38 @@ "changeType": { "$ref": "#/components/schemas/ServiceAvailabilityNotification.ChangeType" } - } + }, + "description": "List of links to services whose availability has changed." }, "ServiceAvailabilityNotification.ChangeType": { - "description": "Type of the change. Valid values:\n ADDED: The service was newly added.\n REMOVED: The service was removed.\n STATE_CHANGED: Only the state of the service was changed. \n ATTRIBUTES_CHANGED: At least one attribute of the service other than state was changed. The change may or may not include changing the state.", - "type": "string", + "title": "ServiceAvailabilityNotification.ChangeType", "enum": [ "ADDED", "REMOVED", "STATE_CHANGED", "ATTRIBUTES_CHANGED" + ], + "type": "string", + "description": "Type of the change. Valid values:\n ADDED: The service was newly added.\n REMOVED: The service was removed.\n STATE_CHANGED: Only the state of the service was changed. \n ATTRIBUTES_CHANGED: At least one attribute of the service other than state was changed. The change may or may not include changing the state.", + "examples": [ + "ADDED" ] }, "SerializerType": { - "description": "The enumeration represents types of serializers", - "type": "string", + "title": "SerializerType", "enum": [ "JSON", "XML", "PROTOBUF3" ], - "example": "JSON" + "type": "string", + "description": "The enumeration represents types of serializers", + "examples": [ + "JSON" + ] }, "LocalityType": { - "description": "The scope of locality as expressed by \"consumedLocalOnly\" and \"isLocal\". If absent, defaults to MEC_HOST", - "type": "string", + "title": "LocalityType", "enum": [ "MEC_SYSTEM", "MEC_HOST", @@ -844,133 +2075,26 @@ "ZONE_GROUP", "NFVI_NODE" ], - "example": "MEC_SYSTEM" + "type": "string", + "description": "The scope of locality as expressed by \"consumedLocalOnly\" and \"isLocal\". If absent, defaults to MEC_HOST", + "examples": [ + "MEC_SYSTEM" + ] }, "ServiceState": { - "description": "This enumeration defines the possible states of a service.", - "type": "string", + "title": "ServiceState", "enum": [ "ACTIVE", "INACTIVE" ], - "example": "ACTIVE" - }, - "ServiceStates": { - "description": "States of the services about which to report events. If the event is a state change, this filter represents the state after the change.", - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/ServiceState" - } - }, - "ServiceInfo.SerInstanceId": { - "description": "Identifier of the service instance assigned by the MEC platform.", - "type": "string", - "readOnly": true, - "example": "ServiceInstance123" - }, - "SerInstanceIds": { - "description": "Identifiers of service instances about which to report events.", - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/ServiceInfo.SerInstanceId" - } - }, - "ServiceInfo.SerName": { - "description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.", - "type": "string", - "example": "ExampleService" - }, - "SerNames": { - "description": "Names of services about which to report events.", - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/ServiceInfo.SerName" - } - }, - "ServiceInfo.TransportId": { - "description": "Identifier of the platform-provided transport to be used by the service. Valid identifiers may be obtained using the \"Transport information query\" procedure. May be present in POST requests to signal the use of a platform-provided transport for the service, and shall be absent otherwise.", - "type": "string", - "writeOnly": true, - "example": "Rest1" - }, - "ServiceInfo.Version": { - "description": "Service version", "type": "string", - "example": "ServiceVersion1" - }, - "ServiceInfo.ConsumedLocalOnly": { - "description": "Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance.", - "type": "boolean", - "example": false - }, - "ServiceInfo.IsLocal": { - "description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.", - "type": "boolean", - "example": true - }, - "ServiceInfo.Post": { - "description": "This type represents the general information of a MEC service.", - "type": "object", - "required": [ - "serName", - "version", - "state", - "serializer" - ], - "oneOf": [ - { - "required": [ - "transportId" - ] - }, - { - "required": [ - "transportInfo" - ] - } - ], - "properties": { - "serInstanceId": { - "$ref": "#/components/schemas/ServiceInfo.SerInstanceId" - }, - "serName": { - "$ref": "#/components/schemas/ServiceInfo.SerName" - }, - "serCategory": { - "$ref": "#/components/schemas/CategoryRef" - }, - "version": { - "$ref": "#/components/schemas/ServiceInfo.Version" - }, - "state": { - "$ref": "#/components/schemas/ServiceState" - }, - "transportId": { - "$ref": "#/components/schemas/ServiceInfo.TransportId" - }, - "transportInfo": { - "$ref": "#/components/schemas/TransportInfo" - }, - "serializer": { - "$ref": "#/components/schemas/SerializerType" - }, - "scopeOfLocality": { - "$ref": "#/components/schemas/LocalityType" - }, - "consumedLocalOnly": { - "$ref": "#/components/schemas/ServiceInfo.ConsumedLocalOnly" - }, - "isLocal": { - "$ref": "#/components/schemas/ServiceInfo.IsLocal" - } - } + "description": "This enumeration defines the possible states of a service.", + "examples": [ + "ACTIVE" + ] }, "ServiceInfo": { - "description": "This type represents the general information of a MEC service.", - "type": "object", + "title": "ServiceInfo", "required": [ "serName", "version", @@ -978,18 +2102,31 @@ "transportInfo", "serializer" ], + "type": "object", "properties": { "serInstanceId": { - "$ref": "#/components/schemas/ServiceInfo.SerInstanceId" + "type": "string", + "description": "Identifier of the service instance assigned by the MEC platform.", + "examples": [ + "ServiceInstance123" + ] }, "serName": { - "$ref": "#/components/schemas/ServiceInfo.SerName" + "type": "string", + "description": "The name of the service. This is how the service producing MEC application identifies the service instance it produces.", + "examples": [ + "ExampleService" + ] }, "serCategory": { "$ref": "#/components/schemas/CategoryRef" }, "version": { - "$ref": "#/components/schemas/ServiceInfo.Version" + "type": "string", + "description": "Service version", + "examples": [ + "ServiceVersion1" + ] }, "state": { "$ref": "#/components/schemas/ServiceState" @@ -1004,57 +2141,37 @@ "$ref": "#/components/schemas/LocalityType" }, "consumedLocalOnly": { - "$ref": "#/components/schemas/ServiceInfo.ConsumedLocalOnly" + "type": "boolean", + "description": "Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance.", + "examples": [ + false + ] }, "isLocal": { - "$ref": "#/components/schemas/ServiceInfo.IsLocal" + "type": "boolean", + "description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.", + "examples": [ + true + ] } - } + }, + "description": "This type represents the general information of a MEC service." }, "Subscription": { - "description": "A link to the related subscription", - "type": "object", + "title": "Subscription", "required": [ "subscription" ], + "type": "object", "properties": { "subscription": { "$ref": "#/components/schemas/LinkType" } - } - }, - "TransportInfo.Description": { - "description": "Human-readable description of this transport", - "type": "string", - "example": "REST API" - }, - "TransportInfo.Id": { - "description": "The identifier of this transport", - "type": "string", - "example": "TransId12345" - }, - "TransportInfo.ImplSpecificInfo": { - "description": "Additional implementation specific details of the transport", - "type": "object" - }, - "TransportInfo.Name": { - "description": "The name of this transport", - "type": "string", - "example": "REST" - }, - "TransportInfo.Protocol": { - "description": "The name of the protocol used. Shall be set to HTTP for a REST API.", - "type": "string", - "example": "HTTP" - }, - "TransportInfo.Version": { - "description": "The version of the protocol used", - "type": "string", - "example": "2.0" + }, + "description": "A link to the related subscription" }, "TransportInfo": { - "description": "This type represents the general information of a MEC service.", - "type": "object", + "title": "TransportInfo", "required": [ "id", "name", @@ -1064,28 +2181,47 @@ "endpoint", "security" ], + "type": "object", "properties": { "id": { - "$ref": "#/components/schemas/TransportInfo.Id" + "type": "string", + "description": "The identifier of this transport", + "examples": [ + "TransId12345" + ] }, "name": { - "$ref": "#/components/schemas/TransportInfo.Name" + "type": "string", + "description": "The name of this transport", + "examples": [ + "REST" + ] }, "description": { - "$ref": "#/components/schemas/TransportInfo.Description" + "type": "string", + "description": "Human-readable description of this transport", + "examples": [ + "REST API" + ] }, "type": { "$ref": "#/components/schemas/TransportType" }, "protocol": { - "$ref": "#/components/schemas/TransportInfo.Protocol" + "type": "string", + "description": "The name of the protocol used. Shall be set to HTTP for a REST API.", + "examples": [ + "HTTP" + ] }, "version": { - "$ref": "#/components/schemas/TransportInfo.Version" + "type": "string", + "description": "The version of the protocol used", + "examples": [ + "2.0" + ] }, "endpoint": { - "description": "This type represents information about a transport endpoint", - "type": "object", "oneOf": [ { "$ref": "#/components/schemas/EndPointInfo.Uris" @@ -1096,19 +2232,21 @@ { "$ref": "#/components/schemas/EndPointInfo.Alternative" } - ] + ], + "description": "This type represents information about a transport endpoint" }, "security": { "$ref": "#/components/schemas/SecurityInfo" }, "implSpecificInfo": { - "$ref": "#/components/schemas/TransportInfo.ImplSpecificInfo" + "type": "object", + "description": "Additional implementation specific details of the transport" } - } + }, + "description": "This type represents the general information of a MEC service." }, "TransportType": { - "description": "The enumeration TransportType represents types of transports", - "type": "string", + "title": "TransportType", "enum": [ "REST_HTTP", "MB_TOPIC_BASED", @@ -1118,408 +2256,14 @@ "RPC_STREAMING", "WEBSOCKET" ], - "example": "REST_HTTP" - } - }, - "parameters": { - "Path.AppInstanceId": { - "name": "appInstanceId", - "description": "Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager.", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - "Path.SubscriptionId": { - "name": "subscriptionId", - "description": "Represents a subscription to the notifications from the MEC platform.", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - "Path.ServiceId": { - "name": "serviceId", - "description": "Represents a MEC service instance.", - "in": "path", - "required": true, - "schema": { - "type": "string" - } - }, - "Query.Ser_category_id": { - "name": "ser_category_id", - "description": "A MEC application instance may use ser_category_id as an input parameter to query the availability of a list of MEC service instances in a serCategory. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - "Query.Ser_instance_id": { - "name": "ser_instance_id", - "description": "A MEC application instance may use multiple ser_instance_ids as an input parameter to query the availability of a list of MEC service instances. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present.", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "Query.Ser_name": { - "name": "ser_name", - "description": "A MEC application instance may use multiple ser_names as an input parameter to query the availability of a list of MEC service instances. Either \"ser_instance_id\" or \"ser_name\" or \"ser_category_id\" or none of them shall be present.", - "in": "query", - "required": false, - "schema": { - "type": "array", - "items": { - "type": "string" - } - } - }, - "Query.LocalityType": { - "name": "scope_of_locality", - "description": "A MEC application instance may use scope_of_locality as an input parameter to query the availability of a list of MEC service instances with a certain scope of locality.", - "in": "query", - "required": false, - "schema": { - "type": "string" - } - }, - "Query.Is_local": { - "name": "is_local", - "description": "Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application.", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - }, - "Query.Consumed_local_only": { - "name": "consumed_local_only", - "description": "Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance.", - "in": "query", - "required": false, - "schema": { - "type": "boolean" - } - } - }, - "responses": { - "ApplicationsSubscriptions.200": { - "description": "Upon success, a response body containing the list of links to the requested subscriptions is returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/MecServiceMgmtApiSubscriptionLinkList" - } - } - }, - "links": { - "getIndividualmecSerMgmtApiSubscriptionLinkList": { - "$ref": "#/components/links/GetIndividualmecSerMgmtApiSubscriptionLinkList" - }, - "delIndividualmecSerMgmtApiSubscriptionLinkList": { - "$ref": "#/components/links/DelIndividualmecSerMgmtApiSubscriptionLinkList" - } - } - }, - "ApplicationsSubscriptions.201": { - "description": "Entity body in the request contains a subscription to the MEC service availability notifications that is to be created.", - "headers": { - "location": { - "description": "The resource URI of the created resource", - "schema": { - "type": "string", - "format": "uri" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SerAvailabilityNotificationSubscription" - } - } - }, - "links": { - "getIndividualmecSerMgmtApiSubscription": { - "$ref": "#/components/links/GetIndividualmecSerMgmtApiSubscription" - }, - "delIndividualmecSerMgmtApiSubscription": { - "$ref": "#/components/links/DelIndividualmecSerMgmtApiSubscription" - } - } - }, - "ApplicationsSubscription.200": { - "description": "Upon success, a response body containing the requested subscription is returned.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SerAvailabilityNotificationSubscription" - } - } - } - }, - "Services.200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "content": { - "application/json": { - "schema": { - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/ServiceInfo" - } - }, - "examples": { - "ServiceInfoList": { - "$ref": "#/components/examples/ServiceInfoList" - } - } - } - }, - "links": { - "getIndividualmecService": { - "$ref": "#/components/links/GetIndividualmecService" - }, - "putIndividualmecService": { - "$ref": "#/components/links/PutIndividualmecService" - } - } - }, - "Services.201": { - "description": "Upon success, the HTTP response shall include a Location HTTP header that contains the resource URI of the created resource.", - "headers": { - "location": { - "description": "The resource URI of the created resource", - "schema": { - "type": "string", - "format": "uri" - } - } - }, - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceInfo" - }, - "examples": { - "ServiceInfo": { - "$ref": "#/components/examples/ServiceInfo" - } - } - } - }, - "links": { - "getIndividualmecService": { - "$ref": "#/components/links/GetIndividualmecService" - }, - "putIndividualmecService": { - "$ref": "#/components/links/PutIndividualmecService" - } - } - }, - "ServicesServiceId.200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceInfo" - }, - "examples": { - "ServiceInfo": { - "$ref": "#/components/examples/ServiceInfo" - } - } - } - } - }, - "Transports.200": { - "description": "It is used to indicate nonspecific success. The response body contains a representation of the resource.", - "content": { - "application/json": { - "schema": { - "type": "array", - "minItems": 0, - "items": { - "$ref": "#/components/schemas/TransportInfo" - } - } - } - }, - "links": { - "getTransportInfo": { - "$ref": "#/components/links/GetTransportInfo" - } - } - }, - "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.409": { - "description": "Conflict. The operation cannot be executed currently, due to a conflict with the state of the resource. Typically, this is because the application instance resource is in NOT_INSTANTIATED state.", - "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" - } - } - } - }, - "Error.414": { - "description": "It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process.", - "content": { - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - }, - "text/plain": { - "schema": { - "$ref": "#/components/schemas/Empty" - } - } - } - }, - "Error.429": { - "description": "Too Many Requests. It is used when a rate limiter has triggered.", - "content": { - "application/problem+json": { - "schema": { - "$ref": "#/components/schemas/ProblemDetails" - } - }, - "text/plain": { - "schema": { - "$ref": "#/components/schemas/Empty" - } - } - } + "type": "string", + "description": "The enumeration TransportType represents types of transports", + "examples": [ + "REST_HTTP" + ] } }, "requestBodies": { - "ApplicationsSubscriptions": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/SerAvailabilityNotificationSubscription" - } - } - }, - "description": "Entity body in the request contains a subscription to the MEC application termination notifications that is to be created.", - "required": true - }, - "Services": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceInfo" - } - } - }, - "description": "New ServiceInfo with updated \"state\" is included as entity body of the request", - "required": true - }, - "Services.Post": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceInfo.Post" - } - } - }, - "description": "New ServiceInfo with updated \"state\" is included as entity body of the request", - "required": true - }, - "ServicesServiceId": { - "content": { - "application/json": { - "schema": { - "$ref": "#/components/schemas/ServiceInfo" - } - } - }, - "description": "New ServiceInfo with updated \"state\" is included as entity body of the request", - "required": true - }, "ServiceAvailabilityNotification": { "content": { "application/json": { @@ -1530,161 +2274,9 @@ }, "required": true } - }, - "callbacks": { - "ServiceAvailabilityNotification": { - "{$request.body#/callbackReference}": { - "post": { - "description": "'Represents the service availability information that is used in the following cases - when the MEC platform announces the newly available\n services to the authorized relevant MEC applications (e.g. \n the applications that indicate the services as \"optional\" \n or \"required\") that are subscribed to the corresponding \n service availability notifications\n- when the MEC platform notifies the authorized relevant applications that are subscribed to the corresponding service availability notifications about the service availability changes.'", - "operationId": "ServiceAvailabilityNotification_POST", - "tags": [ - "callbacks" - ], - "requestBody": { - "$ref": "#/components/requestBodies/ServiceAvailabilityNotification" - }, - "responses": { - "200": { - "description": "Expected responses from callback consumer, if it accepts the callback" - } - } - } - } - } - }, - "links": { - "GetIndividualmecService": { - "operationId": "ServicesServiceId_GET", - "description": "The `serviceId` value returned in the response can be used as the `serviceId` parameter in `GET /services/{serviceId}`", - "parameters": { - "serviceId": "$response.body#/serviceId" - } - }, - "PutIndividualmecService": { - "operationId": "ServicesServiceId_PUT", - "description": "The `serviceId` value returned in the response can be used as the `serviceId` parameter in `PUT /services/{serviceId}`", - "parameters": { - "serviceId": "$response.body#/serviceId" - } - }, - "GetTransportInfo": { - "operationId": "AppServices_POST", - "description": "The `id` value returned in the response can be used as the `transportId` parameter in `POST /applications/{appInstanceId}/services`. The first transport is provided as the link as wildcards are not supported", - "parameters": { - "transportId": "$response.body#/0/id" - } - }, - "GetIndividualmecSerMgmtApiSubscription": { - "operationId": "ApplicationsSubscription_GET", - "description": "The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}`", - "parameters": { - "description": "regex = \\/mec_service_mgmt\\/v1\\/applications\\/.*\\/subscriptions\\/.*\\/(.*);subscriptionId = href.match(regex)[1];// where \"href\" is an attribute within the subscription attribute within the _links attribute", - "subscriptionId": "TBC" - } - }, - "DelIndividualmecSerMgmtApiSubscription": { - "operationId": "ApplicationsSubscription_DELETE", - "description": "The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}`", - "parameters": { - "description": "regex = \\/mec_service_mgmt\\/v1\\/applications\\/.*\\/subscriptions\\/(.*);subscriptionId = href.match(regex)[1];// where \"href\" is an attribute within the subscription attribute within the _links attribute", - "subscriptionId": "TBC" - } - }, - "GetIndividualmecSerMgmtApiSubscriptionLinkList": { - "operationId": "ApplicationsSubscription_GET", - "description": "The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}`", - "parameters": { - "description": "regex = \\/mec_service_mgmt\\/v1\\/applications\\/.*\\/subscriptions\\/(.*);subscriptionId = href.match(regex)[1];// where \"href\" is an attribute within the subscription attribute within the _links attribute", - "subscriptionId": "TBC" - } - }, - "DelIndividualmecSerMgmtApiSubscriptionLinkList": { - "operationId": "ApplicationsSubscription_DELETE", - "description": "The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}`", - "parameters": { - "description": "regex = \\/mec_service_mgmt\\/v1\\/applications\\/.*\\/subscriptions\\/(.*);subscriptionId = href.match(regex)[1];// where \"href\" is an attribute within the subscription attribute within the _links attribute", - "subscriptionId": "TBC" - } - } - }, - "examples": { - "ServiceInfo": { - "value": { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "uris": [ - "/mecSerMgmtApi/service/EntryPoint" - ] - }, - "security": { - "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" - } - } - }, - "serializer": "JSON" - } - }, - "ServiceInfoList": { - "value": [ - { - "serInstanceId": "ServiceInstance123", - "serName": "ExampleService", - "serCategory": { - "href": "catItem1", - "id": "id12345", - "name": "RNI", - "version": "version1" - }, - "version": "ServiceVersion1", - "state": "ACTIVE", - "transportInfo": { - "id": "TransId12345", - "name": "REST", - "description": "REST API", - "type": "REST_HTTP", - "protocol": "HTTP", - "version": "2.0", - "endpoint": { - "addresses": [ - { - "host": "192.0.2.0", - "port": 8080 - } - ] - }, - "security": { - "oAuth2Info": { - "grantTypes": [ - "OAUTH2_CLIENT_CREDENTIALS" - ], - "tokenEndpoint": "/mecSerMgmtApi/security/TokenEndPoint" - } - } - }, - "serializer": "JSON" - } - ] - } } - } -} + }, + "security": [ + {} + ] +} \ No newline at end of file diff --git a/MecServiceMgmtApi.yaml b/MecServiceMgmtApi.yaml index 99661ea2c76b7eaa599f3170b111a80816363f32..855bbab8b13fe096ed82c6218f532b6ad3ed035f 100644 --- a/MecServiceMgmtApi.yaml +++ b/MecServiceMgmtApi.yaml @@ -1,714 +1,1487 @@ -openapi: 3.0.2 -servers: - - url: 'http://127.0.0.1:8081/mec_service_mgmt/v1' - - url: 'https://127.0.0.1:8081/mec_service_mgmt/v1' +openapi: 3.1.0 info: title: MEC Service Management API - version: 2.1.1 description: The ETSI MEC ISG MEC011 MEC Service Management API described using OpenAPI license: name: BSD-3-Clause url: 'https://forge.etsi.org/legal-matters' contact: email: cti_support@etsi.org + version: '2.1.1' externalDocs: - description: 'ETSI GS MEC011 Application Enablement API, V2.1.1' - url: >- - https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf + description: ETSI GS MEC011 Application Enablement API, V2.1.1 + url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf +jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema +servers: +- url: http://127.0.0.1:8081/mec_service_mgmt/v1 + variables: {} +- url: https://127.0.0.1:8081/mec_service_mgmt/v1 + variables: {} tags: - - name: appSubscriptions - - name: appServices - - name: services - - name: transports - - name: callbacks +- name: appSubscriptions +- name: appServices +- name: services +- name: transports +- name: callbacks + paths: - '/services': + /applications/{appInstanceId}/subscriptions: get: - description: >- - This method retrieves information about a list of mecService resources. - This method is typically used in "service availability query" procedure - operationId: Services_GET tags: - - services + - appSubscriptions + + description: The GET method may be used to request information about all subscriptions for this requestor. Upon success, the response contains entity body with all the subscriptions for the requestor. + operationId: ApplicationsSubscriptions_GET parameters: - - $ref: '#/components/parameters/Query.Ser_instance_id' - - $ref: '#/components/parameters/Query.Ser_name' - - $ref: '#/components/parameters/Query.Ser_category_id' - - $ref: '#/components/parameters/Query.Consumed_local_only' - - $ref: '#/components/parameters/Query.Is_local' - - $ref: '#/components/parameters/Query.LocalityType' + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string responses: '200': - $ref: '#/components/responses/Services.200' + description: Upon success, a response body containing the list of links to the requested subscriptions is returned. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList' '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' - '414': - $ref: '#/components/responses/Error.414' - '/services/{serviceId}': - parameters: - - $ref: '#/components/parameters/Path.ServiceId' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + post: + tags: + - appSubscriptions + + description: The POST method may be used to create a new subscription. One example use case is to create a new subscription to the MEC service availability notifications. Upon success, the response contains entity body describing the created subscription. + operationId: ApplicationsSubscriptions_POST + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + requestBody: + description: Entity body in the request contains a subscription to the MEC application termination notifications that is to be created. + content: + application/json: + schema: + $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' + required: true + + responses: + '201': + description: Entity body in the request contains a subscription to the MEC service availability notifications that is to be created. + headers: + location: + description: The resource URI of the created resource + content: + text/plain: + schema: + type: string + description: The resource URI of the created resource + contentMediaType: text/plain + content: + application/json: + schema: + $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' + '400': + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + '403': + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + + callbacks: + ServiceAvailailityNotification: + '{$request.body#/callbackReference}': + post: + description: >- + 'Represents the service availability information that + is used in the following cases + when the MEC platform announces the newly available + services to the authorized relevant MEC applications (e.g. + the applications that indicate the services as "optional" + or "required") that are subscribed to the corresponding + service availability notifications + when the MEC platform notifies the authorized relevant + applications that are subscribed to the corresponding + service availability notifications about the service availability changes.' + operationId: ServiceAvailabilityNotification_POST + tags: + - callbacks + requestBody: + $ref: '#/components/requestBodies/ServiceAvailabilityNotification' + responses: + '200': + description: Expected responses from callback consumer, if it accepts the callback + parameters: [] + /applications/{appInstanceId}/subscriptions/{subscriptionId}: get: - description: >- - This method retrieves information about a mecService resource. This - method is typically used in "service availability query" procedure - operationId: ServicesServiceId_GET tags: - - services + - appSubscriptions + + description: The GET method requests information about a subscription for this requestor. Upon success, the response contains entity body with the subscription for the requestor. + operationId: ApplicationsSubscription_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: subscriptionId + in: path + description: Represents a subscription to the notifications from the MEC platform. + required: true + style: simple + schema: + type: string responses: '200': - $ref: '#/components/responses/ServicesServiceId.200' + description: Upon success, a response body containing the requested subscription is returned. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' - '/applications/{appInstanceId}/services': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + delete: + tags: + - appSubscriptions + + description: This method deletes a mecSrvMgmtSubscription. This method is typically used in "Unsubscribing from service availability event notifications" procedure. + operationId: ApplicationsSubscription_DELETE + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: subscriptionId + in: path + description: Represents a subscription to the notifications from the MEC platform. + required: true + style: simple + schema: + type: string + responses: + '204': + description: No Content + headers: {} + content: {} + '403': + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + '404': + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + /applications/{appInstanceId}/services: get: - description: >- - This method retrieves information about a list of mecService resources. - This method is typically used in "service availability query" procedure - operationId: AppServices_GET tags: - - appServices + - appServices + description: This method retrieves information about a list of mecService resources. This method is typically used in "service availability query" procedure + operationId: AppServices_GET parameters: - - $ref: '#/components/parameters/Query.Ser_instance_id' - - $ref: '#/components/parameters/Query.Ser_name' - - $ref: '#/components/parameters/Query.Ser_category_id' - - $ref: '#/components/parameters/Query.Consumed_local_only' - - $ref: '#/components/parameters/Query.Is_local' - - $ref: '#/components/parameters/Query.LocalityType' + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: ser_instance_id + in: query + description: A MEC application instance may use multiple ser_instance_ids as an input parameter to query the availability of a list of MEC service instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present. + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_name + in: query + description: A MEC application instance may use multiple ser_names as an input parameter to query the availability of a list of MEC service instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present. + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_category_id + in: query + description: A MEC application instance may use ser_category_id as an input parameter to query the availability of a list of MEC service instances in a serCategory. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present. + style: form + explode: true + schema: + type: string + - name: consumed_local_only + in: query + description: Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance. + style: form + explode: true + schema: + type: boolean + - name: is_local + in: query + description: Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application. + style: form + explode: true + schema: + type: boolean + - name: scope_of_locality + in: query + description: A MEC application instance may use scope_of_locality as an input parameter to query the availability of a list of MEC service instances with a certain scope of locality. + style: form + explode: true + schema: + type: string responses: '200': - $ref: '#/components/responses/Services.200' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + minItems: 0 + type: array + items: + $ref: '#/components/schemas/ServiceInfo' + description: '' + examples: + - - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + contentMediaType: application/json + examples: + ServiceInfoList: + value: + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '414': - $ref: '#/components/responses/Error.414' + description: It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false post: - description: >- - This method is used to create a mecService resource. This method is - typically used in "service availability update and new service - registration" procedure - operationId: AppServices_POST tags: - - appServices + - appServices + description: This method is used to create a mecService resource. This method is typically used in "service availability update and new service registration" procedure + operationId: AppServices_POST + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + requestBody: + description: New ServiceInfo with updated "state" is included as entity body of the request + content: + application/json: + schema: + oneOf: + - type: object + - type: object + description: New ServiceInfo with updated "state" is included as entity body of the request + contentMediaType: application/json + required: true responses: '201': - $ref: '#/components/responses/Services.201' + description: Upon success, the HTTP response shall include a Location HTTP header that contains the resource URI of the created resource. + headers: + location: + description: The resource URI of the created resource + content: + text/plain: + schema: + type: string + description: The resource URI of the created resource + contentMediaType: text/plain + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + examples: + ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' - requestBody: - $ref: '#/components/requestBodies/Services.Post' - '/applications/{appInstanceId}/services/{serviceId}': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' - - $ref: '#/components/parameters/Path.ServiceId' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + /applications/{appInstanceId}/services/{serviceId}: get: - description: >- - This method retrieves information about a mecService resource. This - method is typically used in "service availability query" procedure - operationId: AppServicesServiceId_GET tags: - - appServices + - appServices + description: This method retrieves information about a mecService resource. This method is typically used in "service availability query" procedure + operationId: AppServicesServiceId_GET + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: serviceId + in: path + description: Represents a MEC service instance. + required: true + style: simple + schema: + type: string responses: '200': - $ref: '#/components/responses/ServicesServiceId.200' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + examples: + ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false put: + tags: + - appServices description: This method updates the information about a mecService resource operationId: AppServicesServiceId_PUT - tags: - - appServices + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: serviceId + in: path + description: Represents a MEC service instance. + required: true + style: simple + schema: + type: string + requestBody: + description: New ServiceInfo with updated "state" is included as entity body of the request + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + required: true responses: '200': - $ref: '#/components/responses/ServicesServiceId.200' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + examples: + ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '412': - $ref: '#/components/responses/Error.412' - requestBody: - $ref: '#/components/requestBodies/ServicesServiceId' + description: Precondition Failed. It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false delete: - description: >- - This method deletes a mecService resource. This method is typically used in the service deregistration procedure. - operationId: AppServicesServiceId_DELETE tags: - - appServices + - appServices + description: 'This method deletes a mecService resource. This method is typically used in the service deregistration procedure. ' + operationId: AppServicesServiceId_DELETE + parameters: + - name: appInstanceId + in: path + description: Represents a MEC application instance. Note that the appInstanceId is allocated by the MEC platform manager. + required: true + style: simple + schema: + type: string + - name: serviceId + in: path + description: Represents a MEC service instance. + required: true + style: simple + schema: + type: string responses: '204': description: No Content + headers: {} + content: {} '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' - '/applications/{appInstanceId}/subscriptions': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + /services: get: - description: >- - The GET method may be used to request information about all - subscriptions for this requestor. Upon success, the response contains - entity body with all the subscriptions for the requestor. - operationId: ApplicationsSubscriptions_GET tags: - - appSubscriptions + - services + + description: This method retrieves information about a list of mecService resources. This method is typically used in "service availability query" procedure + operationId: Services_GET + parameters: + - name: ser_instance_id + in: query + description: A MEC application instance may use multiple ser_instance_ids as an input parameter to query the availability of a list of MEC service instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present. + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_name + in: query + description: A MEC application instance may use multiple ser_names as an input parameter to query the availability of a list of MEC service instances. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present. + style: form + explode: true + schema: + type: array + items: + type: string + - name: ser_category_id + in: query + description: A MEC application instance may use ser_category_id as an input parameter to query the availability of a list of MEC service instances in a serCategory. Either "ser_instance_id" or "ser_name" or "ser_category_id" or none of them shall be present. + style: form + explode: true + schema: + type: string + - name: consumed_local_only + in: query + description: Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance. + style: form + explode: true + schema: + type: boolean + - name: is_local + in: query + description: Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application. + style: form + explode: true + schema: + type: boolean + - name: scope_of_locality + in: query + description: A MEC application instance may use scope_of_locality as an input parameter to query the availability of a list of MEC service instances with a certain scope of locality. + style: form + explode: true + schema: + type: string responses: '200': - $ref: '#/components/responses/ApplicationsSubscriptions.200' - '400': - $ref: '#/components/responses/Error.400' - '403': - $ref: '#/components/responses/Error.403' - '404': - $ref: '#/components/responses/Error.404' - post: - description: >- - The POST method may be used to create a new subscription. One example - use case is to create a new subscription to the MEC service - availability notifications. Upon success, the response contains entity - body describing the created subscription. - operationId: ApplicationsSubscriptions_POST - tags: - - appSubscriptions - responses: - '201': - $ref: '#/components/responses/ApplicationsSubscriptions.201' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + minItems: 0 + type: array + items: + $ref: '#/components/schemas/ServiceInfo' + description: '' + examples: + - - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON + contentMediaType: application/json + examples: + ServiceInfoList: + value: + - serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + addresses: + - host: 192.0.2.0 + port: 8080 + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' - requestBody: - $ref: '#/components/requestBodies/ApplicationsSubscriptions' - callbacks: - serviceAvailabilityNotification: - $ref: '#/components/callbacks/ServiceAvailabilityNotification' - '/applications/{appInstanceId}/subscriptions/{subscriptionId}': - parameters: - - $ref: '#/components/parameters/Path.AppInstanceId' - - $ref: '#/components/parameters/Path.SubscriptionId' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + '414': + description: It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + /services/{serviceId}: get: - description: >- - The GET method requests information about a subscription for this - requestor. Upon success, the response contains entity body with the - subscription for the requestor. - operationId: ApplicationsSubscription_GET tags: - - appSubscriptions + - services + + description: This method retrieves information about a mecService resource. This method is typically used in "service availability query" procedure + operationId: ServicesServiceId_GET + parameters: + - name: serviceId + in: path + description: Represents a MEC service instance. + required: true + style: simple + schema: + type: string responses: '200': - $ref: '#/components/responses/ApplicationsSubscription.200' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + $ref: '#/components/schemas/ServiceInfo' + examples: + ServiceInfo: + value: + serInstanceId: ServiceInstance123 + serName: ExampleService + serCategory: + href: catItem1 + id: id12345 + name: RNI + version: version1 + version: ServiceVersion1 + state: ACTIVE + transportInfo: + id: TransId12345 + name: REST + description: REST API + type: REST_HTTP + protocol: HTTP + version: '2.0' + endpoint: + uris: + - /mecSerMgmtApi/service/EntryPoint + security: + oAuth2Info: + grantTypes: + - OAUTH2_CLIENT_CREDENTIALS + tokenEndpoint: /mecSerMgmtApi/security/TokenEndPoint + serializer: JSON '400': - $ref: '#/components/responses/Error.400' - '403': - $ref: '#/components/responses/Error.403' - '404': - $ref: '#/components/responses/Error.404' - delete: - description: >- - This method deletes a mecSrvMgmtSubscription. This method is typically used - in "Unsubscribing from service availability event notifications" - procedure. - operationId: ApplicationsSubscription_DELETE - tags: - - appSubscriptions - responses: - '204': - description: No Content + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' - '/transports': + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] + /transports: get: - description: >- - This method retrieves information about a list of available transports. - This method is typically used by a service-producing application to - discover transports provided by the MEC platform in the - "transport information query" procedure - operationId: Transports_GET tags: - - transports + - transports + + description: This method retrieves information about a list of available transports. This method is typically used by a service-producing application to discover transports provided by the MEC platform in the "transport information query" procedure + operationId: Transports_GET + parameters: [] responses: '200': - $ref: '#/components/responses/Transports.200' + description: It is used to indicate nonspecific success. The response body contains a representation of the resource. + headers: {} + content: + application/json: + schema: + minItems: 0 + type: array + items: + $ref: '#/components/schemas/TransportInfo' + description: '' + contentMediaType: application/json '400': - $ref: '#/components/responses/Error.400' + description: Bad Request. It is used to indicate that incorrect parameters were passed to the request. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain '403': - $ref: '#/components/responses/Error.403' + description: Forbidden. The operation is not allowed given the current status of the resource. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' '404': - $ref: '#/components/responses/Error.404' + description: Not Found. It is used when a client provided a URI that cannot be mapped to a valid resource URI. + headers: {} + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ProblemDetails' + text/plain: + schema: + type: object + description: Empty schema + contentMediaType: text/plain + deprecated: false + parameters: [] components: schemas: - Empty: - description: Empty schema - CategoryRef.Href: - description: Reference of the catalogue - type: string - format: uri - example: '/example/catalogue1' - CategoryRef.Id: - description: Unique identifier of the category - type: string - example: 'id12345' - CategoryRef.Name: - description: Name of the category, example values include RNI, Location & Bandwidth Management - type: string - example: 'RNI' - CategoryRef.Version: - description: Category version - type: string - example: 'version1' CategoryRef: - description: This type represents the category reference - type: object + title: CategoryRef required: - - href - - id - - name - - version + - href + - id + - name + - version + type: object properties: href: - $ref: '#/components/schemas/CategoryRef.Href' + type: string + description: Reference of the catalogue + examples: + - /example/catalogue1 id: - $ref: '#/components/schemas/CategoryRef.Id' + type: string + description: Unique identifier of the category + examples: + - id12345 name: - $ref: '#/components/schemas/CategoryRef.Name' + type: string + description: Name of the category, example values include RNI, Location & Bandwidth Management + examples: + - RNI version: - $ref: '#/components/schemas/CategoryRef.Version' - CategoryRefs: - description: Categories of services about which to report events. - type: array - minItems: 0 - items: - $ref: '#/components/schemas/CategoryRef' - EndPointInfo.Address.Host: - description: Host portion of the address - type: string - example: '192.0.2.0' - EndPointInfo.Address_Port: - description: Port portion of the address - type: integer - format: uint32 - example: 8080 + type: string + description: Category version + examples: + - version1 + description: This type represents the category reference EndPointInfo.Address: - description: A IP address and port pair - type: object + title: EndPointInfo.Address required: - - host - - port + - host + - port + type: object properties: host: - $ref: '#/components/schemas/EndPointInfo.Address.Host' + type: string + description: Host portion of the address + examples: + - 192.0.2.0 port: - $ref: '#/components/schemas/EndPointInfo.Address_Port' + type: integer + description: Port portion of the address + contentEncoding: int32 + examples: + - 8080 + description: A IP address and port pair EndPointInfo.Addresses: - description: >- - Entry point information of the service as one or more pairs of IP - address and port - type: object + title: EndPointInfo.Addresses required: - - addresses + - addresses + type: object properties: addresses: - type: array minItems: 0 + type: array items: $ref: '#/components/schemas/EndPointInfo.Address' + description: '' + description: Entry point information of the service as one or more pairs of IP address and port EndPointInfo.Alternative: - description: >- - Entry point information of the service in a format defined by an - implementation, or in an external specification. - type: object + title: EndPointInfo.Alternative required: - - alternative - properties: + - alternative + type: object + properties: alternative: type: object - EndPointInfo.Uri: - description: Entry point information of the service - type: string - format: uri - example: '/mecSerMgmtApi/service/EntryPoint' + description: Entry point information of the service in a format defined by an implementation, or in an external specification. EndPointInfo.Uris: - description: >- - Entry point information of the service as string, formatted according to - URI syntax - type: object + title: EndPointInfo.Uris required: - - uris + - uris + type: object properties: uris: - type: array minItems: 0 + type: array items: - $ref: '#/components/schemas/EndPointInfo.Uri' + type: string + description: '' + description: Entry point information of the service as string, formatted according to URI syntax LinkType: - description: This type represents a type of link and may be referenced from data structures + title: LinkType type: object properties: - href: - $ref: '#/components/schemas/Href' - Href: - description: URI referring to a resource - type: string - format: uri - example: '/mecSerMgmtApi/example' + href: + type: string + description: URI referring to a resource + examples: + - /mecSerMgmtApi/example + description: This type represents a type of link and may be referenced from data structures MecServiceMgmtApiSubscriptionLinkList.Links: - description: Self-referring URI. - type: object + title: MecServiceMgmtApiSubscriptionLinkList.Links required: - - self + - self + type: object properties: self: $ref: '#/components/schemas/LinkType' subscriptions: - description: The MEC application instance's subscriptions type: array items: $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Subscription' + description: The MEC application instance's subscriptions + description: Self-referring URI. MecServiceMgmtApiSubscriptionLinkList.Subscription: - description: A link to a subscription. - type: object + title: MecServiceMgmtApiSubscriptionLinkList.Subscription required: - - href - - rel + - href + - rel + type: object properties: href: - $ref: '#/components/schemas/Href' + type: string + description: URI referring to a resource + examples: + - /mecSerMgmtApi/example rel: - description: >- - The value shall be se to SerAvailabilityNotificationSubscription. type: string + description: The value shall be se to SerAvailabilityNotificationSubscription. + description: A link to a subscription. MecServiceMgmtApiSubscriptionLinkList: - description: >- - This type represents a list of links related to currently existing - subscriptions for a MEC application instance. This information - is returned when sending a request to receive current subscriptions. - type: object + title: MecServiceMgmtApiSubscriptionLinkList required: - - _links + - _links + type: object properties: _links: $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList.Links' + description: This type represents a list of links related to currently existing subscriptions for a MEC application instance. This information is returned when sending a request to receive current subscriptions. ProblemDetails: + title: ProblemDetails type: object properties: type: - $ref: '#/components/schemas/Problem.type' + type: string + description: A URI reference according to IETF RFC 3986 that identifies the problem type title: - $ref: '#/components/schemas/Problem.title' + type: string + description: A short, human-readable summary of the problem type status: - $ref: '#/components/schemas/Problem.status' + type: integer + description: The HTTP status code for this occurrence of the problem + contentEncoding: int32 detail: - $ref: '#/components/schemas/Problem.detail' + type: string + description: A human-readable explanation specific to this occurrence of the problem instance: - $ref: '#/components/schemas/Problem.instance' - 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 - Problem.status: - type: integer - format: uint32 - description: The HTTP status code for this occurrence of the problem - Problem.title: - type: string - description: 'A short, human-readable summary of the problem type' - Problem.type: - type: string - format: uri - description: >- - A URI reference according to IETF RFC 3986 that identifies the problem - type + type: string + description: A URI reference that identifies the specific occurrence of the problem SecurityInfo.OAuth2Info.GrantType: - description: OAuth 2.0 grant type - type: string + title: SecurityInfo.OAuth2Info.GrantType enum: - - OAUTH2_AUTHORIZATION_CODE - - OAUTH2_IMPLICIT_GRANT - - OAUTH2_RESOURCE_OWNER - - OAUTH2_CLIENT_CREDENTIALS - example: 'OAUTH2_CLIENT_CREDENTIALS' - SecurityInfo.OAuth2Info.GrantTypes: - description: >- - List of supported OAuth 2.0 grant types. - type: array - minItems: 1 - maxItems: 4 - items: - $ref: '#/components/schemas/SecurityInfo.OAuth2Info.GrantType' - SecurityInfo.OAuth2Info.TokenEndpoint: - description: The token endpoint + - OAUTH2_AUTHORIZATION_CODE + - OAUTH2_IMPLICIT_GRANT + - OAUTH2_RESOURCE_OWNER + - OAUTH2_CLIENT_CREDENTIALS type: string - format: uri - example: '/mecSerMgmtApi/security/TokenEndPoint' + description: OAuth 2.0 grant type + examples: + - OAUTH2_CLIENT_CREDENTIALS SecurityInfo.OAuth2Info: - description: Parameters related to use of OAuth 2.0 + title: SecurityInfo.OAuth2Info required: - - grantTypes - - tokenEndpoint + - grantTypes + - tokenEndpoint + type: object properties: grantTypes: - $ref: '#/components/schemas/SecurityInfo.OAuth2Info.GrantTypes' + maxItems: 4 + minItems: 1 + type: array + items: + $ref: '#/components/schemas/SecurityInfo.OAuth2Info.GrantType' + description: List of supported OAuth 2.0 grant types. tokenEndpoint: - $ref: '#/components/schemas/SecurityInfo.OAuth2Info.TokenEndpoint' - type: object + type: string + description: The token endpoint + examples: + - /mecSerMgmtApi/security/TokenEndPoint + description: Parameters related to use of OAuth 2.0 SecurityInfo: - description: This type represents security information related to a transport + title: SecurityInfo type: object properties: oAuth2Info: $ref: '#/components/schemas/SecurityInfo.OAuth2Info' + description: This type represents security information related to a transport Self: - description: Self-referring URI. - type: object + title: Self required: - - self + - self + type: object properties: self: $ref: '#/components/schemas/LinkType' - readOnly: true - SerAvailabilityNotificationSubscription.CallbackReference: - description: >- - URI selected by the MEC application instance to receive - notifications on the subscribed MEC service availability - information. This shall be included in both the request and the - response. - type: string - format: uri + description: Self-referring URI. SerAvailabilityNotificationSubscription: - description: >- - This type represents a subscription to the notifications from the - MEC platform regarding the availability of a MEC service or a - list of MEC services. - type: object + title: SerAvailabilityNotificationSubscription required: - - subscriptionType - - callbackReference - - _links + - subscriptionType + - callbackReference + - _links + type: object properties: subscriptionType: - $ref: >- - #/components/schemas/SerAvailabilityNotificationSubscription.SubscriptionType + type: string + description: Shall be set to SerAvailabilityNotificationSubscription. + examples: + - SerAvailabilityNotificationSubscription callbackReference: - $ref: >- - #/components/schemas/SerAvailabilityNotificationSubscription.CallbackReference + type: string + description: URI selected by the MEC application instance to receive notifications on the subscribed MEC service availability information. This shall be included in both the request and the response. _links: $ref: '#/components/schemas/Self' filteringCriteria: - $ref: >- - #/components/schemas/SerAvailabilityNotificationSubscription.FilteringCriteria + $ref: '#/components/schemas/SerAvailabilityNotificationSubscription.FilteringCriteria' + SerAvailabilityNotificationSubscription.FilteringCriteria: - description: >- - Filtering criteria to match services for which events are requested to be reported. - If absent, matches all services. All child attributes are combined with the logical - "AND" operation. + title: SerAvailabilityNotificationSubscription.FilteringCriteria type: object - not: - required: [serInstanceIds, serNames, serCategories] properties: serInstanceIds: - $ref: '#/components/schemas/SerInstanceIds' + minItems: 0 + type: array + items: + type: string + description: Identifiers of service instances about which to report events. serNames: - $ref: '#/components/schemas/SerNames' + minItems: 0 + type: array + items: + type: string + description: Names of services about which to report events. serCategories: - $ref: '#/components/schemas/CategoryRefs' + minItems: 0 + type: array + items: + $ref: '#/components/schemas/CategoryRef' + description: Categories of services about which to report events. states: - $ref: '#/components/schemas/ServiceStates' - isLocal: - $ref: '#/components/schemas/ServiceInfo.IsLocal' - SerAvailabilityNotificationSubscription.SubscriptionType: - description: Shall be set to SerAvailabilityNotificationSubscription. - type: string - example: 'SerAvailabilityNotificationSubscription' + minItems: 0 + type: array + items: + $ref: '#/components/schemas/ServiceState' + description: States of the services about which to report events. If the event is a state change, this filter represents the state after the change. + isLocal: + type: boolean + description: Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application. + examples: + - true + description: Filtering criteria to match services for which events are requested to be reported. If absent, matches all services. All child attributes are combined with the logical "AND" operation. ServiceAvailabilityNotification: - description: >- - This type represents the service availability information. - type: object + title: ServiceAvailabilityNotification required: - - notificationType - - serviceReferences - - _links + - notificationType + - serviceReferences + - _links + type: object properties: notificationType: - $ref: >- - #/components/schemas/SerAvailabilityNotificationSubscription.SubscriptionType + type: string + description: Shall be set to SerAvailabilityNotificationSubscription. + examples: + - SerAvailabilityNotificationSubscription serviceReferences: type: array - items: + items: $ref: '#/components/schemas/ServiceAvailabilityNotification.ServiceReferences' + description: '' _links: $ref: '#/components/schemas/Subscription' + description: This type represents the service availability information. ServiceAvailabilityNotification.ServiceReferences: - description: List of links to services whose availability has changed. - type: object + title: ServiceAvailabilityNotification.ServiceReferences required: - - serName - - serInstanceId - - state - - changeType + - serName + - serInstanceId + - state + - changeType + type: object properties: - link: + link: $ref: '#/components/schemas/LinkType' - serName: - $ref: '#/components/schemas/ServiceInfo.SerName' + serName: + type: string + description: The name of the service. This is how the service producing MEC application identifies the service instance it produces. + examples: + - ExampleService serInstanceId: - $ref: '#/components/schemas/ServiceInfo.SerInstanceId' + type: string + description: Identifier of the service instance assigned by the MEC platform. + examples: + - ServiceInstance123 state: $ref: '#/components/schemas/ServiceState' changeType: $ref: '#/components/schemas/ServiceAvailabilityNotification.ChangeType' + description: List of links to services whose availability has changed. ServiceAvailabilityNotification.ChangeType: - description: >- - Type of the change. Valid values: - ADDED: The service was newly added. - REMOVED: The service was removed. - STATE_CHANGED: Only the state of the service was changed. - ATTRIBUTES_CHANGED: At least one attribute of the service other than state was changed. The change may or may not include changing the state. - type: string + title: ServiceAvailabilityNotification.ChangeType enum: - - ADDED - - REMOVED - - STATE_CHANGED - - ATTRIBUTES_CHANGED - SerializerType: - description: The enumeration represents types of serializers + - ADDED + - REMOVED + - STATE_CHANGED + - ATTRIBUTES_CHANGED type: string + description: "Type of the change. Valid values:\n ADDED: The service was newly added.\n REMOVED: The service was removed.\n STATE_CHANGED: Only the state of the service was changed. \n ATTRIBUTES_CHANGED: At least one attribute of the service other than state was changed. The change may or may not include changing the state." + examples: + - ADDED + SerializerType: + title: SerializerType enum: - - JSON - - XML - - PROTOBUF3 - example: 'JSON' - LocalityType: - description: The scope of locality as expressed by "consumedLocalOnly" and "isLocal". If absent, defaults to MEC_HOST + - JSON + - XML + - PROTOBUF3 type: string + description: The enumeration represents types of serializers + examples: + - JSON + LocalityType: + title: LocalityType enum: - - MEC_SYSTEM - - MEC_HOST - - NFVI_POP - - ZONE - - ZONE_GROUP - - NFVI_NODE - example: 'MEC_SYSTEM' - ServiceState: - description: This enumeration defines the possible states of a service. + - MEC_SYSTEM + - MEC_HOST + - NFVI_POP + - ZONE + - ZONE_GROUP + - NFVI_NODE type: string + description: The scope of locality as expressed by "consumedLocalOnly" and "isLocal". If absent, defaults to MEC_HOST + examples: + - MEC_SYSTEM + ServiceState: + title: ServiceState enum: - - ACTIVE - - INACTIVE - example: 'ACTIVE' - ServiceStates: - description: >- - States of the services about which to report events. If the event is - a state change, this filter represents the state after the change. - type: array - minItems: 0 - items: - $ref: '#/components/schemas/ServiceState' - ServiceInfo.SerInstanceId: - description: >- - Identifier of the service instance assigned by the MEC platform. - type: string - readOnly: true - example: 'ServiceInstance123' - SerInstanceIds: - description: Identifiers of service instances about which to report events. - type: array - minItems: 0 - items: - $ref: '#/components/schemas/ServiceInfo.SerInstanceId' - ServiceInfo.SerName: - description: >- - The name of the service. This is how the service producing MEC - application identifies the service instance it produces. - type: string - example: 'ExampleService' - SerNames: - description: Names of services about which to report events. - type: array - minItems: 0 - items: - $ref: '#/components/schemas/ServiceInfo.SerName' - ServiceInfo.TransportId: - description: >- - Identifier of the platform-provided transport to be used by the service. - Valid identifiers may be obtained using the "Transport information - query" procedure. May be present in POST requests to signal the use of a - platform-provided transport for the service, and shall be absent - otherwise. - type: string - writeOnly: true - example: 'Rest1' - ServiceInfo.Version: - description: Service version + - ACTIVE + - INACTIVE type: string - example: 'ServiceVersion1' - ServiceInfo.ConsumedLocalOnly: - description: >- - Indicate whether the service can only be consumed by the MEC applications - located in the same locality (as defined by scopeOfLocality) as this - service instance. - type: boolean - example: false - ServiceInfo.IsLocal: - description: >- - Indicate whether the service is located in the same locality (as defined - by scopeOfLocality) as the consuming MEC application. - type: boolean - example: true - ServiceInfo.Post: - description: This type represents the general information of a MEC service. - type: object + description: This enumeration defines the possible states of a service. + examples: + - ACTIVE + ServiceInfo: + title: ServiceInfo required: - - serName - - version - - state - - serializer - oneOf: - - required: [transportId] - - required: [transportInfo] + - serName + - version + - state + - transportInfo + - serializer + type: object properties: serInstanceId: - $ref: '#/components/schemas/ServiceInfo.SerInstanceId' + type: string + description: Identifier of the service instance assigned by the MEC platform. + examples: + - ServiceInstance123 serName: - $ref: '#/components/schemas/ServiceInfo.SerName' + type: string + description: The name of the service. This is how the service producing MEC application identifies the service instance it produces. + examples: + - ExampleService serCategory: $ref: '#/components/schemas/CategoryRef' version: - $ref: '#/components/schemas/ServiceInfo.Version' + type: string + description: Service version + examples: + - ServiceVersion1 state: $ref: '#/components/schemas/ServiceState' - transportId: - $ref: '#/components/schemas/ServiceInfo.TransportId' transportInfo: $ref: '#/components/schemas/TransportInfo' serializer: @@ -716,563 +1489,97 @@ components: scopeOfLocality: $ref: '#/components/schemas/LocalityType' consumedLocalOnly: - $ref: '#/components/schemas/ServiceInfo.ConsumedLocalOnly' + type: boolean + description: Indicate whether the service can only be consumed by the MEC applications located in the same locality (as defined by scopeOfLocality) as this service instance. + examples: + - false isLocal: - $ref: '#/components/schemas/ServiceInfo.IsLocal' - ServiceInfo: + type: boolean + description: Indicate whether the service is located in the same locality (as defined by scopeOfLocality) as the consuming MEC application. + examples: + - true description: This type represents the general information of a MEC service. - type: object - required: - - serName - - version - - state - - transportInfo - - serializer - properties: - serInstanceId: - $ref: '#/components/schemas/ServiceInfo.SerInstanceId' - serName: - $ref: '#/components/schemas/ServiceInfo.SerName' - serCategory: - $ref: '#/components/schemas/CategoryRef' - version: - $ref: '#/components/schemas/ServiceInfo.Version' - state: - $ref: '#/components/schemas/ServiceState' - transportInfo: - $ref: '#/components/schemas/TransportInfo' - serializer: - $ref: '#/components/schemas/SerializerType' - scopeOfLocality: - $ref: '#/components/schemas/LocalityType' - consumedLocalOnly: - $ref: '#/components/schemas/ServiceInfo.ConsumedLocalOnly' - isLocal: - $ref: '#/components/schemas/ServiceInfo.IsLocal' Subscription: - description: A link to the related subscription - type: object + title: Subscription required: - - subscription + - subscription + type: object properties: subscription: $ref: '#/components/schemas/LinkType' - TransportInfo.Description: - description: Human-readable description of this transport - type: string - example: 'REST API' - TransportInfo.Id: - description: The identifier of this transport - type: string - example: 'TransId12345' - TransportInfo.ImplSpecificInfo: - description: Additional implementation specific details of the transport - type: object - TransportInfo.Name: - description: The name of this transport - type: string - example: 'REST' - TransportInfo.Protocol: - description: The name of the protocol used. Shall be set to HTTP for a REST API. - type: string - example: 'HTTP' - TransportInfo.Version: - description: The version of the protocol used - type: string - example: '2.0' + description: A link to the related subscription TransportInfo: - description: This type represents the general information of a MEC service. - type: object + title: TransportInfo required: - - id - - name - - type - - protocol - - version - - endpoint - - security + - id + - name + - type + - protocol + - version + - endpoint + - security + type: object properties: id: - $ref: '#/components/schemas/TransportInfo.Id' + type: string + description: The identifier of this transport + examples: + - TransId12345 name: - $ref: '#/components/schemas/TransportInfo.Name' + type: string + description: The name of this transport + examples: + - REST description: - $ref: '#/components/schemas/TransportInfo.Description' + type: string + description: Human-readable description of this transport + examples: + - REST API type: $ref: '#/components/schemas/TransportType' protocol: - $ref: '#/components/schemas/TransportInfo.Protocol' + type: string + description: The name of the protocol used. Shall be set to HTTP for a REST API. + examples: + - HTTP version: - $ref: '#/components/schemas/TransportInfo.Version' + type: string + description: The version of the protocol used + examples: + - '2.0' endpoint: - description: This type represents information about a transport endpoint - type: object oneOf: - - $ref: '#/components/schemas/EndPointInfo.Uris' - - $ref: '#/components/schemas/EndPointInfo.Addresses' - - $ref: '#/components/schemas/EndPointInfo.Alternative' + - $ref: '#/components/schemas/EndPointInfo.Uris' + - $ref: '#/components/schemas/EndPointInfo.Addresses' + - $ref: '#/components/schemas/EndPointInfo.Alternative' + description: This type represents information about a transport endpoint security: $ref: '#/components/schemas/SecurityInfo' implSpecificInfo: - $ref: '#/components/schemas/TransportInfo.ImplSpecificInfo' + type: object + description: Additional implementation specific details of the transport + description: This type represents the general information of a MEC service. TransportType: - description: The enumeration TransportType represents types of transports - type: string + title: TransportType enum: - - REST_HTTP - - MB_TOPIC_BASED - - MB_ROUTING - - MB_PUBSUB - - RPC - - RPC_STREAMING - - WEBSOCKET - example: 'REST_HTTP' - parameters: - Path.AppInstanceId: - name: appInstanceId - description: >- - Represents a MEC application instance. Note that the - appInstanceId is allocated by the MEC platform manager. - in: path - required: true - schema: - type: string - Path.SubscriptionId: - name: subscriptionId - description: >- - Represents a subscription to the notifications from the MEC - platform. - in: path - required: true - schema: - type: string - Path.ServiceId: - name: serviceId - description: Represents a MEC service instance. - in: path - required: true - schema: - type: string - Query.Ser_category_id: - name: ser_category_id - description: >- - A MEC application instance may use ser_category_id as an input - parameter to query the availability of a list of MEC service - instances in a serCategory. Either "ser_instance_id" or "ser_name" or - "ser_category_id" or none of them shall be present. - in: query - required: false - schema: - type: string - Query.Ser_instance_id: - name: ser_instance_id - description: >- - A MEC application instance may use multiple ser_instance_ids as - an input parameter to query the availability of a list of MEC - service instances. Either "ser_instance_id" or "ser_name" or - "ser_category_id" or none of them shall be present. - in: query - required: false - schema: - type: array - items: - type: string - Query.Ser_name: - name: ser_name - description: >- - A MEC application instance may use multiple ser_names as an - input parameter to query the availability of a list of MEC - service instances. Either "ser_instance_id" or "ser_name" or - "ser_category_id" or none of them shall be present. - in: query - required: false - schema: - type: array - items: - type: string - Query.LocalityType: - name: scope_of_locality - description: >- - A MEC application instance may use scope_of_locality as an input - parameter to query the availability of a list of MEC service instances - with a certain scope of locality. - in: query - required: false - schema: - type: string - Query.Is_local: - name: is_local - description: >- - Indicate whether the service is located in the same locality (as - defined by scopeOfLocality) as the consuming MEC application. - in: query - required: false - schema: - type: boolean - Query.Consumed_local_only: - name: consumed_local_only - description: >- - Indicate whether the service can only be consumed by the MEC - applications located in the same locality (as defined by - scopeOfLocality) as this service instance. - in: query - required: false - schema: - type: boolean - responses: - ApplicationsSubscriptions.200: - description: >- - Upon success, a response body containing the list of links to the - requested subscriptions is returned. - content: - application/json: - schema: - $ref: '#/components/schemas/MecServiceMgmtApiSubscriptionLinkList' - links: - getIndividualmecSerMgmtApiSubscriptionLinkList: - $ref: '#/components/links/GetIndividualmecSerMgmtApiSubscriptionLinkList' - delIndividualmecSerMgmtApiSubscriptionLinkList: - $ref: '#/components/links/DelIndividualmecSerMgmtApiSubscriptionLinkList' - ApplicationsSubscriptions.201: - description: >- - Entity body in the request contains a subscription to the MEC - service availability notifications that is to be created. - headers: - location: - description: The resource URI of the created resource - schema: - type: string - format: uri - content: - application/json: - schema: - $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' - links: - getIndividualmecSerMgmtApiSubscription: - $ref: '#/components/links/GetIndividualmecSerMgmtApiSubscription' - delIndividualmecSerMgmtApiSubscription: - $ref: '#/components/links/DelIndividualmecSerMgmtApiSubscription' - ApplicationsSubscription.200: - description: >- - Upon success, a response body containing the requested subscription - is returned. - content: - application/json: - schema: - $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' - Services.200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - type: array - minItems: 0 - items: - $ref: '#/components/schemas/ServiceInfo' - examples: - ServiceInfoList: - $ref: '#/components/examples/ServiceInfoList' - links: - getIndividualmecService: - $ref: '#/components/links/GetIndividualmecService' - putIndividualmecService: - $ref: '#/components/links/PutIndividualmecService' - Services.201: - description: >- - Upon success, the HTTP response shall include a Location HTTP header - that contains the resource URI of the created resource. - headers: - location: - description: The resource URI of the created resource - schema: - type: string - format: uri - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfo' - examples: - ServiceInfo: - $ref: '#/components/examples/ServiceInfo' - links: - getIndividualmecService: - $ref: '#/components/links/GetIndividualmecService' - putIndividualmecService: - $ref: '#/components/links/PutIndividualmecService' - ServicesServiceId.200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfo' - examples: - ServiceInfo: - $ref: '#/components/examples/ServiceInfo' - Transports.200: - description: >- - It is used to indicate nonspecific success. The response body - contains a representation of the resource. - content: - application/json: - schema: - type: array - minItems: 0 - items: - $ref: '#/components/schemas/TransportInfo' - links: - getTransportInfo: - $ref: '#/components/links/GetTransportInfo' - 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.409: - description: >- - Conflict. - The operation cannot be executed currently, due to a conflict with - the state of the resource. Typically, this is because the application - instance resource is in NOT_INSTANTIATED state. - 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' - Error.414: - description: >- - It is used to indicate that the server is refusing to process the request because the request URI is longer than the server is willing or able to process. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - text/plain: - schema: - $ref: '#/components/schemas/Empty' - Error.429: - description: >- - Too Many Requests. - It is used when a rate limiter has triggered. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ProblemDetails' - text/plain: - schema: - $ref: '#/components/schemas/Empty' + - REST_HTTP + - MB_TOPIC_BASED + - MB_ROUTING + - MB_PUBSUB + - RPC + - RPC_STREAMING + - WEBSOCKET + type: string + description: The enumeration TransportType represents types of transports + examples: + - REST_HTTP requestBodies: - ApplicationsSubscriptions: - content: - application/json: - schema: - $ref: '#/components/schemas/SerAvailabilityNotificationSubscription' - description: >- - Entity body in the request contains a subscription to the MEC - application termination notifications that is to be created. - required: true - Services: - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfo' - description: >- - New ServiceInfo with updated "state" is included as entity body of the - request - required: true - Services.Post: - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfo.Post' - description: >- - New ServiceInfo with updated "state" is included as entity body of the - request - required: true - ServicesServiceId: - content: - application/json: - schema: - $ref: '#/components/schemas/ServiceInfo' - description: >- - New ServiceInfo with updated "state" is included as entity body of the - request - required: true ServiceAvailabilityNotification: content: application/json: schema: $ref: '#/components/schemas/ServiceAvailabilityNotification' required: true - callbacks: - ServiceAvailabilityNotification: - '{$request.body#/callbackReference}': - post: - description: >- - 'Represents the service availability information that - is used in the following cases - - when the MEC platform announces the newly available - services to the authorized relevant MEC applications (e.g. - the applications that indicate the services as "optional" - or "required") that are subscribed to the corresponding - service availability notifications - - when the MEC platform notifies the authorized relevant - applications that are subscribed to the corresponding - service availability notifications about the service availability changes.' - operationId: ServiceAvailabilityNotification_POST - tags: - - callbacks - requestBody: - $ref: '#/components/requestBodies/ServiceAvailabilityNotification' - responses: - '200': - description: Expected responses from callback consumer, if it accepts the callback - links: - GetIndividualmecService: - operationId: ServicesServiceId_GET - description: The `serviceId` value returned in the response can be used as the `serviceId` parameter in `GET /services/{serviceId}` - parameters: - serviceId: '$response.body#/serviceId' - PutIndividualmecService: - operationId: ServicesServiceId_PUT - description: The `serviceId` value returned in the response can be used as the `serviceId` parameter in `PUT /services/{serviceId}` - parameters: - serviceId: '$response.body#/serviceId' - GetTransportInfo: - operationId: AppServices_POST - description: The `id` value returned in the response can be used as the `transportId` parameter in `POST /applications/{appInstanceId}/services`. The first transport is provided as the link as wildcards are not supported - parameters: - transportId: '$response.body#/0/id' - GetIndividualmecSerMgmtApiSubscription: - operationId: ApplicationsSubscription_GET - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_service_mgmt\/v1\/applications\/.*\/subscriptions\/.*\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - DelIndividualmecSerMgmtApiSubscription: - operationId: ApplicationsSubscription_DELETE - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_service_mgmt\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - GetIndividualmecSerMgmtApiSubscriptionLinkList: - operationId: ApplicationsSubscription_GET - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `GET /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_service_mgmt\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - DelIndividualmecSerMgmtApiSubscriptionLinkList: - operationId: ApplicationsSubscription_DELETE - description: The `subscriptionId` value returned in the response can be used as the `subscriptionId` parameter in `DELETE /applications/{appInstanceId}/subscriptions/{subscriptionId}` - parameters: - description: regex = \/mec_service_mgmt\/v1\/applications\/.*\/subscriptions\/(.*);subscriptionId = href.match(regex)[1];// where "href" is an attribute within the subscription attribute within the _links attribute - subscriptionId: 'TBC' - examples: - ServiceInfo: - value: - serInstanceId: 'ServiceInstance123' - serName: 'ExampleService' - serCategory: - href: 'catItem1' - id: 'id12345' - name: 'RNI' - version: 'version1' - version: 'ServiceVersion1' - state: 'ACTIVE' - transportInfo: - id: 'TransId12345' - name: 'REST' - description: 'REST API' - type: 'REST_HTTP' - protocol: 'HTTP' - version: '2.0' - endpoint: - uris: - - '/mecSerMgmtApi/service/EntryPoint' - security: - oAuth2Info: - grantTypes: - - 'OAUTH2_CLIENT_CREDENTIALS' - tokenEndpoint: '/mecSerMgmtApi/security/TokenEndPoint' - serializer: 'JSON' - ServiceInfoList: - value: - - serInstanceId: 'ServiceInstance123' - serName: 'ExampleService' - serCategory: - href: 'catItem1' - id: 'id12345' - name: 'RNI' - version: 'version1' - version: 'ServiceVersion1' - state: 'ACTIVE' - transportInfo: - id: 'TransId12345' - name: 'REST' - description: 'REST API' - type: 'REST_HTTP' - protocol: 'HTTP' - version: '2.0' - endpoint: - addresses: - - host: '192.0.2.0' - port: 8080 - security: - oAuth2Info: - grantTypes: - - 'OAUTH2_CLIENT_CREDENTIALS' - tokenEndpoint: '/mecSerMgmtApi/security/TokenEndPoint' - serializer: 'JSON' +security: +- {} + diff --git a/README.md b/README.md index 4109ae9a24bfa55bbf1d86b78ee1a16efd57757b..25983c60126b8fe620aac48266fbbd0b4126ff2e 100644 --- a/README.md +++ b/README.md @@ -5,10 +5,10 @@ This repository contains OpenAPIs descriptions for the interfaces specified in E ## Online resources * [Specification document](https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.01.01_60/gs_MEC011v020101p.pdf) -* [Navigate the MEC Application Support API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/master/MecAppSupportApi.yaml). -* [Navigate the MEC Service Management API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/master/MecServiceMgmtApi.yaml). -* [Edit the MEC Application Support API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/master/MecAppSupportApi.yaml). -* [Edit the MEC Service Management API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/master/MecServiceMgmtApi.yaml). +* [Navigate the MEC Application Support API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/stf606-final/MecAppSupportApi.yaml). +* [Navigate the MEC Service Management API in the browser](https://forge.etsi.org/swagger/ui/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/stf606-final/MecServiceMgmtApi.yaml). +* [Edit the MEC Application Support API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/stf606-final/MecAppSupportApi.yaml). +* [Edit the MEC Service Management API online](https://forge.etsi.org/swagger/editor/?url=https://forge.etsi.org/gitlab/mec/gs011-app-enablement-api/raw/stf606-final/MecServiceMgmtApi.yaml). ## License