Commit 4eb20ca8 authored by Walter Featherstone's avatar Walter Featherstone
Browse files

Merge branch 'stf606-final' into 'master'

MEC010-2 v2.2.1 - OAS v3.1

See merge request !9
parents 0da766fc b85dcc26
Pipeline #11073 failed with stage
in 0 seconds
......@@ -3,7 +3,7 @@
"info": {
"title": "ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management",
"description": "ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management described using OpenAPI.",
"version": "2.1.1",
"version": "2.2.1",
"license": {
"name": "BSD-3-Clause",
"url": "https://forge.etsi.org/legal-matters"
......@@ -15,8 +15,8 @@
}
},
"externalDocs": {
"description": "ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management, v2.1.1",
"url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/01002/02.01.01_60/gs_MEC01002v020101p.pdf"
"description": "ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management, v2.2.1",
"url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/01002/02.02.01_60/gs_MEC01002v020201p.pdf"
},
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"servers": [
......@@ -259,7 +259,6 @@
"description": "Identifier of the external CP instance to which this set of configuration parameters is requested to be applied. \n\nShall be present if this instance has already been created."
},
"cpProtocolData": {
"minItems": 0,
"type": "array",
"items": {
"$ref": "#/components/schemas/CpProtocolData"
......@@ -281,7 +280,6 @@
"type": "object",
"properties": {
"cpConfig": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/components/schemas/AppExtCpConfig"
......@@ -350,7 +348,6 @@
"type": "object",
"properties": {
"extCps": {
"minItems": 1,
"type": "array",
"items": {
"$ref": "#/components/schemas/AppExtCpData"
......@@ -358,7 +355,6 @@
"description": "External CPs of the application instance to be connected to this external VL."
},
"extLinkPorts": {
"minItems": 0,
"type": "array",
"items": {
"$ref": "#/components/schemas/ExtLinkPortData"
......@@ -390,22 +386,23 @@
"type": "object",
"properties": {
"id": {
"type": "string"
"type": "string",
"description": "Identifier of the Grant."
},
"appInstanceId": {
"type": "string",
"description": "Identifier of application instance."
"description": "Identifier of the application instance which this Grant is related to."
},
"appLcmOpOccId": {
"type": "string",
"description": "Identifier of application lifecycle management operation occurrence."
"description": "The identifier of the application lifecycle management operation occurrence associated to the Grant."
},
"vimConnections": {
"type": "array",
"description": "Provides information regarding VIM connections that are approved to be used by the MEPM to allocate resources, and provides parameters of these VIM connections.",
"items": {
"$ref": "#/components/schemas/VimConnectionInfo"
},
"description": ""
}
},
"zones": {
"type": "array",
......@@ -763,7 +760,7 @@
},
"resourceTemplateId": {
"type": "string",
"description": "Reference to a resource template, i.e. VirtualLinkDesc, VirtualComputeDesc, AppExtCpd, VirtualStorageDesc in the AppD."
"description": "Reference to a resource template, i.e. VirtualComputeDescriptor, AppExtCpd, VirtualStorageDescriptor in the AppD."
},
"resource": {
"$ref": "#/components/schemas/Resource"
......@@ -874,7 +871,6 @@
"type": "object",
"properties": {
"zoneId": {
"minItems": 1,
"type": "array",
"items": {
"type": "string"
......@@ -893,10 +889,11 @@
"properties": {
"id": {
"type": "string",
"description": "The identifier of this ZoneInfo instance, for the purpose of referencing it from other structures in the \"Grant\" structure."
"description": "Identifier of the connection to the VIM that manages the resource zone. The applicable \"VimConnectionInfo\" structure, which is referenced by vimConnectionId, can be obtained from the \" vimConnectionInfo\" attribute of the \"AppInstanceInfo\" structure."
},
"vimConnectionId": {
"type": "string"
"type": "string",
"description": null
},
"zoneId": {
"type": "string",
......
......@@ -2,7 +2,7 @@ openapi: 3.1.0
info:
title: 'ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management'
description: 'ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management described using OpenAPI.'
version: '2.1.1'
version: '2.2.1'
license:
name: BSD-3-Clause
url: https://forge.etsi.org/legal-matters
......@@ -11,8 +11,8 @@ info:
url: https://forge.etsi.org/rep/mec/gs010-2-app-pkg-lcm-api
email: cti_support@etsi.org
externalDocs:
description: "ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management, v2.1.1"
url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/01002/02.01.01_60/gs_MEC01002v020101p.pdf'
description: "ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management, v2.2.1"
url: 'https://www.etsi.org/deliver/etsi_gs/MEC/001_099/01002/02.02.01_60/gs_MEC01002v020201p.pdf'
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
servers:
- url: https://localhost/granting/v1
......@@ -173,7 +173,6 @@ components:
type: string
description: "Identifier of the external CP instance to which this set of configuration parameters is requested to be applied. \n\nShall be present if this instance has already been created."
cpProtocolData:
minItems: 0
type: array
items:
$ref: '#/components/schemas/CpProtocolData'
......@@ -189,7 +188,6 @@ components:
type: object
properties:
cpConfig:
minItems: 1
type: array
items:
$ref: '#/components/schemas/AppExtCpConfig'
......@@ -239,13 +237,11 @@ components:
type: object
properties:
extCps:
minItems: 1
type: array
items:
$ref: '#/components/schemas/AppExtCpData'
description: External CPs of the application instance to be connected to this external VL.
extLinkPorts:
minItems: 0
type: array
items:
$ref: '#/components/schemas/ExtLinkPortData'
......@@ -270,17 +266,18 @@ components:
properties:
id:
type: string
description: Identifier of the Grant.
appInstanceId:
type: string
description: Identifier of application instance.
description: Identifier of the application instance which this Grant is related to.
appLcmOpOccId:
type: string
description: Identifier of application lifecycle management operation occurrence.
description: The identifier of the application lifecycle management operation occurrence associated to the Grant.
vimConnections:
type: array
description: Provides information regarding VIM connections that are approved to be used by the MEPM to allocate resources, and provides parameters of these VIM connections.
items:
$ref: '#/components/schemas/VimConnectionInfo'
description: ''
$ref: '#/components/schemas/VimConnectionInfo'
zones:
type: array
items:
......@@ -540,7 +537,7 @@ components:
description: Reference to the related VDU in the AppD applicable to this resource.
resourceTemplateId:
type: string
description: Reference to a resource template, i.e. VirtualLinkDesc, VirtualComputeDesc, AppExtCpd, VirtualStorageDesc in the AppD.
description: Reference to a resource template, i.e. VirtualComputeDescriptor, AppExtCpd, VirtualStorageDescriptor in the AppD.
resource:
$ref: '#/components/schemas/Resource'
description: "'This type provides information of an existing or proposed resource used by the application. Refer to clause 9.5.3.2 of ETSI GS NFV-SOL 003 '"
......@@ -620,7 +617,6 @@ components:
type: object
properties:
zoneId:
minItems: 1
type: array
items:
type: string
......@@ -634,9 +630,10 @@ components:
properties:
id:
type: string
description: The identifier of this ZoneInfo instance, for the purpose of referencing it from other structures in the "Grant" structure.
vimConnectionId:
description: Identifier of the connection to the VIM that manages the resource zone. The applicable "VimConnectionInfo" structure, which is referenced by vimConnectionId, can be obtained from the " vimConnectionInfo" attribute of the "AppInstanceInfo" structure.
vimConnectionId:
type: string
description:
zoneId:
type: string
description: The identifier of the resource zone, as managed by the resource management layer (typically, the VIM).
......
......@@ -12,11 +12,11 @@
"url": "https://forge.etsi.org/rep/mec/gs010-2-app-pkg-lcm-api",
"email": "cti_support@etsi.org"
},
"version": "2.1.1"
"version": "2.2.1"
},
"externalDocs": {
"description": "ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management, v2.1.1",
"url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/01002/02.01.01_60/gs_MEC01002v020101p.pdf"
"description": "ETSI GS MEC 010-2 - Part 2: Application lifecycle, rules and requirements management, v2.2.1",
"url": "https://www.etsi.org/deliver/etsi_gs/MEC/001_099/01002/02.02.01_60/gs_MEC01002v020201p.pdf"
},
"jsonSchemaDialect": "https://json-schema.org/draft/2020-12/schema",
"tags": [
......@@ -497,29 +497,9 @@
"tags": [
"app-lcm-notifications"
],
"summary": "subscribe to the notification of application instance operational state change",
"description": "subscribe to the notification of application instance operational state change",
"summary": "subscribe to the notification of application instance related change",
"description": "subscribe to the notification of application instance related change",
"operationId": "appLcmSubscriptionsPOST",
"parameters": [
{
"name": "subscriptionType",
"in": "query",
"description": "\"Query parameter to filter on a specific subscription type. Permitted values:\n\"AppInstanceStateChange\"\n\"AppLcmOpOccStateChange\"\n\"",
"required": true,
"style": "form",
"explode": true,
"schema": {
"oneOf": [
{
"$ref": "#/components/schemas/AppInst.SubscriptionType"
},
{
"$ref": "#/components/schemas/AppLcmOpOcc.SubscriptionType"
}
]
}
}
],
"requestBody": {
"description": "",
"content": {
......@@ -531,6 +511,12 @@
},
{
"$ref": "#/components/schemas/AppLcmOpOccSubscriptionRequest"
},
{
"$ref": "#/components/schemas/AppInstIdCreationSubscriptionRequest"
},
{
"$ref": "#/components/schemas/AppInstIdDeletionSubscriptionRequest"
}
],
"contentMediaType": "application/json"
......@@ -552,6 +538,12 @@
},
{
"$ref": "#/components/schemas/AppLcmOpOccSubscriptionInfo"
},
{
"$ref": "#/components/schemas/AppInstIdCreationSubscriptionInfo"
},
{
"$ref": "#/components/schemas/AppInstIdDeletionSubscriptionInfo"
}
],
"contentMediaType": "application/json"
......@@ -673,11 +665,11 @@
{
"name": "subscriptionType",
"in": "query",
"description": "Permitted values: AppInstanceStateChange or AppLcmOpOccStateChange",
"description": "Query parameter to filter on a specific subscription type.",
"style": "form",
"explode": true,
"schema": {
"type": "string"
"$ref": "#/components/schemas/AppInstanceSubscriptionType"
}
}
],
......@@ -688,7 +680,7 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/SubscriptionLinkList"
"$ref": "#/components/schemas/AppInstanceSubscriptionLinkList"
}
}
}
......@@ -782,17 +774,6 @@
"schema": {
"type": "string"
}
},
{
"name": "subscriptionType",
"in": "query",
"description": "Permitted values: AppInstanceStateChange or AppLcmOpOccStateChange",
"required": true,
"style": "form",
"explode": true,
"schema": {
"type": "string"
}
}
],
"responses": {
......@@ -808,6 +789,12 @@
},
{
"$ref": "#/components/schemas/AppLcmOpOccSubscriptionInfo"
},
{
"$ref": "#/components/schemas/AppInstIdCreationSubscriptionInfo"
},
{
"$ref": "#/components/schemas/AppInstIdDeletionSubscriptionInfo"
}
],
"contentMediaType": "application/json"
......@@ -978,6 +965,12 @@
},
{
"$ref": "#/components/schemas/AppLcmOpOccNotification"
},
{
"$ref": "#/components/schemas/AppInstanceIdentifierCreationNotification"
},
{
"$ref": "#/components/schemas/AppInstanceIdentifierDeletionNotification"
}
],
"contentMediaType": "application/json"
......@@ -1441,7 +1434,7 @@
{
"name": "fields",
"in": "query",
"description": "Complex attributes of AppPkgInfo to be included into the response",
"description": "Complex attributes of AppLcmOpOcc to be excluded from the response.",
"style": "form",
"explode": true,
"schema": {
......@@ -1451,7 +1444,7 @@
{
"name": "exclude_fields",
"in": "query",
"description": "Complex attributes of AppPkgInfo to be excluded from the response.",
"description": "Complex attributes of AppLcmOpOcc to be excluded from the response.",
"style": "form",
"explode": true,
"schema": {
......@@ -1461,7 +1454,7 @@
{
"name": "exclude_default",
"in": "query",
"description": "Indicates to exclude the following complex attributes of AppPkgInfo from the response.",
"description": "Indicates to exclude the following complex attributes of AppLcmOpOcc from the response.",
"style": "form",
"explode": true,
"schema": {
......@@ -1478,7 +1471,7 @@
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/AppInstanceLcmOpOcc"
"$ref": "#/components/schemas/AppLcmOpOcc"
},
"description": "",
"contentMediaType": "application/json"
......@@ -1584,7 +1577,7 @@
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/AppInstanceLcmOpOcc"
"$ref": "#/components/schemas/AppLcmOpOcc"
}
}
}
......@@ -1659,126 +1652,709 @@
"deprecated": false
},
"parameters": []
}
},
"components": {
"schemas": {
"AppInstanceLcmOpOcc": {
"title": "AppInstanceLcmOpOcc",
"required": [
"id",
"operationState",
"stateEnteredTime",
"startTime",
"lcmOperation",
"_links"
},
"/app_lcm_op_occs/{appLcmOpOccId}/cancel": {
"post": {
"tags": [
"app-lcm"
],
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "'Identifier of the subscription to application LCM operation occurrence notification'"
"summary": "cancel an ongoing application lifecycle operation whose related \"Individual application LCM operation occurrence\" resource is in \"PROCESSING\" state.",
"description": "cancel an ongoing application lifecycle operation whose related \"Individual application LCM operation occurrence\" resource is in \"PROCESSING\" state.",
"operationId": "appLcmCancelPOST",
"parameters": [
{
"name": "appLcmOpOccId",
"in": "path",
"description": "Identifies an individual application LCM operation occurrence",
"required": true,
"style": "simple",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CancelMode"
}
}
},
"operationState": {
"$ref": "#/components/schemas/OperationState"
"required": true
},
"responses": {
"202": {
"description": "The request was accepted for processing, but it is possible that the processing is not yet completed.",
"headers": {},
"content": {}
},
"stateEnteredTime": {
"$ref": "#/components/schemas/TimeStamp"
"400": {
"description": "Bad Request : used to indicate that incorrect parameters were passed to the request.",
"headers": {},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"startTime": {
"$ref": "#/components/schemas/TimeStamp"
"401": {
"description": "Unauthorized : used when the client did not submit credentials.",
"headers": {},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"lcmOperation": {
"$ref": "#/components/schemas/LcmOperation"
"403": {
"description": "Forbidden : operation is not allowed given the current status of the resource.",
"headers": {},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"operationParams": {
"$ref": "#/components/schemas/OperationParams"
"404": {
"description": "Not Found : used when a client provided a URI that cannot be mapped to a valid resource URI.",
"headers": {},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"_links": {
"$ref": "#/components/schemas/AppInstanceLcmOpOcc.links"
}
},
"description": "'This data type represents an application lifecycle management operation occurrence'"
},
"OperationParams": {
"title": "OperationParams",
"enum": [
"INSTANTIATE",
"OPERATE",
"TERMINATE"
],
"type": "string",
"description": "'Input parameters of the LCM operation. This attribute shall be formatted according to the request data type of the related LCM operation.'",
"examples": [
"INSTANTIATE"
]
},
"AppInstanceLcmOpOcc.links": {
"title": "AppInstanceLcmOpOcc.links",
"required": [
"self",
"appInstance"
],
"type": "object",
"properties": {
"self": {
"$ref": "#/components/schemas/LinkType"
"406": {
"description": "Not Acceptable : used to indicate that the server cannot provide the any of the content formats supported by the client.",
"headers": {},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"appInstance": {
"$ref": "#/components/schemas/LinkType"
}
},
"description": "Links to resources related to this resource."
},
"SubscriptionLinkList": {
"title": "SubscriptionLinkList",
"required": [
"_links"
],
"type": "object",
"properties": {
"_links": {
"$ref": "#/components/schemas/SubscriptionLinkList.links"
"409": {
"description": "Conflict : The operation cannot be executed currently, due to a conflict with the state of the resource",
"headers": {},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
},
"429": {
"description": "Too Many Requests : used when a rate limiter has triggered.",
"headers": {},
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ProblemDetails"
}
}
}
}
},
"description": "'The data type represents a subscription link list of notification on application lifecycle management. '"
"deprecated": false
},
"SubscriptionLinkList.links": {
"title": "SubscriptionLinkList.links",
"required": [
"self"
"parameters": []
},
"/app_lcm_op_occs/{appLcmOpOccId}/fail": {
"post": {
"tags": [
"app-lcm"
],
"type": "object",
"properties": {
"self": {
"$ref": "#/components/schemas/LinkType"
},
"subscriptions": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SubscriptionLinkList.links.subscriptions"
},
"description": ""
"summary": "marks an application lifecycle management operation occurrence as \"finally failed\"",
"description": "marks an application lifecycle management operation occurrence as \"finally failed\"",
"operationId": "appLcmFailPOST",
"parameters": [
{
"name": "appLcmOpOccId",
"in": "path",
"description": "Identifies an individual application LCM operation occurrence",
"required": true,
"style": "simple",
"schema": {
"type": "string"
}
}