Commit 8a59a1ae authored by piscione's avatar piscione
Browse files

Updated MEC011 OAS3.1 specification from version V2.1.1 to version V2.2.1

parent 0196cc50
Pipeline #10477 failed with stage
in 0 seconds
......@@ -2,7 +2,7 @@
"openapi": "3.1.0",
"info": {
"title": "MEC Application Support API",
"version": "2.1.1",
"version": "2.2.1",
"description": "The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI",
"license": {
"name": "BSD-3-Clause",
......@@ -13,8 +13,8 @@
}
},
"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.2.1",
"url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf"
},
"tags": [
{
......@@ -77,7 +77,6 @@
"content": {
"application/json": {
"schema": {
"minItems": 0,
"type": "array",
"items": {
"$ref": "#/components/schemas/TrafficRule"
......@@ -500,7 +499,6 @@
"content": {
"application/json": {
"schema": {
"minItems": 0,
"type": "array",
"items": {
"$ref": "#/components/schemas/DnsRule"
......@@ -2054,7 +2052,7 @@
},
"minPollingInterval": {
"type": "integer",
"description": "Minimum poll interval for NTP messages, in seconds as a power of two. Range 3...17",
"description": "Minimum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17",
"contentEncoding": "int32",
"examples": [
3
......@@ -2062,7 +2060,7 @@
},
"maxPollingInterval": {
"type": "integer",
"description": "Maximum poll interval for NTP messages, in seconds as a power of two. Range 3...17",
"description": "Maximum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17",
"contentEncoding": "int32",
"examples": [
17
......@@ -2101,14 +2099,14 @@
"properties": {
"ptpMasterIpAddress": {
"type": "string",
"description": "PTP Master IP Address",
"description": "PTP Server (referred to as \"master\" in IEEE 1588-2019) IP Address",
"examples": [
"192.0.2.0"
]
},
"ptpMasterLocalPriority": {
"type": "integer",
"description": "PTP Master local priority",
"description": "PTP Server (referred to as \"master\" in IEEE 1588-2019 ) local priority",
"contentEncoding": "int32",
"examples": [
1
......@@ -2171,7 +2169,7 @@
"items": {
"$ref": "#/components/schemas/TimingCaps_PtpMasters"
},
"description": "Available PTP Masters"
"description": "Number of available PTP Servers (referred to as \"masters\" in IEEE 1588-2019)"
}
},
"description": "This type represents the information provided by the MEC platform in response to the Timing capabilities Query message."
......@@ -2341,7 +2339,7 @@
},
"priority": {
"type": "integer",
"description": "Priority of this traffic rule. If traffic rule conflicts, the one with higher priority take precedence",
"description": "Priority of this traffic rule within the range 0 to 255. If traffic rules conflict, the one with higher priority take precedence. Value indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest priority.",
"contentEncoding": "int32",
"examples": [
1
......@@ -2358,7 +2356,11 @@
"$ref": "#/components/schemas/TrafficRule.Action"
},
"dstInterface": {
"$ref": "#/components/schemas/DestinationInterface"
"type": "array",
"items": {
"$ref": "#/components/schemas/DestinationInterface"
},
"maxItems": 2
},
"state": {
"$ref": "#/components/schemas/TrafficRule.State"
......
openapi: 3.1.0
info:
title: MEC Application Support API
version: '2.1.1'
version: '2.2.1'
description: The ETSI MEC ISG MEC011 MEC Application Support API described using OpenAPI
license:
name: BSD-3-Clause
......@@ -9,8 +9,8 @@ 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.2.1
url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf
tags:
- name: appTrafficRules
- name: appDnsRules
......@@ -47,7 +47,6 @@ paths:
content:
application/json:
schema:
minItems: 0
type: array
items:
$ref: '#/components/schemas/TrafficRule'
......@@ -328,7 +327,6 @@ paths:
content:
application/json:
schema:
minItems: 0
type: array
items:
$ref: '#/components/schemas/DnsRule'
......@@ -1401,13 +1399,13 @@ components:
- 192.0.2.0
minPollingInterval:
type: integer
description: Minimum poll interval for NTP messages, in seconds as a power of two. Range 3...17
description: Minimum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17
contentEncoding: int32
examples:
- 3
maxPollingInterval:
type: integer
description: Maximum poll interval for NTP messages, in seconds as a power of two. Range 3...17
description: Maximum poll interval for NTP messages, in seconds as a power of two. Range 3 to 17
contentEncoding: int32
examples:
- 17
......@@ -1436,12 +1434,12 @@ components:
properties:
ptpMasterIpAddress:
type: string
description: PTP Master IP Address
description: PTP Server (referred to as "master" in IEEE 1588-2019) IP Address
examples:
- 192.0.2.0
ptpMasterLocalPriority:
type: integer
description: PTP Master local priority
description: PTP Server (referred to as "master" in IEEE 1588-2019 ) local priority
contentEncoding: int32
examples:
- 1
......@@ -1487,7 +1485,7 @@ components:
type: array
items:
$ref: '#/components/schemas/TimingCaps_PtpMasters'
description: Available PTP Masters
description: Number of available PTP Servers (referred to as "masters" in IEEE 1588-2019)
description: This type represents the information provided by the MEC platform in response to the Timing capabilities Query message.
TrafficFilter:
title: TrafficFilter
......@@ -1613,7 +1611,7 @@ components:
$ref: '#/components/schemas/TrafficRule.FilterType'
priority:
type: integer
description: Priority of this traffic rule. If traffic rule conflicts, the one with higher priority take precedence
description: Priority of this traffic rule within the range 0 to 255. If traffic rules conflict, the one with higher priority take precedence. Value indicates the priority in descending order, i.e. with 0 as the highest priority and 255 as the lowest priority.
contentEncoding: int32
examples:
- 1
......@@ -1625,7 +1623,10 @@ components:
action:
$ref: '#/components/schemas/TrafficRule.Action'
dstInterface:
$ref: '#/components/schemas/DestinationInterface'
type: array
items:
$ref: '#/components/schemas/DestinationInterface'
maxItems: 2
state:
$ref: '#/components/schemas/TrafficRule.State'
description: This type represents the general information of a traffic rule.
......
......@@ -10,11 +10,11 @@
"contact": {
"email": "cti_support@etsi.org"
},
"version": "2.1.1"
"version": "2.2.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.2.1",
"url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf"
},
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"servers": [
......@@ -42,6 +42,9 @@
},
{
"name": "callbacks"
},
{
"name": "individualMECservice"
}
],
"paths": {
......@@ -504,7 +507,6 @@
"content": {
"application/json": {
"schema": {
"minItems": 0,
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceInfo"
......@@ -1256,7 +1258,6 @@
"content": {
"application/json": {
"schema": {
"minItems": 0,
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceInfo"
......@@ -1557,7 +1558,6 @@
"content": {
"application/json": {
"schema": {
"minItems": 0,
"type": "array",
"items": {
"$ref": "#/components/schemas/TransportInfo"
......@@ -1619,6 +1619,142 @@
"deprecated": false
},
"parameters": []
},
"/resource_uri_allocated_by_MEC_platform": {
"get": {
"tags": [
"individualMECservice"
],
"description": "This method retrieves information about an \"Individual mecServiceLiveness\" resource",
"operationId": "get_individual_MEC_service",
"responses": {
"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/ServiceLivenessInfo"
}
}
}
},
"400": {
"description": "It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "The operation is not allowed given the current status of the resource. More information shall be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
},
"patch": {
"tags": [
"individualMECservice"
],
"description": "This method updates a resource on top of the existing resource state with partial changes described by the client.",
"operationId": "patch_individual_MEC_service",
"requestBody": {
"description": "It contains an update of the liveness state.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceLivenessUpdate"
}
}
},
"required": true
},
"responses": {
"200": {
"description": "Upon success, a response body is returned containing the updated liveness interval value of the service Instance.",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ServiceLivenessInfo"
}
}
}
},
"204": {
"description": "Successful response sent when there is no need to provide a new liveness interval value to the service Instance.",
"headers": {},
"content": {}
},
"400": {
"description": "It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"403": {
"description": "The operation is not allowed given the current status of the resource. More information shall be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"404": {
"description": "It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"409": {
"description": "The operation is not allowed due to a conflict with the state of the resource. The MEC platform shall respond with this code if the service instance is in \"INACTIVE\" state. More information shall be provided in the \"detail\" attribute of the \"ProblemDetails\" structure.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"412": {
"description": "It is used when a condition has failed during conditional requests, e.g. when using ETags to avoid write conflicts. In the returned ProblemDetails structure, the \"detail\" attribute should convey more information about the error.",
"content": {
"application/problem+json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
}
}
}
},
"components": {
......@@ -1698,7 +1834,6 @@
"type": "object",
"properties": {
"addresses": {
"minItems": 0,
"type": "array",
"items": {
"$ref": "#/components/schemas/EndPointInfo.Address"
......@@ -1729,7 +1864,6 @@
"type": "object",
"properties": {
"uris": {
"minItems": 0,
"type": "array",
"items": {
"type": "string"
......@@ -1932,7 +2066,6 @@
"type": "object",
"properties": {
"serInstanceIds": {
"minItems": 0,
"type": "array",
"items": {
"type": "string"
......@@ -1940,7 +2073,6 @@
"description": "Identifiers of service instances about which to report events."
},
"serNames": {
"minItems": 0,
"type": "array",
"items": {
"type": "string"
......@@ -1948,7 +2080,6 @@
"description": "Names of services about which to report events."
},
"serCategories": {
"minItems": 0,
"type": "array",
"items": {
"$ref": "#/components/schemas/CategoryRef"
......@@ -1956,7 +2087,6 @@
"description": "Categories of services about which to report events."
},
"states": {
"minItems": 0,
"type": "array",
"items": {
"$ref": "#/components/schemas/ServiceState"
......@@ -2047,7 +2177,7 @@
"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.",
"description": "Type of the change. Valid values:\n 1. ADDED: The service was newly added.\n 2. REMOVED: The service was removed.\n 3. STATE_CHANGED: Only the state of the service was changed. \n 4. 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"
]
......@@ -2085,7 +2215,8 @@
"title": "ServiceState",
"enum": [
"ACTIVE",
"INACTIVE"
"INACTIVE",
"SUSPENDED"
],
"type": "string",
"description": "This enumeration defines the possible states of a service.",
......@@ -2153,10 +2284,72 @@
"examples": [
true
]
},
"livenessInterval": {
"type": "integer",
"description": "Interval (in seconds) between two consecutive \"heartbeat\" messages (see clause 8.2.10.3.3). If the service-producing application supports sending \"heartbeat\" messages, it shall include this attribute in the registration request. In this case, the application shall either set the value of this attribute to zero or shall use this attribute to propose a non-zero positive value for the liveness interval. If the application has provided this attribute in the request and the MEC platform requires \"heartbeat\" messages, the MEC platform shall return this attribute value in the HTTP responses. The MEC platform may use the value proposed in the request or may choose a different value. If the MEC platform does not require \"heartbeat\" messages for this service instance it shall omit the attribute in responses."
},
"_links": {
"type": "object",
"required": [
"self"
],
"properties": {
"self": {
"$ref": "#/components/schemas/LinkType"
},
"liveness": {
"$ref": "#/components/schemas/LinkType"
}
}
}
},
"description": "This type represents the general information of a MEC service."
},
"ServiceLivenessInfo": {
"type": "object",
"required": [
"state",
"timeStamp",
"interval"
],
"properties": {
"state": {
"$ref": "#/components/schemas/ServiceState"
},
"timeStamp": {
"type": "object",
"description": "The time when the last \"heartbeat\" message was received by MEC platform",
"required": [
"seconds",
"nanoSeconds"
],
"properties": {
"seconds": {
"type": "integer"
},
"nanoSeconds": {
"type": "integer"
}
}
},
"interval": {
"type": "integer",
"description": "The interval (in seconds) between two consecutive \"heartbeat\" messages (see clause 8.2.10.3.3) that MEC platform has determined."
}
}
},
"ServiceLivenessUpdate": {
"type": "object",
"required": [
"state"
],
"properties": {
"state": {
"$ref": "#/components/schemas/ServiceState"
}
}
},
"Subscription": {
"title": "Subscription",
"required": [
......
......@@ -7,10 +7,10 @@ info:
url: 'https://forge.etsi.org/legal-matters'
contact:
email: cti_support@etsi.org
version: '2.1.1'
version: '2.2.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.2.1
url: https://www.etsi.org/deliver/etsi_gs/MEC/001_099/011/02.02.01_60/gs_MEC011v020201p.pdf
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
servers:
- url: http://127.0.0.1:8081/mec_service_mgmt/v1
......@@ -23,6 +23,7 @@ tags:
- name: services
- name: transports
- name: callbacks
- name: individualMECservice
paths:
/applications/{appInstanceId}/subscriptions:
......@@ -351,7 +352,6 @@ paths:
content:
application/json:
schema:
minItems: 0
type: array
items:
$ref: '#/components/schemas/ServiceInfo'
......@@ -861,7 +861,6 @@ paths:
content:
application/json:
schema:
minItems: 0
type: array
items:
$ref: '#/components/schemas/ServiceInfo'
......@@ -1067,7 +1066,6 @@ paths:
content:
application/json:
schema:
minItems: 0
type: array
items:
$ref: '#/components/schemas/TransportInfo'
......@@ -1106,6 +1104,93 @@ paths:
contentMediaType: text/plain
deprecated: false
parameters: []
/resource_uri_allocated_by_MEC_platform:
get:
tags:
- individualMECservice
description: This method retrieves information about an "Individual mecServiceLiveness" resource
operationId: get_individual_MEC_service
responses:
'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/ServiceLivenessInfo'
'400':
description: It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'404':
description: It is used when a client provided a URI that cannot be mapped to a valid resource URI. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'403':
description: The operation is not allowed given the current status of the resource.
More information shall be provided in the "detail" attribute of the "ProblemDetails" structure.
content:
application/problem+json:
schema:
$ref: '#/components/schemas/ProblemDetails'
patch:
tags:
- individualMECservice
description: This method updates a resource on top of the existing resource state with partial changes described by the client.
operationId: patch_individual_MEC_service
requestBody:
description: It contains an update of the liveness state.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceLivenessUpdate'
required: true
responses:
'200':
description: Upon success, a response body is returned containing the updated liveness interval value of the service Instance.
content:
application/json:
schema:
$ref: '#/components/schemas/ServiceLivenessInfo'
'204':
description: Successful response sent when there is no need to provide a new liveness interval value to the service Instance.
headers: {}
content: {}
'400':
description: It is used to indicate that incorrect parameters were passed to the request. In the returned ProblemDetails structure, the "detail" attribute should convey more information about the error.
content:
application/problem+json: