From af2f6a921f69627f6e8b3e2d73bf345544458125 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Fri, 30 Oct 2020 12:57:08 +0100 Subject: [PATCH 01/66] updated readme --- Readme.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Readme.md b/Readme.md index 1f94e8ad..6379485e 100644 --- a/Readme.md +++ b/Readme.md @@ -1,14 +1,14 @@ # NFV SOL002 and SOL003 APIs This repository hosts the [OpenAPI](https://www.openapis.org/) specificatons and other documentation -for the APIs defined in ETSI NFV GSs SOL002 and SOL003 v3.3.1. +for the APIs defined in ETSI NFV GSs SOL002 and SOL003 v3.5.1. The APIs described in this repository are defined for the following reference points: * `Or-Vnfm` * `Ve-vnfm` -**IMPORTANT: In case of discrepancies the published ETSI Group Specification takes precedence.** +**IMPORTANT: These [OpenAPI](https://www.openapis.org/) specifications are in development phase. In case of discrepancies the published ETSI Group Specification takes precedence.** More information at [NFV Solutions wiki](https://nfvwiki.etsi.org/index.php?title=NFV_Solutions). -- GitLab From a51296a03ceb68d338d683f8506e2295b404b2ad Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Wed, 4 Nov 2020 12:47:22 +0100 Subject: [PATCH 02/66] SOL003_2: VnfcSnapshotinfo data type updated --- .../definitions/SOL003VNFLifecycleManagement_def.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 31dd81a1..ab3a3dda 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -1327,6 +1327,8 @@ definitions: description: > Identifier of the information held by the VNFM about a specific VNFC snapshot. This identifier is allocated by the VNFM and is unique within the scope of a VNF snapshot. + The attribute also identifies the compute snapshot image associated to this VNFC snapshot within the context of + a referred VNF snapshot. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" vnfcInstanceId: description: > @@ -1368,6 +1370,8 @@ definitions: description: > Reference to the "VirtualStorageResourceInfo" structure in the "VnfInstance" structure that represents the virtual storage resource. + The attribute also identifies the storage snapshot image associated to this VNFC snapshot + within the context of a referred VNF snapshot. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" storageSnapshotResource: description: > -- GitLab From d21aa1fc039edd230d5d17eee920b36d5b0b69f0 Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Wed, 4 Nov 2020 12:50:28 +0100 Subject: [PATCH 03/66] SOL003_5: VimSnapshotResource data type updated --- .../definitions/SOL003VNFLifecycleOperationGranting_def.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml index 6eeab6a6..1ac5b06d 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml @@ -898,7 +898,8 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfSnapshotId: description: > - Identifier of the VNF snapshot related to the snapshot resource. + Identifier of the VNF snapshot (referring to the "id" attribute in the "VnfSnapshot" data structure) + related to this VIM snapshot resource. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfcSnapshotId: description: > -- GitLab From a670cfbe2ca3a4e2f93673fc5f2122eaaa3b04af Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Wed, 4 Nov 2020 14:08:15 +0100 Subject: [PATCH 04/66] SOL003_6: VnfSnapshotPkgInfo data type updated --- .../definitions/SOL003VNFSnapshotPackageManagement_def.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml b/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml index 15ef041f..63541f66 100644 --- a/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml +++ b/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml @@ -111,6 +111,7 @@ definitions: - UPLOADING: the VNF snapshot package is being uploaded. - EXTRACTING: the VNF snapshot package’s content is being extracted. - AVAILABLE: the VNF snapshot package is available (i.e., build or upload is completed). + - PROCESSING: the VNF snapshot is being processed. - ERROR: failure during the VNF snapshot package building, uploading or processing. - ERROR_EXTRACTING: failure during the VNF snapshot package extraction task. type: string @@ -120,6 +121,7 @@ definitions: - UPLOADING - EXTRACTING - AVAILABLE + - PROCESSING - ERROR - ERROR_EXTRACTING isCancelPending: -- GitLab From 39402f757952073f53b3c51503abddfc9e933c39 Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Wed, 4 Nov 2020 14:16:40 +0100 Subject: [PATCH 05/66] SOL003_7: VnfcSnapshotImageInfo data type updated --- .../SOL003VNFSnapshotPackageManagement_def.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml b/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml index 63541f66..7677c78f 100644 --- a/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml +++ b/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml @@ -206,6 +206,13 @@ definitions: id: description: > Identifier of the VNFC snapshot image. + When building the VNF snapshot package, the NFVO shall set the value of this attribute as follows: + - for an image artifact corresponding to a compute snapshot resource, the value is copied from the + "id" attribute of the “VnfcSnapshotInfo”, + - for an image artifact corresponding to a storage snapshot resource, the value is copied from the + "storageResourceId" attribute in the "VnfcSnapshotInfo" of the corresponding storage snapshot resource. + When onboarding an existing VNF snapshot package, the NFVO shall set the value of this attribute as provided + in the manifest file in the VNF snapshot package (refer to ETSI GS NFV-SOL 010 [i.14]). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" name: description: > -- GitLab From 53a6ff0cc6298c4249c7f0b8e28ca19bfed52bbe Mon Sep 17 00:00:00 2001 From: piscione Date: Tue, 6 Apr 2021 20:39:39 +0200 Subject: [PATCH 06/66] SO003_8: Added new attribute to VnfExtCpConfig datamodel --- src/definitions/SOL002SOL003_def.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index d4249c5e..75cabc63 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -386,6 +386,16 @@ definitions: consumer shall ensure that the cpProtocolData can be used with the pre-created link port referenced by "linkPortId". $ref: "#/definitions/Identifier" + + createExtLinkPort: + description: Indicates to the VNFM the need to create a dedicated link port for the external CP. + If set to True, the VNFM shall create a link port. + If set to False, the VNFM shall not create a link port. + This attribute is only applicable for external CP instances without a floating IP address that expose a VIP CP + instance for which a dedicated IP address is allocated. It shall be present in that case and shall be absent otherwise. + + type: boolean + cpProtocolData: description: > Parameters for configuring the network protocols on the link port -- GitLab From 9c5225062ee13625250b9f7d01088533dc8834a1 Mon Sep 17 00:00:00 2001 From: piscione Date: Tue, 6 Apr 2021 21:19:45 +0200 Subject: [PATCH 07/66] SO003_9: Added new attribute to IPverEthernetAddressData datamodel --- src/definitions/SOL002SOL003_def.yaml | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index 75cabc63..db3614c1 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -470,6 +470,19 @@ definitions: the VIM. At least one of "macAddress" or "ipAddresses" shall be present. $ref: "#/definitions/MacAddress" + segmentationType: + description: "Specifies the encapsulation type for the traffics coming in and out of the trunk subport. + Permitted values: + - VLAN: the subport uses VLAN as encapsulation type. + - INHERIT: the subport gets its segmentation type from the network it’s connected to. + This attribute may be present for CP instances that represent subports in a trunk and shall be + absent otherwise. If this attribute is not present for a subport CP instance, default value VLAN shall be used." + + type: string + enum: + - VLAN + - INHERIT + segmentationId: description: > Identification of the network segment to which the Cp instance connects to. If the Cp instance represents a -- GitLab From 803f8272617fbf435df41c47fb7b4320d6524698 Mon Sep 17 00:00:00 2001 From: piscione Date: Wed, 7 Apr 2021 09:00:45 +0200 Subject: [PATCH 08/66] SO003_10: Updated note 3 into table --- src/definitions/SOL002SOL003_def.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index db3614c1..5a134abb 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -485,7 +485,7 @@ definitions: segmentationId: description: > - Identification of the network segment to which the Cp instance connects to. If the Cp instance represents a + Identification of the network segment to which the CP instance connects to. If the CP instance represents a subport in a trunk, segmentationId shall be present. Otherwise it shall not be present. Depending on the NFVI networking infrastructure, the segmentationId may indicate the actual network segment value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the transport header of the packets or it may be an -- GitLab From eaef69ceedcc255a0dd09997be44281e4c7e9dbd Mon Sep 17 00:00:00 2001 From: piscione Date: Wed, 7 Apr 2021 09:08:41 +0200 Subject: [PATCH 09/66] SO003_11: Update field description --- src/definitions/SOL002SOL003_def.yaml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index 5a134abb..e79bc2e8 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -600,7 +600,17 @@ definitions: description: > Externally provided link ports to be used to connect external connection points to this external VL. If this attribute is not - present, the VNFM shall create the link ports on the external VL. + present, the VNFM shall create the link ports on the external VL + unless the extCp exposes a VIP CP and a link port is not needed + for it based on the conditions defined below. + A link port is not needed for an external CP instance that exposes a VIP CP in the following cases: + 1 For a VIP CP directly exposed as extCP: + 1.1 No dedicated IP address is allocated as VIP address, as indicated in the VNFD. + 1.2 A dedicated IP address is allocated as VIP address, but the NFVO indicates that no + port is needed (createExtLinkPort in VnfExtCpConfig set to false). + 2 For a VIP CP exposed as extCP via a floating IP address: + 2.1 No dedicated IP address is allocated as VIP address, as indicated in the VNFD, and + the VNFC CP associated to the VIP CP is also exposed via a floating IP address. type: array items: $ref: "#/definitions/ExtLinkPortData" -- GitLab From bb18b8f137b91785edd313b6d55979429ea42e7c Mon Sep 17 00:00:00 2001 From: piscione Date: Wed, 7 Apr 2021 09:14:43 +0200 Subject: [PATCH 10/66] SO003_12: added new attribute to ExtLinkPortData datamodel --- src/definitions/SOL002SOL003_def.yaml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index e79bc2e8..baae07fe 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -742,6 +742,15 @@ definitions: Reference to the virtualised resource realizing this link port. $ref: "#/definitions/ResourceHandle" + trunkResourceId: + description: > + Identifier of the trunk resource in the VIM. + Shall be present if the present link port corresponds to the parent + port that the trunk resource is associated with. + The value of \"trunkResourceId\" is scoped by the value of + \"vimConnectionId\" in the \"resourceHandle\" attribute. + $ref: "#/definitions/IdentifierInVim" + GrantedLcmOperationType: description: > The enumeration GrantedLcmOperationType defines the permitted values -- GitLab From a60e387bc4753972f6c67eb08c739a7dfff7930f Mon Sep 17 00:00:00 2001 From: piscione Date: Wed, 7 Apr 2021 09:23:55 +0200 Subject: [PATCH 11/66] SOL003_14: new enumaration data model called LcmCoordResultType --- src/definitions/SOL002SOL003_def.yaml | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index baae07fe..158f9b8d 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -951,4 +951,21 @@ definitions: description: > The token endpoint from which the access token can be obtained. Shall be present if it has not been provisioned out of band. - $ref: "#/definitions/Uri" \ No newline at end of file + $ref: "#/definitions/Uri" + LcmCoordResultType: + description: > + The enumeration LcmCoordResultType defines the permitted values + to represent the result of executing an LCM coordination action. + The coordination result also implies the action to be performed by + the VNFM as the follow-up to this coordination. + Value | Description + ------|------------ + CONTINUE | The related LCM operation shall be continued, staying in the state "PROCESSING". + ABORT | The related LCM operation shall be aborted by transitioning into the state "FAILED_TEMP". + CANCELLED | The coordination action has been cancelled upon request of the API consumer, i.e. the VNFM. + The related LCM operation shall be aborted by transitioning into the state "FAILED_TEMP". + type: string + enum: + - CONTINUE + - ABORT + - CANCELLED -- GitLab From fcd0b5b675c9cd938d4b8c79e7ea7f320c90cad7 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 8 Apr 2021 19:00:30 +0200 Subject: [PATCH 12/66] SOL003_19: Added new attributes to VnfcResourceInfo datamodel and update description of an attribute --- .../SOL003VNFLifecycleManagement_def.yaml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index ab3a3dda..526c1982 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -1163,13 +1163,24 @@ definitions: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/CpProtocolInfo" vnfLinkPortId: description: > - Identifier of the "VnfLinkPortInfo" structure in the "VnfVirtualLinkResourceInfo" structure. Shall be present if - the CP is associated to a link port on an internal VL of the VNF instance and shall be absent otherwise. + Identifier of the "VnfLinkPortInfo" structure in the "VnfVirtualLinkResourceInfo" or "ExtManagedVirtualLinkInfo" structure. + Shall be present if the CP is associated to a link port on an internal VL (including externally-managed internal VL) + of the VNF instance and shall be absent otherwise. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" metadata: description: > Metadata about this CP. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + parentCpId: + description: > + Identifier of another VNFC CP instance that corresponds to the parent port of a trunk that the present VNFC CP + instance participates in. Shall be provided if the present CP instance participates in a trunk as subport, and + the referred VNFC CP instances are also present in the vnfcCpInfo attribute. + + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + metadata: description: > Metadata about this resource. -- GitLab From 4ada84e23c1b31d47f6e2834b5e9b3e22fe6e2e3 Mon Sep 17 00:00:00 2001 From: piscione Date: Thu, 8 Apr 2021 19:34:23 +0200 Subject: [PATCH 13/66] SOL003_20: added new attributes to VnfLinkPortInfo datamodel and update description of an attribute --- ...OL002SOL003VNFLifecycleManagement_def.yaml | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 637afa64..4f47ec43 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -331,6 +331,10 @@ definitions: (i.e. VNFC CP) instance. The value refers to an "extCpInfo" item in the VnfInstance or a "vnfcCpInfo" item of a "vnfcResourceInfo" item in the VnfInstance. + Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId + with cpInstanceType set to "VNFC_CP" and vipCpInstanceId (i.e. one or both of them) shall + be present for a VnfLinkPortInfo. In case both cpInstanceId with cpInstanceType set to "VNFC_CP" + and vipCpInstanceId are present, the two different CP instances share the linkport. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" cpInstanceType: description: > @@ -339,11 +343,35 @@ definitions: Permitted values: VNFC_CP: The link port is connected to a VNFC CP EXT_CP: The link port is associated to an external CP. + Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId + with cpInstanceType set to "VNFC_CP" and vipCpInstanceId (i.e. one or both of them) shall + be present for a VnfLinkPortInfo. In case both cpInstanceId with cpInstanceType set to "VNFC_CP" + and vipCpInstanceId are present, the two different CP instances share the linkport. type: string enum: - VNFC_CP - EXT_CP + vipCpInstanceId: + description: > + VIP CP instance of the VNF connected to this link port. May be present. + Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId with cpInstanceType + set to "VNFC_CP" and vipCpInstanceId (i.e. one or both of them) shall be present for a VnfLinkPortInfo. + In case both cpInstanceId with cpInstanceType set to "VNFC_CP" and vipCpInstanceId are present, the two + different CP instances share the linkport. + Annex A.4 of ETSI GS NFV-IFA 007 provides examples for configurations where both vipCpInstanceId and + vnfcCpInstanceId are present (UC#5 and UC#5-b), only vnfcCpInstanceId is present (UC#2), or only + vipCpInstanceId is present (UC6 and UC#6-b). + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + trunkResourceId: + description: > + Identifier of the trunk resource in the VIM. + Shall be present if the present link port corresponds to the parent port that the trunk resource is associated with. + The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVim" + + ExtLinkPortInfo: description: > This type represents information about a link port of an external VL, -- GitLab From 4631baab435798c91ae20849a265523f97e152a4 Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 9 Apr 2021 08:49:11 +0200 Subject: [PATCH 14/66] SOL003_21: Added new attributes to ExtLinkPortInfo datamodel --- ...OL002SOL003VNFLifecycleManagement_def.yaml | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 4f47ec43..265c0327 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -399,6 +399,29 @@ definitions: "extCpInfo" item in the VnfInstance. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + secondaryCpInstanceId: + description: > + Additional external CP of the VNF connected to this link port. + If present, this attribute shall refer to a "secondary" ExtCpInfo + item in the VNF instance that exposes a virtual IP CP instance which + shares this linkport with the external CP instance referenced by the + "cpInstanceId" attribute. + The use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 + provide examples for such a configuration. + + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + trunkResourceId: + description: > + Identifier of the trunk resource in the VIM. + Shall be present if the present link port corresponds + to the parent port that the trunk resource is associated with. + The value of "trunkResourceId" is scoped by the value of "vimConnectionId" + in the "resourceHandle" attribute + + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVim" + + CpProtocolInfo: description: > This type describes the protocol layer(s) that a CP uses together with -- GitLab From 223dd610321847576c4c1801953ad084a312aa81 Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 9 Apr 2021 08:52:47 +0200 Subject: [PATCH 15/66] SOL003_22: update descriptions of attributesof AffectedVirtualLink datamodel --- .../definitions/SOL003VNFLifecycleManagement_def.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 526c1982..93f3c85c 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -2059,7 +2059,7 @@ definitions: id: description: > Identifier of the virtual link instance, identifying the applicable - "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type. + "vnfVirtualLinkResourceInfo" or "extManagedVirtualLinkInfo" entry in the "VnfInstance" data type. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" vnfVirtualLinkDescId: description: > @@ -2143,7 +2143,8 @@ definitions: description: > Metadata about this resource. The content of this attribute shall be a copy of the content of the - "metadata" attribute of the VnfVirtualLinkResourceInfo structure. + "metadata" attribute of the applicable "vnfVirtualLinkResourceInfo” + structure if such structure is referenced by the "id" attribute and it has metadata. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" AffectedVirtualStorage: -- GitLab From f71d74c8d26c723c1de93314c8e99ce9dfdc6ebf Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 9 Apr 2021 09:17:22 +0200 Subject: [PATCH 16/66] SOL003_23: new datamodel: AffectedVipCp --- ...OL002SOL003VNFLifecycleManagement_def.yaml | 43 ++++++++++++++++++- 1 file changed, 42 insertions(+), 1 deletion(-) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 265c0327..b2a7d3c9 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -1006,4 +1006,45 @@ definitions: type: string enum: - FULL - - SHORT \ No newline at end of file + - SHORT + + + AffectedVipCp: + description: > + This type provides information about added, deleted and modified virtual IP CP instances. + type: object + required: + - cpInstanceId + - cpdId + - changeType + properties: + cpInstanceId: + description: > + Identifier of the virtual IP CP instance and the related "VipCpInfo" structure in "VnfInstance". + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + cpdId: + description: > + Identifier of the VipCpd in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + + vnfdId: + description: > + Reference to the VNFD. + Shall be present in case of a "change current VNF Package" to + identify whether the affected virtual CP instance is associated + to a VipCpd which is referred from the source or destination VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + + changeType: + description: > + Signals the type of change. + Permitted values: + - ADDED + - REMOVED + - MODIFIED + type: string + enum: + - ADDED + - REMOVED + - MODIFIED \ No newline at end of file -- GitLab From 80ef86e4916e0affa01b97826ccad3ebb1d7877e Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 9 Apr 2021 09:29:33 +0200 Subject: [PATCH 17/66] SOL003_24: added new attributes to VnfExtCpInfo datamodel and update some descriptions --- ...OL002SOL003VNFLifecycleManagement_def.yaml | 30 ++++++++++++++----- 1 file changed, 23 insertions(+), 7 deletions(-) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index b2a7d3c9..7703a511 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -690,7 +690,8 @@ definitions: extLinkPortId: description: > Identifier of the "ExtLinkPortInfo" structure inside the "ExtVirtualLinkInfo" structure. - Shall be present if the CP is associated to a link port. + Shall be present if the CP is associated to a link port. An external CP instance is not associated + to a link port in the cases indicated for the “extLinkPorts” attribute in clause 4.4.1.11. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" metadata: description: > @@ -699,15 +700,30 @@ definitions: associatedVnfcCpId: description: > Identifier of the "vnfcCpInfo" structure in "VnfcResourceInfo" structure that represents - the VNFC CP which is exposed by this external CP instance. - Shall be present in case this CP instance maps to a VNFC CP. See note. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + the VNFC CP which is exposed by this external CP instance, either directly or via a floating IP address. + Shall be present in case this CP instance maps to a VNFC CP. + The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" are mutually + exclusive. One and onlyExactly one shall be present. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + associatedVipCpId: + description: > + Identifier of the VIP CP instance that is exposed as this VnfExtCp instance, either directly or via + a floating IP address, and the related "VipCpInfo" structure in "VnfInstance". Shall be present if + the cpdId of this VnfExtCp has a vipCpd attribute. + The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" + are mutually exclusive. One and onlyExactly one shall be present. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + associatedVnfVirtualLinkId: description: > Identifier of the "VnfVirtualLinkResourceInfo" structure that represents the internal VL - which is exposed by this external CP instance. - Shall be present in case this CP instance maps to an internal VL. See note. - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" + or of the "ExtManagedVirtualLinkInfo" structure that represents the externally-managed internal VL + which is exposed by this external CP instance. Shall be present in case this CP instance maps to an + internal VL (including externally-managed internal VL). + The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" are mutually + exclusive. One and onlyExactly one shall be present. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" VnfOperationalStateType: description: > -- GitLab From dceeb67245df9057ad93d7522f5b380d76555f50 Mon Sep 17 00:00:00 2001 From: piscione Date: Fri, 9 Apr 2021 12:58:53 +0200 Subject: [PATCH 18/66] SOL003_25: new datamodel: VipCpInfo --- ...OL002SOL003VNFLifecycleManagement_def.yaml | 59 ++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 7703a511..c43ebd4d 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -1063,4 +1063,61 @@ definitions: enum: - ADDED - REMOVED - - MODIFIED \ No newline at end of file + - MODIFIED + + + + + + VipCpInfo: + description: > + This type provides information related to virtual IP (VIP) CP. + type: object + required: + - cpInstanceId + - cpdId + properties: + cpInstanceId: + description: > + Identifier of this VIP CP instance and of this VipCpInfo information element. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + cpdId: + description: > + Identifier of the VIP Connection Point Descriptor, VipCpd, in the VNFD. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + + vnfExtCpId: + description: > + When the VIP CP is exposed as external CP of the VNF, the identifier of this external VNF CP instance. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + cpProtocolInfo: + description: > + Protocol information for this CP. There shall be one cpProtocolInfo for layer 3. + There may be one cpProtocolInfo for layer 2. + type: array + item: + $ref: "#/definitions/CpProtocolInfo" + + associatedVnfcCpIds: + description: > + Identifiers of the VnfcCps that share the virtual IP addresses allocated to the VIP CP instance. + It is possible that there is no associated VnfcCp because the VIP CP is available but not associated yet. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + vnfLinkPortId: + description: > + Identifier of the "VnfLinkPortInfo" structure in the "VnfVirtualLinkResourceInfo" or + "ExtManagedVirtualLinkInfo" structure. Shall be present if the CP is associated to a + link port on an internal VL (including externally-managed internal VL). + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + + metadata: + description: > + Metadata about this VIP CP. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" -- GitLab From eb31cecc03addc2e43b3420b79824cb31137627c Mon Sep 17 00:00:00 2001 From: piscione Date: Mon, 12 Apr 2021 12:08:49 +0200 Subject: [PATCH 19/66] SOL003_16: added new attribute to VnfInstance datamodel and updated note at the bottom --- .../SOL003VNFLifecycleManagement_def.yaml | 15 ++++++++++++++- .../SOL002SOL003VNFLifecycleManagement_def.yaml | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 93f3c85c..9a1d4e5c 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -808,6 +808,16 @@ definitions: minItems: 1 items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfExtCpInfo" + vipCpInfo: + description: > + VIP CPs that are part of the VNF instance. Shall be present when that particular VIP CP of the VNFC + instance is associated to an external CP of the VNF instance. + May be present otherwise. + type: array + minItems: 1 + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VipCpInfo" + extVirtualLinkInfo: description: > Information about the external VLs the VNF instance is connected to. @@ -823,6 +833,8 @@ definitions: ExtManagedVirtualLinkInfo corresponding to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed multi-site VL instance (refer to clause 5.5.3.3). + Even though externally-managed internal VLs are also used for VNF-internal connectivity, + they shall not be listed in the "vnfVirtualLinkResourceInfo" attribute as this would be redundant. type: array items: $ref: "#/definitions/ExtManagedVirtualLinkInfo" @@ -850,7 +862,8 @@ definitions: virtualLinkResourceInfo: description: > Information about the virtualised network resources used by the VLs - of the VNF instance. + of the VNF instance. Even though externally-managed internal VLs are also used for VNF-internal + connectivity, they shall not be listed in the "vnfVirtualLinkResourceInfo" attribute as this would be redundant. type: array items: $ref: "#/definitions/VnfVirtualLinkResourceInfo" diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index c43ebd4d..ce93baa5 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -1097,7 +1097,7 @@ definitions: Protocol information for this CP. There shall be one cpProtocolInfo for layer 3. There may be one cpProtocolInfo for layer 2. type: array - item: + items: $ref: "#/definitions/CpProtocolInfo" associatedVnfcCpIds: -- GitLab From 69cc66b8594b6be054f6c796db853dcc25511b6b Mon Sep 17 00:00:00 2001 From: piscione Date: Wed, 14 Apr 2021 17:29:28 +0200 Subject: [PATCH 20/66] SOL003_17: added new attributes to VnfLcmOpOcc datamodel and updated note at the bottom --- .../SOL003VNFLifecycleManagement_def.yaml | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 9a1d4e5c..d3ae90b6 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -1720,6 +1720,15 @@ definitions: latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter. $ref: "#/definitions/VnfInfoModifications" + + affectedVipCps: + description: > + Information about virtual IP CP instances that were affected during + the execution of the lifecycle management operation. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVipCp" + changedExtConnectivity: description: > Information about changed external connectivity, if applicable. @@ -1742,6 +1751,71 @@ definitions: Identifier of the "individual VNF snapshot" resource. Shall be present if applicable to the type of LCM operation, i.e., if the value of the "operation" attribute is either "CREATE_SNAPSHOT" or "REVERT_TO_SNAPSHOT". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + + lcmCoordinations: + description: > + Information about LCM coordination actions (see clause 10 in ETSI GS NFV-SOL002) related to this LCM operation occurrence. + type: array + items: + type: object + required: + - id + - coordinationActionName + - startTime + - endpointType + properties: + id: + description: > + Identifier of this coordination action. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + coordinationActionName: + description: > + Indicator of the actual coordination action. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + coordinationResult: + description: > + The result of executing the coordination action which also implies the action to be performed by the VNFM as the result of this coordination. + Shall be present if the coordination has been finished. Shall be absent if the coordination is ongoing or has timed out + A coordination action has timed out if the VNFM has not been able to read the "Individual coordination action" resource within a timeout + interval after requesting the coordination to be started or to be cancelled. The length of the timeout interval is defined by means outside + the scope of the present document. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmCoordResultType" + + startTime: + description: > + The time when the coordination action has been started. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + + + endTime: + description: > + The end time of the coordination action. Shall be present for a coordination action that has finished or + timed out (see note 4) and shall be absent if the coordination is ongoing. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + + endpointType: + description: > + The endpoint type used by this coordination action. + Valid values: + • MGMT: coordination with other operation supporting management systems (e.g. EM) + • VNF: coordination with the VNF instance + + type: string + enum: + - MGMT + - VNF + + warnings: + description: > + Warning messages that were generated while the operation was executing. + + If the operation has included LCM coordination actions and these have resulted + in warnings, such warnings should be added to this attribute. + type: array + items: + type: string + + _links: description: > Links to resources related to this resource. -- GitLab From 7dca703a0aa7a7177e9484492eb3ecafa543db2e Mon Sep 17 00:00:00 2001 From: piscione Date: Wed, 14 Apr 2021 17:40:47 +0200 Subject: [PATCH 21/66] SOL003_18: added new attributes to VnfLcmOperationOccurrenceNotification datamodel --- .../SOL003VNFLifecycleManagement_def.yaml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index d3ae90b6..1afb0e79 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -2098,6 +2098,20 @@ definitions: any changes to VNF instance information, including VNF configurable properties. Shall be absent otherwise. $ref: "#/definitions/VnfInfoModifications" + + affectedVipCps: + description: > + Information about virtual IP CP instances that were affected during the execution of the lifecycle management + operation, if this notification represents the result of a lifecycle management operation occurrence. + + Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL" + and the operation has made any changes to the VIP CP instances of the VNF instance. Shall be absent otherwise. + Only information about VIP CP instances that have been added, deleted or modified shall be provided. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVipCp" + + changedExtConnectivity: description: > Information about changed external connectivity, if this notification -- GitLab From 9e71e388a0fea523ec276c83c818a18e21ff19f7 Mon Sep 17 00:00:00 2001 From: piscione Date: Wed, 14 Apr 2021 17:59:02 +0200 Subject: [PATCH 22/66] SOL003_30: update notes of Grant datamodel --- ...L003VNFLifecycleOperationGranting_def.yaml | 34 +++++++++++-------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml index 1ac5b06d..df35c2f0 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml @@ -317,13 +317,16 @@ definitions: extVirtualLinks: description: > Information about external VLs to connect the VNF to. - External and/or externally-managed internal VLs can be passed in VNF - lifecycle management operation requests such as InstantiateVnf, ChangeVnfFlavor, - ChangeExtVnfConnectivity or ChangeCurrentVnfPackage and/or in the grant response. - The NFVO may choose to override in the grant response external and/or - externally-managed VL instances that have been passed previously in the - associated VNF lifecycle management request, if the lifecycle management request - has originated from the NFVO itself. + For any VNF lifecycle management operation request that allows to pass + "extVirtualLinks" and/or "extManagedVirtualLinks" parameters, such as + InstantiateVnf, ChangeVnfFlavour, ChangeExtVnfConnectivity or + ChangeCurrentVnfPackage, the NFVO may provide the "extVirtualLinks" + and/or "extManagedVirtualLinks" attributes in the Grant to override + the values passed in these parameters previously in the associated + VNF lifecycle management request, if the lifecycle management + request has originated from the NFVO itself. The NFVO shall + not provide the "extVirtualLinks" and/or "extManagedVirtualLinks" + attributes in the Grant otherwise. In case of granting an InstantiateVnf request that has originated from the NFVO and that did not contain the "extVirtualLinks" attribute, this attribute shall be set by the NFVO. Further in case of granting an InstantiateVnf request that has @@ -361,13 +364,16 @@ definitions: network topologies. The present document assumes that externally-managed internal VLs are managed by the NFVO and created towards the VIM. - External and/or externally-managed internal VLs can be passed in VNF - lifecycle management operation requests such as InstantiateVnf, ChangeVnfFlavor, - ChangeExtVnfConnectivity or ChangeCurrentVnfPackage and/or in the grant response. - The NFVO may choose to override in the grant response external and/or - externally-managed VL instances that have been passed previously in the - associated VNF lifecycle management request, if the lifecycle management request - has originated from the NFVO itself. + For any VNF lifecycle management operation request that allows to pass + "extVirtualLinks" and/or "extManagedVirtualLinks" parameters, such as + InstantiateVnf, ChangeVnfFlavour, ChangeExtVnfConnectivity or + ChangeCurrentVnfPackage, the NFVO may provide the "extVirtualLinks" + and/or "extManagedVirtualLinks" attributes in the Grant to override + the values passed in these parameters previously in the associated + VNF lifecycle management request, if the lifecycle management + request has originated from the NFVO itself. The NFVO shall + not provide the "extVirtualLinks" and/or "extManagedVirtualLinks" + attributes in the Grant otherwise. In case of granting an InstantiateVnf request that has originated from the NFVO and that did not contain the "extVirtualLinks" attribute, this attribute shall be set by the NFVO. Further in case of granting an InstantiateVnf request that has -- GitLab From 0c5bc815e35e8ce8551fa32983711f78d13cf84a Mon Sep 17 00:00:00 2001 From: piscione Date: Wed, 14 Apr 2021 18:03:09 +0200 Subject: [PATCH 23/66] SOL003_31: added new attributes to ResourceDefinition datamodel and added note --- .../SOL003VNFLifecycleOperationGranting_def.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml index df35c2f0..934e616e 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml @@ -458,6 +458,18 @@ definitions: - if type="LINKPORT" : VnfExtCpd - if type="STORAGE" : VirtualStorageDesc $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + secondaryResourceTemplateId: + description: > + Reference to a secondary resource template (VnfExtCpd) in the VNFD. + Shall be present if type="LINKPORT" and the linkport is shared by two external + CP instances, one exposing a VNFC CP instance (based on a VnfExtCpd referenced + by "resourceTemplateId") and another one exposing a VIP CP instance (based on a + VnfExtCpd referenced by this attribute). Shall be absent otherwise. + + The use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 [1] provide examples for such a configuration. + + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + resource: description: > Resource information for an existing resource. Shall be present for -- GitLab From de19b8213b807b9731a7ade2fefe286bc9ea6868 Mon Sep 17 00:00:00 2001 From: piscione Date: Wed, 14 Apr 2021 18:08:30 +0200 Subject: [PATCH 24/66] SOL003_32: update descriptions of attributesof AffectedVirtualLink datamodel --- .../definitions/SOL003VNFPackageManagement_def.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml b/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml index 0b82df5c..557fe7cd 100644 --- a/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml +++ b/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml @@ -8,7 +8,6 @@ definitions: type: object required: - id - - packageSecurityOption - operationalState - usageState - vnfmInfo @@ -71,6 +70,7 @@ definitions: packageSecurityOption: description: > Signals the security option used by the package as defined in clause 5.1 of ETSI GS NFV-SOL 004. + It shall be present after the VNF package content has been on-boarded and absent otherwise. Valid values: OPTION_1, OPTION_2 type: string enum: -- GitLab From 51ea3fbb60ec48e44295de20c6990d1eb67e2461 Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Tue, 27 Apr 2021 23:40:02 +0200 Subject: [PATCH 25/66] SOL002_3 & SOL002_4: added attribute and note in vnfInstance --- .../SOL002VNFLifecycleManagement_def.yaml | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 048d434e..43dd9991 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -144,6 +144,15 @@ definitions: minItems: 1 items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfExtCpInfo" + vipCpInfo: + description: > + VIP CPs that are part of the VNF instance. Shall be present when that particular VIP + CP of the VNFC instance is associated to an external CP of the VNF instance. + + May be present otherwise. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VipCpInfo" extVirtualLinkInfo: description: > Information about the external VLs the VNF instance is connected to. @@ -152,11 +161,13 @@ definitions: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" extManagedVirtualLinkInfo: description: > - External virtual links the VNF instance is connected to. + Information about the externally managed internal VLs of the VNF instance. See note 5 and note 6. It is possible to have several ExtManagedVirtualLinkInfo for the same VNF internal VL in case of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkInfo corresponding to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed multi-site VL instance (refer to clause 5.5.3.5). + Even though externally-managed internal VLs are also used for VNF-internal connectivity, + they shall not be listed in the "vnfVirtualLinkResourceInfo" attribute as this would be redundant. type: array items: $ref: "#/definitions/ExtManagedVirtualLinkInfo" @@ -184,7 +195,9 @@ definitions: vnfVirtualLinkResourceInfo: description: > Information about the virtualised network resources used by the VLs - of the VNF instance. + of the VNF instance. See note 6. + Even though externally-managed internal VLs are also used for VNF-internal connectivity, + they shall not be listed in the "vnfVirtualLinkResourceInfo" attribute as this would be redundant. type: array items: $ref: "#/definitions/VnfVirtualLinkResourceInfo" -- GitLab From 670a29e2df28121298a41aef48500385acacb344 Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Wed, 28 Apr 2021 01:07:50 +0200 Subject: [PATCH 26/66] SOL002_5: added attributes and note in VnfLcmOpOcc --- .../SOL002VNFLifecycleManagement_def.yaml | 75 +++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 43dd9991..4b9ca350 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -1531,6 +1531,13 @@ definitions: latest "result" notification if it has not received it due to an error or a wrongly configured subscription filter. $ref: "#/definitions/VnfInfoModifications" + affectedVipCps: + description: > + Information about virtual IP CP instances that were affected during + the execution of the lifecycle management operation. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVipCp" changedExtConnectivity: description: > Information about changed external connectivity, if applicable. @@ -1553,6 +1560,74 @@ definitions: Identifier of the "individual VNF snapshot" resource. Shall be present if applicable to the type of LCM operation, i.e., if the value of the "operation" attribute is either "CREATE_SNAPSHOT" or "REVERT_TO_SNAPSHOT". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + lcmCoordinations: + description: > + Information about LCM coordination actions (see clause 10) related to this LCM operation occurrence. + type: object + required: + - id + - coordinationActionName + - startTime + - endpointType + properties: + id: + description: > + Identifier of this coordination action. For a terminated coordination action, + this attribute refers to the "id" attribute in the "LcmCoord" data structure + (see clause 10.5.2.3). For a timed-out or ongoing coordination action, + this attribute refers to the {coordinationId} URI variable in the "Location" + header of the "202 Accepted" HTTP response to the POST request that has initiated + the coordination action (see clause 10.4.2.3.1). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + coordinationActionName: + description: > + Indicator of the actual coordination action. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + coordinationResult: + description: > + The result of executing the coordination action which also implies the action to + be performed by the VNFM as the result of this coordination. + + Shall be present if the coordination has been finished. Shall be absent if the + coordination is ongoing or has timed out (see note 4). + NOTE: A coordination action has timed out if the VNFM has not been able to + read the "Individual coordination action" resource within a timeout interval + after requesting the coordination to be started or to be cancelled. The length + of the timeout interval is defined by means outside the scope of the present document. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmCoordResultType" + startTime: + description: > + The time when the coordination action has been started. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + endTime: + description: > + The end time of the coordination action. Shall be present for a coordination + action that has finished or timed out (see note 4) and shall be absent if + the coordination is ongoing. + NOTE: A coordination action has timed out if the VNFM has not been able to + read the "Individual coordination action" resource within a timeout interval + after requesting the coordination to be started or to be cancelled. The length + of the timeout interval is defined by means outside the scope of the present document. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + endpointType: + description: > + The endpoint type used by this coordination action. + Valid values: + - MGMT: coordination with other operation supporting management systems (e.g. EM) + - VNF: coordination with the VNF instance + type: string + enum: + - MGMT + - VNF + warnings: + description: > + Warning messages that were generated while the operation was executing. + + If the operation has included LCM coordination actions and these have resulted + in warnings, such warnings should be added to this attribute. + type: array + items: + type: string _links: description: > Links to resources related to this resource. -- GitLab From 9c0b2c6c9d96b0cba1376ab450f5b6e8ea18a184 Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Wed, 28 Apr 2021 01:16:22 +0200 Subject: [PATCH 27/66] SOL002_6: added attributes in VnfLcmOperationOccurrenceNotification --- ...SOL002VNFLifecycleManagementNotification_def.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/SOL002/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml b/src/SOL002/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml index 0d3f2600..8dcb453b 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml @@ -171,6 +171,18 @@ definitions: including VNF configurable properties. Shall be absent otherwise. $ref: "../../VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModifications" + affectedVipCps: + description: > + Information about virtual IP CP instances that were affected during the execution + of the lifecycle management operation, if this notification represents the result + of a lifecycle management operation occurrence. + Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" + attribute is set to "FULL" and the operation has made any changes to the VIP CP + instances of the VNF instance. Shall be absent otherwise. Only information about + VIP CP instances that have been added, deleted or modified shall be provided. + type: array + items: + $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVipCp" changedExtConnectivity: description: > Information about changed external connectivity, if this -- GitLab From e33ce6cd2d10637c85110238991718b09946a124 Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Wed, 28 Apr 2021 01:41:00 +0200 Subject: [PATCH 28/66] SOL002_9: minor fix in IpOverEthernetAddressData --- src/definitions/SOL002SOL003_def.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index 158f9b8d..f90ddc2e 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -471,13 +471,13 @@ definitions: At least one of "macAddress" or "ipAddresses" shall be present. $ref: "#/definitions/MacAddress" segmentationType: - description: "Specifies the encapsulation type for the traffics coming in and out of the trunk subport. + description: > + Specifies the encapsulation type for the traffics coming in and out of the trunk subport. Permitted values: - VLAN: the subport uses VLAN as encapsulation type. - INHERIT: the subport gets its segmentation type from the network it’s connected to. This attribute may be present for CP instances that represent subports in a trunk and shall be - absent otherwise. If this attribute is not present for a subport CP instance, default value VLAN shall be used." - + absent otherwise. If this attribute is not present for a subport CP instance, default value VLAN shall be used. type: string enum: - VLAN -- GitLab From 82cfcd2655fdca51aed70ca1f63ba395eda74601 Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Wed, 28 Apr 2021 02:02:54 +0200 Subject: [PATCH 29/66] SOL002_10: new attribute added in VnfcResourceInfo --- .../SOL002VNFLifecycleManagement_def.yaml | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 4b9ca350..aad827a5 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -982,7 +982,6 @@ definitions: - id - vduId - computeResource - - vnfcCpInfo properties: id: description: > @@ -1055,9 +1054,17 @@ definitions: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/CpProtocolInfo" vnfLinkPortId: description: > - Identifier of the "VnfLinkPortInfo" structure in the "VnfVirtualLinkResourceInfo" structure. Shall be present if - the CP is associated to a link port on an internal VL of the VNF instance and shall be absent otherwise. + Identifier of the "VnfLinkPortInfo" structure in the "VnfVirtualLinkResourceInfo" + or "ExtManagedVirtualLinkInfo" structure. Shall be present if + the CP is associated to a link port on an internal VL (including externally-managed internal VL) + of the VNF instance and shall be absent otherwise. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" + parentCpId: + description: > + Identifier of another VNFC CP instance that corresponds to the parent port + of a trunk that the present VNFC CP instance participates in. + Shall be provided if the present CP instance participates in a trunk as subport. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" metadata: description: > Metadata about this CP. -- GitLab From 0308903f58b05a018994961bf1f98694d748b8d2 Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Wed, 28 Apr 2021 02:14:52 +0200 Subject: [PATCH 30/66] SOL002_19: description added in AffectedVirtualLink --- .../definitions/SOL002VNFLifecycleManagement_def.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index aad827a5..08705c29 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -1258,7 +1258,7 @@ definitions: id: description: > Identifier of the virtual link instance, identifying the applicable - "vnfVirtualLinkResourceInfo" entry in the "VnfInstance" data type. + "vnfVirtualLinkResourceInfo" or "extManagedVirtualLinkInfo" entry in the "VnfInstance" data type. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" vnfVirtualLinkDescId: description: > @@ -1322,7 +1322,8 @@ definitions: description: > Metadata about this resource. The content of this attribute shall be a copy of the content of the - "metadata" attribute of the VnfVirtualLinkResourceInfo structure. + "metadata" attribute of the applicable "VnfVirtualLinkResourceInfo" structure + if such structure is referenced by the "id" attribute and it has metadata. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" AffectedVirtualStorage: -- GitLab From ccb92d6269a9a9b956eb5f8a38791087e1bf450f Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Wed, 28 Apr 2021 02:25:53 +0200 Subject: [PATCH 31/66] SOL002_15: fix in VnfExtCpInfo --- .../SOL002SOL003VNFLifecycleManagement_def.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index ce93baa5..320ae89b 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -659,6 +659,8 @@ definitions: oneOf: - required: - associatedVnfcCpId + - required: + - associatedVipCpId - required: - associatedVnfVirtualLinkId properties: @@ -703,18 +705,16 @@ definitions: the VNFC CP which is exposed by this external CP instance, either directly or via a floating IP address. Shall be present in case this CP instance maps to a VNFC CP. The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" are mutually - exclusive. One and onlyExactly one shall be present. + exclusive. Exactly one shall be present. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - associatedVipCpId: description: > Identifier of the VIP CP instance that is exposed as this VnfExtCp instance, either directly or via a floating IP address, and the related "VipCpInfo" structure in "VnfInstance". Shall be present if the cpdId of this VnfExtCp has a vipCpd attribute. The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" - are mutually exclusive. One and onlyExactly one shall be present. + are mutually exclusive. Exactly one shall be present. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - associatedVnfVirtualLinkId: description: > Identifier of the "VnfVirtualLinkResourceInfo" structure that represents the internal VL @@ -722,7 +722,7 @@ definitions: which is exposed by this external CP instance. Shall be present in case this CP instance maps to an internal VL (including externally-managed internal VL). The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" are mutually - exclusive. One and onlyExactly one shall be present. + exclusive. Exactly one shall be present. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" VnfOperationalStateType: -- GitLab From 6d3460688fb69f9dac2b124787f24327a6af42fe Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Wed, 28 Apr 2021 02:34:06 +0200 Subject: [PATCH 32/66] SOL002_16: Description added VnfcSnapshotInfo --- .../definitions/SOL002VNFLifecycleManagement_def.yaml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 08705c29..80e5d1d1 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -831,13 +831,15 @@ definitions: required: - id - vnfcInstanceId - - triggeredAt - - vnfcInfo + - creationStartedAt + - vnfcResourceInfoId properties: id: description: > Identifier of the information held by the VNFM about a specific VNFC snapshot. This identifier is allocated by the VNFM and is unique within the scope of a VNF snapshot. + The attribute also identifies the compute snapshot image associated + to this VNFC snapshot within the context of a referred VNF snapshot. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfcInstanceId: description: > @@ -876,7 +878,8 @@ definitions: storageResourceId: description: > Reference to the "VirtualStorageResourceInfo" structure in the "VnfInstance" structure that represents - the virtual storage resource. + the virtual storage resource. The attribute also identifies the storage snapshot image + associated to this VNFC snapshot within the context of a referred VNF snapshot $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" storageSnapshotResource: description: > -- GitLab From 65df5cb73e6a740e97c2649e39fbf94f1b38fc92 Mon Sep 17 00:00:00 2001 From: piscione Date: Wed, 28 Apr 2021 14:27:09 +0200 Subject: [PATCH 33/66] SOL003_15: updated description fields --- .../VNFLifecycleManagement.yaml | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 773a58bc..bf912584 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -893,7 +893,25 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/all_fields - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/fields - - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/exclude_fields + - in: query + name: exclude_default + description: > + Indicates to exclude the following complex attributes from the response. + See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. + The following attributes shall be excluded from the VnfLcmOpOcc structure in the response + body if this parameter is provided, or none of the parameters "all_fields," "fields", + "exclude_fields", "exclude_default" are provided: + - operationParams + - error + - resourceChanges + - changedInfo + - changedExtConnectivity. + - lcmCoordinations + - modificationsTriggeredByVnfPkgChange + - warnings + required: false + schema: + type: string - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/exclude_default - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version @@ -919,6 +937,7 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504" + ############################################################################### # Individual VNF LCM operation occurrence # ############################################################################### -- GitLab From 5be61c97fe6c542c651f097584ebfed93bab568c Mon Sep 17 00:00:00 2001 From: piscione Date: Wed, 28 Apr 2021 14:40:53 +0200 Subject: [PATCH 34/66] SOL003_33: updated version of referenced standard. --- src/SOL003/APIVersion/APIVersion.yaml | 2 +- src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml | 2 +- .../VNFFaultManagementNotification.yaml | 2 +- src/SOL003/VNFIndicator/VNFIndicator.yaml | 2 +- .../VNFIndicatorNotification/VNFIndicatorNotification.yaml | 2 +- src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml | 2 +- .../VNFLifecycleManagementNotification.yaml | 2 +- .../VNFLifecycleOperationGranting.yaml | 2 +- src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml | 2 +- .../VNFPackageManagementNotification.yaml | 2 +- .../VNFPerformanceManagement/VNFPerformanceManagement.yaml | 2 +- .../VNFPerformanceManagementNotification.yaml | 2 +- .../VNFSnapshotPackageManagement.yaml | 2 +- .../VirtualisedResourcesQuotaAvailableNotification.yaml | 2 +- 14 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/SOL003/APIVersion/APIVersion.yaml b/src/SOL003/APIVersion/APIVersion.yaml index ea0a9cc4..bdbfce35 100644 --- a/src/SOL003/APIVersion/APIVersion.yaml +++ b/src/SOL003/APIVersion/APIVersion.yaml @@ -18,7 +18,7 @@ info: version: "1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.1 + description: ETSI GS NFV-SOL 003 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf paths: diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index f05b5c10..aaeffed5 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -18,7 +18,7 @@ info: version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.1 + description: ETSI GS NFV-SOL 003 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: diff --git a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index 8e4c1d60..d723b308 100644 --- a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -18,7 +18,7 @@ info: version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.1 + description: ETSI GS NFV-SOL 003 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index e75d6e49..cef0b8a0 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -18,7 +18,7 @@ info: version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.1 + description: ETSI GS NFV-SOL 003 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: diff --git a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml index f9539740..eeed2be7 100644 --- a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -18,7 +18,7 @@ info: version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.1 + description: ETSI GS NFV-SOL 003 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index bf912584..dccf4965 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -18,7 +18,7 @@ info: version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.1 + description: ETSI GS NFV-SOL 003 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 491065a1..0466ce23 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -18,7 +18,7 @@ info: version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.1 + description: ETSI GS NFV-SOL 003 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index f40cf945..d30029b2 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml @@ -18,7 +18,7 @@ info: version: "1.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.1 + description: ETSI GS NFV-SOL 003 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index a2434399..6aae3598 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -18,7 +18,7 @@ info: version: "2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.1 + description: ETSI GS NFV-SOL 003 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index dc1be09b..acc0f460 100644 --- a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -18,7 +18,7 @@ info: version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V3.3.1 + description: ETSI GS NFV-SOL 002 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 5d65b793..56594fd0 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -18,7 +18,7 @@ info: version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 003 V2.7.1 + description: ETSI GS NFV-SOL 003 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: diff --git a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index 3d2f7303..a0f6c7ac 100644 --- a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -18,7 +18,7 @@ info: version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.1 + description: ETSI GS NFV-SOL 003 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: diff --git a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml index 76307edf..c6934ecd 100644 --- a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml +++ b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml @@ -18,7 +18,7 @@ info: version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.1 + description: ETSI GS NFV-SOL 003 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index 35b96b1e..ec0d3cb3 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -19,7 +19,7 @@ info: version: "1.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.1 + description: ETSI GS NFV-SOL 003 V3.3.4 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf servers: -- GitLab From 91f2385c5e79d05d57ee155cc1ff0c45f59babd4 Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Tue, 4 May 2021 10:47:01 +0200 Subject: [PATCH 35/66] new interface added VNF LCM Coordination --- .../VNFLifecycleCoordination.yaml | 330 ++++++++++++++++++ .../SOL002VNFLifecycleCoordination_def.yaml | 134 +++++++ src/definitions/SOL002SOL003_def.yaml | 31 ++ 3 files changed, 495 insertions(+) create mode 100644 src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml create mode 100644 src/SOL002/VNFLifecycleCoordination/definitions/SOL002VNFLifecycleCoordination_def.yaml diff --git a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml new file mode 100644 index 00000000..fb2295af --- /dev/null +++ b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml @@ -0,0 +1,330 @@ +openapi: 3.0.2 + +info: + title: SOL002 - VNF LCM Coordination interface + description: | + SOL002 - VNF Lifecycle Coordination Interface IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of + discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: + name: NFV-SOL WG + license: + name: ETSI Forge copyright notice + url: https://forge.etsi.org/etsi-forge-copyright-notice.txt + version: 1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + +externalDocs: + description: ETSI GS NFV-SOL 002 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.03.01_60/gs_NFV-SOL002v030301p.pdf + +servers: + - url: http://127.0.0.1/lcmcoord/v1 + - url: https://127.0.0.1/lcmcoord/v1 + +paths: + /api_versions: + $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions' + + /coordinations: + parameters: + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization + post: + description: | + This POST method requests the coordination of an LCM operation occurrence with + a management operation executed in the API producer. + parameters: + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType + requestBody: + $ref: '#/components/requestBodies/LcmCoordRequest' + responses: + "201": + $ref: '#/components/responses/Coordination.Post' + "202": + $ref: '#/components/responses/Coordination_async.Post' + "400": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 + "401": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 + "403": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 + "404": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 + "405": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 + "406": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 + "422": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 + "429": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 + "500": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 + "503": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 + "504": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + + /coordinations/{coordinationId}: + parameters: + - $ref: '#/components/parameters/coordinationId' + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization + get: + description: | + The GET method reads a coordination result. + responses: + "200": + $ref: '#/components/responses/IndividualLcmCoord.Get' + "400": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 + "401": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 + "403": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 + "404": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 + "405": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 + "406": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 + "416": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 + "422": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 + "429": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 + "500": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 + "503": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 + "504": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + + /coordinations/{coordinationId}/cancel: + parameters: + - $ref: '#/components/parameters/coordinationId' + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization + post: + description: | + The POST method initiates the cancellation of an ongoing coordination action. + responses: + "202": + $ref: '#/components/responses/coordinationCancel.Post' + "400": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 + "401": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 + "403": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 + "404": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 + "405": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 + "406": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 + "409": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 + "416": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 + "422": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 + "429": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 + "500": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 + "503": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 + "504": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + +components: + parameters: + coordinationId: + name: coordinationId + in: path + description: | + Identifier of the LCM coordination. This identifier can be retrieved from the + resource referenced by the "Location" HTTP header in the response to a + POST request to the "Coordinations" resource + required: true + style: simple + explode: false + schema: + type: string + + requestBodies: + LcmCoordRequest: + description: | + Parameters for the coordination action as defined in clause 10.5.2.2. + content: + application/json: + schema: + $ref: ./definitions/SOL002VNFLifecycleCoordination_def.yaml#/definitions/LcmCoordRequest + required: true + + responses: + Coordination.Post: + description: | + 201 CREATED + Shall be returned when the API producer has chosen the synchronous mode, + which may be chosen for coordination actions that finish within the time + frame in which an HTTP response is expected. + The response body shall contain an LcmCoord data structure that represents + the result of the coordination action. + The HTTP response shall include a "Location" HTTP header that indicates the URI + of the "Individual coordination action" resource that has been created as the + result of the finished coordination procedure. + headers: + Version: + description: | + The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + URI of the "Individual coordination action" resource + style: simple + explode: false + schema: + type: string + format: url + content: + application/json: + schema: + $ref: ./definitions/SOL002VNFLifecycleCoordination_def.yaml#/definitions/LcmCoord + + Coordination_async.Post: + description: | + 202 Accepted + Shall be returned when the API producer has chosen the asynchronous mode and the + request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that indicates the URI of + the "Individual coordination action" resource that will be created once the + coordination operation has finished successfully. + headers: + Version: + description: | + The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + Used in redirection, or when a new resource has been created. This header field shall be present if the + response status code is 201 or 3xx. In the present document this header field is also used if the response + status code is 202 and a new resource was created. + style: simple + explode: false + schema: + type: string + format: url + content: {} + + IndividualLcmCoord.Get: + description: | + 200 OK + Shall be returned when the coordination is finished and the coordination result has been read successfully. + A representation of the "Individual coordination action" resource shall be returned in the response body. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL002VNFLifecycleCoordination_def.yaml#/definitions/LcmCoord + + coordinationCancel.Post: + description: | + 202 Accepted + Shall be returned when the cancellation request has been accepted for processing. + The response shall have an empty payload body. + headers: + Version: + description: | + The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + Used in redirection, or when a new resource has been created. This header field shall be present if the + response status code is 201 or 3xx. In the present document this header field is also used if the response + status code is 202 and a new resource was created. + style: simple + explode: false + schema: + type: string + format: url + content: {} diff --git a/src/SOL002/VNFLifecycleCoordination/definitions/SOL002VNFLifecycleCoordination_def.yaml b/src/SOL002/VNFLifecycleCoordination/definitions/SOL002VNFLifecycleCoordination_def.yaml new file mode 100644 index 00000000..633f418c --- /dev/null +++ b/src/SOL002/VNFLifecycleCoordination/definitions/SOL002VNFLifecycleCoordination_def.yaml @@ -0,0 +1,134 @@ +# Copyright (c) ETSI 2017. +# https://forge.etsi.org/etsi-forge-copyright-notice.txt + +definitions: + LcmCoord: + description: > + This type represents an LCM coordination result. + type: object + required: + - id + - coordinationResult + - vnfInstanceId + - vnfLcmOpOccId + - lcmOperationType + - coordinationActionName + - _links + properties: + id: + description: > + Identifier of this coordination result. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + coordinationResult: + description: > + The result of executing the coordination action which also implies + the action to be performed by the VNFM as the result of this coordination. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmCoordResultType" + vnfInstanceId: + description: > + Identifier of the VNF instance which this coordination request is related to. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfLcmOpOccId: + description: > + The identifier of the VNF lifecycle management operation occurrence related to the coordination. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + lcmOperationType: + description: > + Indicates the type of the LCM operation with which coordination is requested. + Shall be the same as the value of the "operation" attribute in the LcmOpOcc + structure that is referenced by the "vnfLcmOpOccId". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationForCoordType" + coordinationActionName: + description: > + Indicates the actual LCM coordination action. + The coordination actions that a VNF supports are declared in the VNFD. + type: string + outputParams: + description: > + Additional parameters returned by the coordination action, + e.g. on the reason for the indicated coordinationResult. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + warnings: + description: > + Warning messages that were generated while the operation was executing. + type: string + error: + description: > + Error information related to the coordination. + + This attribute shall be present if "coordinationResult" is "ABORT" and may be + present if "coordinationResult" is "CANCELLED". + + If provided, the error information should be represented in the "error" attribute + of the related VnfLcmOpOcc data structure. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + - vnfLcmOpOcc + - vnfInstance + properties: + self: + description: > + URI of this resource + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + vnfLcmOpOcc: + description: > + Related lifecycle management operation occurrence. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + vnfInstance: + description: > + Related VNF instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + + LcmCoordRequest: + type: object + required: + - vnfInstanceId + - vnfLcmOpOccId + - lcmOperationType + - coordinationActionName + - _links + properties: + vnfInstanceId: + description: > + Identifier of the VNF instance which this coordination request is related to. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfLcmOpOccId: + description: > + The identifier of the VNF lifecycle management operation occurrence related to the coordination. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + lcmOperationType: + description: > + Indicates the type of the LCM operation with which coordination is requested. + Shall be the same as the value of the "operation" attribute in the LcmOpOcc + structure that is referenced by the "vnfLcmOpOccId". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmOperationForCoordType" + coordinationActionName: + description: > + Indicates the LCM coordination action. + The coordination actions that a VNF supports are declared in the VNFD. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + inputParams: + description: > + Additional parameters passed as input to the coordination action. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + _links: + description: > + Links to resources related to this request. + type: object + required: + - vnfLcmOpOcc + - vnfInstance + properties: + vnfLcmOpOcc: + description: > + Related lifecycle management operation occurrence. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + vnfInstance: + description: > + Related VNF instance. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index f90ddc2e..578f59c1 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -969,3 +969,34 @@ definitions: - CONTINUE - ABORT - CANCELLED + + LcmOperationForCoordType: + description: > + The enumeration LcmOperationForCoordType defines the permitted values to + represent VNF lifecycle operation types in VNF LCM operation coordination actions. + * INSTANTIATE: Represents the "Instantiate VNF" LCM operation. + * SCALE: Represents the "Scale VNF" LCM operation. + * SCALE_TO_LEVEL: Represents the "Scale VNF to Level" LCM operation. + * CHANGE_FLAVOUR: Represents the "Change VNF Flavour" LCM operation. + * TERMINATE: Represents the "Terminate VNF" LCM operation. + * HEAL: Represents the "Heal VNF" LCM operation. + * OPERATE: Represents the "Operate VNF" LCM operation. + * CHANGE_EXT_CONN: Represents the "Change external VNF connectivity" LCM operation. + * MODIFY_INFO: Represents the "Modify VNF Information" LCM operation. + * CREATE_SNAPSHOT: Represents the "Create VNF Snapshot" LCM operation. + * REVERT_TO_SNAPSHOT: Represents the "Revert To VNF Snapshot" LCM operation. + * CHANGE_VNFPKG: Represents the "Change current VNF package" LCM operation. + type: string + enum: + - INSTANTIATE + - SCALE + - SCALE_TO_LEVEL + - CHANGE_FLAVOUR + - TERMINATE + - HEAL + - OPERATE + - CHANGE_EXT_CONN + - MODIFY_INFO + - CREATE_SNAPSHOT + - REVERT_TO_SNAPSHOT + - CHANGE_VNFPKG \ No newline at end of file -- GitLab From 4c028f98f585a39f77f9bf75c213bd75bc558f37 Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Tue, 4 May 2021 11:03:32 +0200 Subject: [PATCH 36/66] minor fix --- .../VNFLifecycleCoordination/VNFLifecycleCoordination.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml index fb2295af..58bc9a24 100644 --- a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml +++ b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml @@ -286,8 +286,8 @@ components: type: string content: application/json: - schema: - $ref: ./definitions/SOL002VNFLifecycleCoordination_def.yaml#/definitions/LcmCoord + schema: + $ref: ./definitions/SOL002VNFLifecycleCoordination_def.yaml#/definitions/LcmCoord coordinationCancel.Post: description: | -- GitLab From d21356a278b76e9a5e1cba4a8c1541fd64615f33 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Tue, 4 May 2021 11:28:57 +0200 Subject: [PATCH 37/66] updated notification endpoints --- .../VNFFaultManagementNotification.yaml | 6 +++--- .../VNFIndicatorNotification/VNFIndicatorNotification.yaml | 4 ++-- .../VNFLifecycleManagementNotification.yaml | 6 +++--- .../VNFPerformanceManagementNotification.yaml | 4 ++-- .../VNFFaultManagementNotification.yaml | 6 +++--- .../VNFIndicatorNotification/VNFIndicatorNotification.yaml | 2 +- .../VNFLifecycleManagementNotification.yaml | 6 +++--- .../VNFPackageManagementNotification.yaml | 4 ++-- .../VNFPerformanceManagementNotification.yaml | 4 ++-- 9 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index f2f3ff62..13019dd0 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -23,7 +23,7 @@ servers: - url: https://127.0.0.1/callback/v1 paths: - /URI-is-provided-by-the-client-when-creating-the-subscription_AlarmNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -76,7 +76,7 @@ paths: "503": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 - /URI-is-provided-by-the-client-when-creating-the-subscription_AlarmClearedNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -129,7 +129,7 @@ paths: "503": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 - /URI-is-provided-by-the-client-when-creating-the-subscription_AlarmListRebuiltNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 4e8aa6bc..03adbc7b 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -26,7 +26,7 @@ servers: - url: https://127.0.0.1/callback/v1 paths: - '/URI-is-provided-by-the-client-when-creating-the-subscription_VnfIndicatorValueChangeNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-VnfIndicatorValueChangeNotification': parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -83,7 +83,7 @@ paths: "503": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 - '/URI-is-provided-by-the-client-when-creating-the-subscription_SupportedIndicatorsChangeNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-SupportedIndicatorsChangeNotification': parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index b84db5bb..413fff58 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -24,7 +24,7 @@ servers: - url: https://127.0.0.1/callback/v1 paths: - /URI-is-provided-by-the-client-when-creating-the-subscription_VnfLcmOperationOccurrenceNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-VnfLcmOperationOccurrenceNotification: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -77,7 +77,7 @@ paths: "503": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 - /URI-is-provided-by-the-client-when-creating-the-subscription_VnfIdentifierCreationNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-VnfIdentifierCreationNotification: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -130,7 +130,7 @@ paths: "503": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 - /URI-is-provided-by-the-client-when-creating-the-subscription_VnfIdentifierDeletionNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-VnfIdentifierDeletionNotification: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization diff --git a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index f176a80b..bceab6dd 100644 --- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -24,7 +24,7 @@ servers: - url: https://127.0.0.1/callback/v1 paths: - '/URI-is-provided-by-the-client-when-creating-the-subscription_PerformanceInformationAvailableNotification': + '/URI_is_provided_by_the_client_when_creating_the_subscription-PerformanceInformationAvailableNotification': parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -77,7 +77,7 @@ paths: "503": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 - /URI-is-provided-by-the-client-when-creating-the-subscription_ThresholdCrossedNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-ThresholdCrossedNotification: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization diff --git a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index d723b308..b2752a0f 100644 --- a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -29,7 +29,7 @@ paths: ############################################################################### # Notification endpoint AlarmNotification # ############################################################################### - /URI-is-provided-by-the-client-when-creating-the-subscription-AlarmNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmNotification: #SOL003 location: 7.4.6 parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -90,7 +90,7 @@ paths: ############################################################################### # Notification endpoint AlarmClearedNotification # ############################################################################### - /URI-is-provided-by-the-client-when-creating-the-subscription-AlarmClearedNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmClearedNotification: #SOL003 location: 7.4.6 parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -151,7 +151,7 @@ paths: ############################################################################### # Notification endpoint AlarmListRebuiltNotification # ############################################################################### - /URI-is-provided-by-the-client-when-creating-the-subscription-AlarmListRebuiltNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-AlarmListRebuiltNotification: #SOL003 location: 7.4.6 parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization diff --git a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml index eeed2be7..cbf33e42 100644 --- a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -29,7 +29,7 @@ paths: ############################################################################### # Notification endpoint VnfIndicatorValueChangeNotification # ############################################################################### - /URI-is-provided-by-the-client-when-creating-the-subscription-VnfIndicatorValueChangeNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-VnfIndicatorValueChangeNotification: #SOL003 location: 8.4.7 post: description: | diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 0466ce23..000c5d0d 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -29,7 +29,7 @@ paths: ############################################################################### # Notification endpoint VnfLcmOperationOccurrenceNotification # ############################################################################### - /URI-is-provided-by-the-client-when-creating-the-subscription-VnfLcmOperationOccurrenceNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-VnfLcmOperationOccurrenceNotification: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version @@ -87,7 +87,7 @@ paths: ############################################################################### # Notification endpoint VnfIdentifierCreationNotification # ############################################################################### - /URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierCreationNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-VnfIdentifierCreationNotification: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version @@ -145,7 +145,7 @@ paths: ############################################################################### # Notification endpoint VnfIdentifierDeletionNotification # ############################################################################### - /URI-is-provided-by-the-client-when-creating-the-subscription-VnfIdentifierDeletionNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-VnfIdentifierDeletionNotification: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index acc0f460..a37d18dd 100644 --- a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -29,7 +29,7 @@ paths: ############################################################################### # Notification endpoint VnfPackageOnboardingNotification # ############################################################################### - /URI-is-provided-by-the-client-when-creating-the-subscription-VnfPackageOnboardingNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageOnboardingNotification: #SOL003 location: 10.4.9 parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -90,7 +90,7 @@ paths: ############################################################################### # Notification endpoint VnfPackageChangeNotification # ############################################################################### - /URI-is-provided-by-the-client-when-creating-the-subscription-VnfPackageChangeNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-VnfPackageChangeNotification: #SOL003 location: 10.4.9 parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization diff --git a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index a0f6c7ac..d756a944 100644 --- a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -29,7 +29,7 @@ paths: ############################################################################### # Notification endpoint PerformanceInformationAvailableNotification # ############################################################################### - /URI-is-provided-by-the-client-when-creating-the-subscription-PerformanceInformationAvailableNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-PerformanceInformationAvailableNotification: #SOL003 location: 6.4.9 parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -91,7 +91,7 @@ paths: ############################################################################### # Notification endpoint ThresholdCrossedNotification # ############################################################################### - /URI-is-provided-by-the-client-when-creating-the-subscription-ThresholdCrossedNotification: + /URI_is_provided_by_the_client_when_creating_the_subscription-ThresholdCrossedNotification: #SOL003 location: 6.4.9 parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization -- GitLab From 54be3dd8be8fe99b5f30bb08ade37bfed01304d8 Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Tue, 4 May 2021 16:24:49 +0200 Subject: [PATCH 38/66] Minor fixes --- .../SOL002VNFFaultManagement_def.yaml | 6 +- .../SOL002VNFLifecycleManagement_def.yaml | 76 ++++++++++--------- .../VNFPerformanceManagement.yaml | 12 +-- .../SOL003VNFLifecycleManagement_def.yaml | 73 ++++++++---------- .../VNFLifecycleManagementNotification.yaml | 4 +- .../VNFPackageManagement.yaml | 2 + .../SOL003VNFPackageManagement_def.yaml | 1 + src/definitions/SOL002SOL003_def.yaml | 6 ++ src/endpoints/SOL002SOL003_endpoints.yaml | 28 +++++++ 9 files changed, 121 insertions(+), 87 deletions(-) diff --git a/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml b/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml index 285540b2..65a2a4b2 100644 --- a/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml +++ b/src/SOL002/VNFFaultManagement/definitions/SOL002VNFFaultManagement_def.yaml @@ -28,9 +28,9 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfcInstanceIds: description: > - Identifiers of the affected VNFC instances. - Each identifier references the "id" attribute in a "VnfcInfo" structure. - Shall be present if the alarm affects at least one VNFC instance. + Identifiers of the affected VNFC instances. Each identifier references the + "id" attribute in a "VnfcInfo" structure. Shall be present if the alarm affects + at least one VNFC instance. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 80e5d1d1..c706704e 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -234,28 +234,29 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > - Additional VNF specific attributes that affect the lifecycle management of this - VNF instance by the VNFM, or the lifecycle management scripts. - These attributes represent values that are stored persistently in the VnfInstance - structure for consumption by the VNFM, or by the lifecycle management scripts - during the execution of VNF lifecycle management operations. - - Modifying the values of these attributes has no direct effect on the VNF instance; - however, the modified attribute values can be considered during subsequent VNF - lifecycle management operations, which means that the modified values can indirectly - affect the configuration of the VNF instance. - - All extensions that are allowed for the VNF shall be declared in the VNFD. - This attribute can be be initialized with default values from VNFD and/or - with values passed in the InstantiateVnfRequest structure (see clause 5.5.2.4). - - A value initialised with default values from the VNFD can be updated with values - passed in the InstantiateVnfRequest structure. - - Further, these attributes can be modified with the PATCH method. - - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on - TOSCA specifications. + Additional VNF specific attributes that affect the lifecycle management of this VNF instance. + These attributes represent values that are stored persistently in the VnfInstance structure for + consumption by the VNFM, or by the lifecycle management scripts during the execution of VNF + lifecycle management operations. + + All extensions that are allowed for the VNF are declared in the VNFD. The declaration of an + extension in the VNFD contains information on whether its presence is optional or required, + and optionally can specify an initial value. See note 2 and note 4. The VNFM shall reject + requests to write extension attributes that are not declared in the VNFD with a "422 Unprocessable + entity" error response as defined in clause 6.4 of ETSI GS NFV SOL 013. + + Modifying the values of these attributes has no direct effect on the VNF instance; however, the + modified attribute values can be considered during subsequent VNF lifecycle management operations, + which means that the modified values can indirectly affect the configuration of the VNF instance. + + These attributes can be initialized with default values from the VNFD (see note 4). + + These attributes can be modified with values passed in the request structures of certain LCM operations, + such as the InstantiateVnfRequest structure. + + Further, these attributes can be created, modified or deleted with the PATCH method. + + In addition, the provisions in clause 5.7 shall apply. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" _links: description: > @@ -386,8 +387,8 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vnfConfigurableProperties: description: > - If present, this attribute provides modifications to the default values, as obtained from the VNFD, of the - “vnfConfigurableProperties” attribute in the "VnfInstance", as defined in clause 5.5.2.2. + If present, this attribute provides modifications to the default values, as obtained from the VNFD, of the + "vnfConfigurableProperties" attribute in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling configurable properties during the operation are defined in clause 5.4.4.3.1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" @@ -573,7 +574,7 @@ definitions: description: > Additional input parameters for the instantiation process, specific to the VNF being instantiated, as declared in the VNFD as part of - "ChangeExtVnfConnectivityOpConfig".". + "ChangeExtVnfConnectivityOpConfig". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" ChangeCurrentVnfPkgRequest: @@ -665,7 +666,7 @@ definitions: vnfcInfoModifications: description: > Modifications of certain entries in the "vnfcInfo" attribute array in the - "instantiatedVnfInfo" attribute of "VnfInstance"." to be used as "newList" as defined below this table. + "instantiatedVnfInfo" attribute of "VnfInstance" to be used as "newList" as defined below this table. type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcInfoModifications" @@ -1251,6 +1252,11 @@ definitions: description: > This type provides information about added, deleted, modified and temporary VLs, and added or removed VNF link ports. + + NOTE: When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link ports, + the "networkResource" attribute refers to the affected virtual link instance, not the link port + instance. The resource handles of the affected VNF link ports can be found by dereferencing the + identifiers in the "vnfLinkPortIds" attribute. type: object required: - id @@ -1308,16 +1314,14 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" vnfLinkPortIds: description: > - Identifiers of the link ports of the affected VL (reference to the vnfLinkPortInfo) related to the change. - Each identifier references a "VnfLinkPortInfo" structure. - Shall be set when changeType is equal to "LINK_PORT_ADDED" or "LINK_PORT_REMOVED", and the related - “VnfLinkPortInfo” structures are present (case "added") or have been present (case "removed") in the - “VnfVirtualLinkResourceInfo” or "ExtManagedVirtualLinkInfo" structures that are represented by the - "vnfVirtualLinkResourceInfo" or "extManagedVirtualLinkInfo" attribute in the "VnfInstance" structure. - When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link ports, the - "networkResource" attribute refers to the affected virtual link instance, not the link port instance. - The resource handles of the affected VNF link ports can be found by dereferencing the identifiers in the - "vnfLinkPortIds" attribute. + Identifiers of the link ports of the affected VL related to the change. Each identifier references a + "VnfLinkPortInfo" structure. + + Shall be set when changeType is equal to "LINK_PORT_ADDED" or "LINK_PORT_REMOVED", and the related + "VnfLinkPortInfo" structures are present (case "added") or have been present (case "removed") in the + "VnfVirtualLinkResourceInfo" or "ExtManagedVirtualLinkInfo" structures that are represented by the + "vnfVirtualLinkResourceInfo" or "extManagedVirtualLinkInfo" attribute in the "VnfInstance" structure. + See note. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 82129f94..6c82924c 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -32,7 +32,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The client can use this method to retrieve information about PM jobs. + The API consumer can use this method to retrieve information about PM jobs. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -114,7 +114,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The client can use this method for reading an individual PM job. + The API consumer can use this method for reading an individual PM job. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: @@ -224,7 +224,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The client can use this method for reading an individual performance report. + The API consumer can use this method for reading an individual performance report. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: @@ -261,7 +261,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The client can use this method to query information about thresholds. + The API cosumer can use this method to query information about thresholds. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter @@ -296,7 +296,9 @@ paths: post: description: | - The POST method can be used by the client to create a threshold. As the result of successfully executing this method, a new "Individual threshold" resource as defined in clause 6.4.6 shall have been created. + The POST method can be used by API consumer to create a threshold. + As the result of successfully executing this method, a new + "Individual threshold" resource as defined in clause 6.4.6 shall have been created. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 1afb0e79..9ff98d59 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -2150,6 +2150,15 @@ definitions: description: > This type provides information about added, deleted, modified and temporary VLs, and added or removed VNF link ports. + + NOTE 1: When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link ports, + the "networkResource" and "resourceDefinitionId" attributes refer to the affected virtual link + instance, not the link port instance. The resource handles of the affected VNF link ports can be + found by dereferencing the identifiers in the "vnfLinkPortIds" attribute. + NOTE 2: The "resourceDefinitionId" attribute provides information to the API consumer (i.e. the NFVO) to + assist in correlating the resource changes performed during the LCM operation with the granted + resources in a specific Grant exchange, which is identified by the "grantId" available in the + "Individual VNF lifecycle management operation occurrence" and the "id" in the "Individual Grant". type: object required: - id @@ -2174,19 +2183,17 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" changeType: description: > - Signals the type of change. Permitted values: - * ADDED - * REMOVED - * MODIFIED - * TEMPORARY - * LINK_PORT_ADDED - * LINK_PORT_REMOVED - For a temporary resource, an AffectedVirtualLink structure exists as - long as the temporary resource exists. - When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link ports, the - "networkResource" attribute refers to the affected virtual link instance, not the link port instance. - The resource handles of the affected VNF link ports can be found by dereferencing the identifiers in the - "vnfLinkPortIds" attribute. + Signals the type of change. + + Permitted values: + - ADDED + - REMOVED + - MODIFIED + - TEMPORARY + - LINK_PORT_ADDED + - LINK_PORT_REMOVED + For a temporary resource, an AffectedVirtualLink structure exists as long as the temporary resource exists. + See note 1. type: string enum: - ADDED @@ -2197,42 +2204,26 @@ definitions: - LINK_PORT_REMOVED networkResource: description: > - Reference to the VirtualNetwork resource. Detailed information is - (for new and modified resources) or has been (for removed - resources) available from the VIM. - When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link ports, the - "networkResource" attribute refers to the affected virtual link instance, not the link port instance. - The resource handles of the affected VNF link ports can be found by dereferencing the identifiers in - the "vnfLinkPortIds" attribute. + Reference to the VirtualNetwork resource. + Detailed information is (for new and modified resources) or has been (for removed resources) available from the VIM. + See note 1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" vnfLinkPortIds: description: > - Identifiers of the link ports of the affected VL (reference to the vnfLinkPortInfo) related to the change. - Each identifier references a "VnfLinkPortInfo" structure. - Shall be set when changeType is equal to "LINK_PORT_ADDED" or "LINK_PORT_REMOVED", and the related - “VnfLinkPortInfo” structures are present (case "added") or have been present (case "removed") in the - “VnfVirtualLinkResourceInfo” or "ExtManagedVirtualLinkInfo" structures that are represented by the - "vnfVirtualLinkResourceInfo" or "extManagedVirtualLinkInfo" attribute in the "VnfInstance" structure. - When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link ports, the - "networkResource" attribute refers to the affected virtual link instance, not the link port instance. - The resource handles of the affected VNF link ports can be found by dereferencing the identifiers in the - "vnfLinkPortIds" attribute. + Identifiers of the link ports of the affected VL related to the change. Each identifier references a "VnfLinkPortInfo" + structure. + + Shall be set when changeType is equal to "LINK_PORT_ADDED" or "LINK_PORT_REMOVED", and the related "VnfLinkPortInfo" + structures are present (case "added") or have been present (case "removed") in the "VnfVirtualLinkResourceInfo" or + "ExtManagedVirtualLinkInfo" structures that are represented by the "vnfVirtualLinkResource¬Info" or "extManagedVirtualLinkInfo" + attribute in the "VnfInstance" structure. See note 1. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" resourceDefinitionId: description: > - The identifier of the "ResourceDefinition" in the granting exchange - related to the LCM operation occurrence. It shall be present when an - applicable GrantInfo for the granted resource exists. - When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link ports, the - "networkResource" attribute refers to the affected virtual link instance, not the link port instance. - The resource handles of the affected VNF link ports can be found by dereferencing the identifiers in the - "vnfLinkPortIds" attribute. - The "resourceDefinitionId" attribute provides information to the API consumer (i.e. the NFVO) to assist - in correlating the resource changes performed during the LCM operation with the granted resources in a - specific Grant exchange, which is identified by the "grantId" available in the "Individual VNF lifecycle - management operation occurrence" and the "id" in the "Individual Grant". + The identifier of the "ResourceDefinition" in the granting exchange related to the LCM operation occurrence. + It shall be present when an applicable GrantInfo for the granted resource exists. See note 1 and note 2. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" zoneId: description: > diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 000c5d0d..829ae34d 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -120,7 +120,7 @@ paths: get: description: | - The GET method allows the server to test the notification endpoint that is provided by the API consumer, + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 for URI query parameters, request and response data structures, and response codes. @@ -178,7 +178,7 @@ paths: get: description: | - The GET method allows the server to test the notification endpoint that is provided by the API consumer, + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, e.g. during subscription. This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 for URI query parameters, request and response data structures, and response codes. diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 6aae3598..25d7f72d 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -1092,6 +1092,8 @@ components: The identifier is allocated by the VNF provider. This identifier can be retrieved from the "vnfdId" attribute in the VnfPackageOnboardingNotification or VnfPackageChangeNotification. + This identifier can be retrieved from the "vnfdId" attribute in the + VnfPackageOnboardingNotification or VnfPackageChangeNotification. required: true style: simple explode: false diff --git a/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml b/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml index 557fe7cd..5711bddd 100644 --- a/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml +++ b/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml @@ -231,6 +231,7 @@ definitions: description: > This type represents an artifact contained in or external to a VNF package which represents a software image. + It shall comply with provisions defined in table 10.5.3.2-1. type: object required: - id diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index 578f59c1..d833759f 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -784,6 +784,12 @@ definitions: LcmOperationType: description: > + The enumeration LcmOpType defines the permitted values to represent + VNF lifecycle operation types in VNF lifecycle management operation + occurrence resources and VNF lifecycle management operation occurrence + notifications. + It shall comply with the provisions defined in table 5.5.4.5-1. + Value | Description ------|------------ INSTANTIATE | Represents the "Instantiate VNF" LCM operation. diff --git a/src/endpoints/SOL002SOL003_endpoints.yaml b/src/endpoints/SOL002SOL003_endpoints.yaml index 977eb5a1..69db9539 100644 --- a/src/endpoints/SOL002SOL003_endpoints.yaml +++ b/src/endpoints/SOL002SOL003_endpoints.yaml @@ -41,6 +41,34 @@ endpoints: $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/503 "504": $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/504 + post: + description: > + This method is not supported. When this method is requested on this resource, the API producer shall + return a "405 Method Not Allowed" response + responses: + 405: + $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/405 + put: + description: > + This method is not supported. When this method is requested on this resource, the API producer shall + return a "405 Method Not Allowed" response + responses: + 405: + $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/405 + patch: + description: > + This method is not supported. When this method is requested on this resource, the API producer shall + return a "405 Method Not Allowed" response + responses: + 405: + $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/405 + delete: + description: > + This method is not supported. When this method is requested on this resource, the API producer shall + return a "405 Method Not Allowed" response + responses: + 405: + $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/405 components: responses: -- GitLab From cbe9250aefc2b8336822fcc9594d11ad93dad0dc Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Tue, 4 May 2021 17:36:19 +0200 Subject: [PATCH 39/66] SOL003: differences in v3.3.6 implemented --- .../SOL003VNFLifecycleManagement_def.yaml | 11 +++- ...L003VNFLifecycleOperationGranting_def.yaml | 60 +++++++++++++++++-- ...OL002SOL003VNFLifecycleManagement_def.yaml | 2 + 3 files changed, 66 insertions(+), 7 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 9ff98d59..50103c4a 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -474,6 +474,8 @@ definitions: description: > If present, this attribute signals modifications of the "vnfConfigurableProperties" attribute in "VnfInstance". + + In addition, the provisions in clause 5.7 shall apply. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" metadata: description: > @@ -484,6 +486,8 @@ definitions: description: > If present, this attribute signals modifications of the "extensions" attribute in "VnfInstance". + + In addition, the provisions in clause 5.7 shall apply. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vimConnectionInfo: description: > @@ -736,6 +740,7 @@ definitions: structure. Further, these configurable properties can be created, modified or deleted with the PATCH method. + In addition, the provisions in clause 5.7 shall apply. NOTE: Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with a defined @@ -817,7 +822,6 @@ definitions: minItems: 1 items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VipCpInfo" - extVirtualLinkInfo: description: > Information about the external VLs the VNF instance is connected to. @@ -913,6 +917,7 @@ definitions: These attributes can be modified with values passed in the request structures of certain LCM operations, such as the InstantiateVnfRequest structure. Further, these attributes can be created, modified or deleted with the PATCH method. + In addition, the provisions in clause 5.7 shall apply. NOTE: Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with a defined @@ -1624,7 +1629,9 @@ definitions: description: > Input parameters of the LCM operation. This attribute shall be formatted according to the request data type of the related LCM - operation. The following mapping between operationType and the + operation. In addition, the provisions in clause 5.7 shall apply. + + The following mapping between operationType and the data type of this attribute shall apply: * INSTANTIATE: InstantiateVnfRequest * SCALE: ScaleVnfRequest diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml index 934e616e..0ff399b2 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml @@ -175,6 +175,48 @@ definitions: Grant: description: > This type represents a grant. + + NOTE 1: This interface allows to signal the use of multiple VIMs per VNF. + However, due to the partial support of this feature in the present + release, it is recommended in the present document that the number + of entries in the "vims" attribute in the Grant is not greater than 1. + NOTE 2: Void. + NOTE 3: The Grant response allows the NFVO to pass to the VNFM VIM assets + related to the VNF package that is identified by the vnfdId attribute + in the corresponding Grant request. The NFVO may send in each Grant + response the full set of VIM assets related to the VNF package defined + by the vnfdId in the related Grant request, but shall send this information + if the vnfdId in the related Grant request differs from the vnfdId passed + in the previous Grant request, or if the Grant response is related to an + InstantiateVnf operation. The set of VIM assets shall not change between + subsequent Grant responses if the vnfdId has not changed. During each LCM + operation occurrence, the VIM assets that relate to the VNF package identified + by the current value of the vnfdId attribute in the "VnfInstance" structure + shall be used by the VNFM for newly created resources. If the VNF package + identifier of the VNF instance has been updated, VIM assets that relate to + the previously-used VNF package(s), and that were communicated in previous + Grant responses, apply to existing resources. + NOTE 4: The indication of externally-managed internal VLs is needed in case networks + have been pre-configured for use with certain VNFs, for instance to ensure that + these networks have certain properties such as security or acceleration features, + or to address particular network topologies. The present document assumes that + externally-managed internal VLs are managed by the NFVO and created towards the VIM. + NOTE 5: For any VNF lifecycle management operation request that allows to pass "extVirtualLinks" + and/or "extManagedVirtualLinks" parameters, such as InstantiateVnf, ChangeVnfFlavour, + ChangeExtVnfConnectivity or ChangeCurrentVnfPackage, the NFVO may provide the "extVirtualLinks" + and/or "extManagedVirtualLinks" attributes in the Grant to override the values passed + in these parameters previously in the associated VNF lifecycle management request, if + the lifecycle management request has originated from the NFVO itself. The NFVO shall + not provide the "extVirtualLinks" and/or "extManagedVirtualLinks" attributes in the + Grant otherwise. + NOTE 6: The NFVO shall set the value of the attribute by copying the value from the associated + GrantRequest. + NOTE 7: In case of granting an InstantiateVnf request that has originated from the NFVO and that + did not contain the "extVirtualLinks" attribute, this attribute shall be set by the NFVO. + Further in case of granting an InstantiateVnf request that has originated from the NFVO + and that did not contain the "extManagedVirtualLinks" attribute, this attribute shall be + set by the NFVO if there is the need to provide information about externally-managed virtual + links. type: object required: - id @@ -243,7 +285,9 @@ definitions: addResources: description: > List of resources that are approved to be added, with one entry per - resource. Shall be set when resources are approved to be added. + resource. Shall be set when resources are approved to be added and + shall contain the same set of resources requested to be added in the + related GrantRequest. type: array items: $ref: "#/definitions/GrantInfo" @@ -252,21 +296,26 @@ definitions: List of resources that are approved to be temporarily instantiated during the runtime of the lifecycle operation, with one entry per resource. Shall be set when resources are approved to be temporarily - instantiated. + instantiated and shall contain the same set of resources requested to + be temporarily instantiated in the related GrantRequest. type: array items: $ref: "#/definitions/GrantInfo" removeResources: description: > List of resources that are approved to be removed, with one entry - per resource. Shall be set when resources are approved to be removed. + per resource. Shall be set when resources are approved to be removed + and shall contain the same set of resources requested to be removed + in the related GrantRequest. type: array items: $ref: "#/definitions/GrantInfo" updateResources: description: > List of resources that are approved to be modified, with one entry - per resource. Shall be set when resources are approved to be updated. + per resource. Shall be set when resources are approved to be updated + and shall contain the same set of resources requested to be updated + in the related GrantRequest. type: array items: $ref: "#/definitions/GrantInfo" @@ -442,7 +491,8 @@ definitions: description: > Reference to the related VDU in the VNFD applicable to this resource. - Shall only be present if a VDU is applicable to this resource. + Shall only be present if a VDU is applicable to this resource, + i.e. if "type" has the value "COMPUTE". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" vnfdId: description: > diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 320ae89b..211a00a9 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -959,6 +959,7 @@ definitions: description: > This attribute signals the modifications of the "vnfConfigurableProperties" attribute in "VnfInstance" performed by the operation and shall be present if that attribute was modified during the operation. + In addition, the provisions in clause 5.7 shall apply. This attribute represents the delta (semantics as per IETF RFC 7386, JSON Merge Patch) between the value of the attribute at the start of the "Change current VNF package" operation and the value of the attribute at its completion. @@ -975,6 +976,7 @@ definitions: description: > This attribute signals the modifications of the "extensions" attribute in "VnfInstance" performed by the operation and shall be present if that attribute was modified during the operation. + In addition, the provisions in clause 5.7 shall apply. This attribute represents the delta (semantics as per IETF RFC 7386, JSON Merge Patch) between the value of the attribute at the start of the "Change current VNF package" operation and the value of the attribute at its completion. -- GitLab From 63c9fa0067676bcd7e4403a4f86e43d3ef8f6381 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 5 May 2021 09:38:59 +0200 Subject: [PATCH 40/66] fix API version --- src/endpoints/SOL002SOL003_endpoints.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/endpoints/SOL002SOL003_endpoints.yaml b/src/endpoints/SOL002SOL003_endpoints.yaml index 69db9539..8e31e0e4 100644 --- a/src/endpoints/SOL002SOL003_endpoints.yaml +++ b/src/endpoints/SOL002SOL003_endpoints.yaml @@ -21,8 +21,6 @@ endpoints: $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/403 "404": $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/404 - "405": - $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/406 "413": -- GitLab From 90eb98f3ed75931c0202c881e6a07faf64ffdb22 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 5 May 2021 12:22:13 +0200 Subject: [PATCH 41/66] udpated endpoints --- .../VNFConfiguration/VNFConfiguration.yaml | 8 ++-- .../VNFFaultManagement.yaml | 28 +++++------- .../VNFFaultManagementNotification.yaml | 21 ++++----- src/SOL002/VNFIndicator/VNFIndicator.yaml | 45 ++++--------------- .../VNFIndicatorNotification.yaml | 26 ++++------- src/endpoints/SOL002SOL003_endpoints.yaml | 21 +++++---- 6 files changed, 51 insertions(+), 98 deletions(-) diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index 84f7196e..a437fd19 100644 --- a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml +++ b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml @@ -31,9 +31,9 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: - summary: Read VNF/VNFC configuration from VNF description: | - The client can use this method to read configuration information about a VNF instance and/or its VNFC instances. + The API consumer can use this method to read configuration information about a VNF instance and/or its VNFC instances. + See clause 9.4.2.3.2. responses: "200": $ref: '#/components/responses/Configuration.Get' @@ -61,8 +61,8 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 patch: - summary: Modify VNF/VNFC configuration. - description: This method sets or modifies a configuration resource. + description: | + This method sets or modifies a configuration resource. See clause 9.4.2.3.4. requestBody: $ref: '#/components/requestBodies/ConfigurationRequest' responses: diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 0dd76c0f..46a38fcc 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -32,7 +32,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The client can use this method to retrieve information about the alarm list. + The API consumer can use this method to retrieve information about the alarm list. See clause 7.4.2.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -73,7 +73,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The client can use this method to read an individual alarm. + The API consumer can use this method to read an individual alarm. See clause 7.4.3.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -107,7 +107,7 @@ paths: patch: description: | - This method modifies an individual alarm resource. + This method modifies an individual alarm resource. See clause 7.4.3.3.4. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -152,9 +152,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization post: description: | - The POST method enables the consumer to escalate the perceived severity of an alarm that is represented by an - individual alarm resource. As the result of successfully executing this method, a new "Individual subscription" - resource as defined in clause 7.4.5 shall have been created. This method shall not trigger any notification. + The POST method enables the API consumer to escalate the perceived severity of an alarm that is represented + by an individual alarm resource. See clause 7.4.4.3.1. requestBody: $ref: '#/components/requestBodies/IndividualAlarmEscalateRequest' responses: @@ -191,8 +190,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The client can use this method to retrieve the list of active subscriptions for VNF alarms subscribed by the - client. It can be used e.g. for resynchronization after error situations. + The API consumer can use this method to retrieve the list of active subscriptions for VNF alarms subscribed + by the API consumer. It can be used e.g. for resynchronization after error situations. See clause 7.4.5.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -228,7 +227,7 @@ paths: post: description: | - The POST method creates a new subscription. + The POST method creates a new subscription. See clause 7.4.5.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -271,7 +270,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The client can use this method for reading an individual subscription for VNF alarms subscribed by the client. + The API consumer can use this method for reading an individual subscription for VNF alarms subscribed + by the API consumer. See clause 7.4.6.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -305,13 +305,7 @@ paths: delete: description: | - This method terminates an individual subscription. As the result - of successfully executing this method, the "Individual subscription" - resource shall not exist any longer. This means that no notifications for - that subscription shall be sent to the formerly-subscribed API consumer. - NOTE: Due to race conditions, some notifications might still be received - by the formerly-subscribed API consumer for a certain time period after - the deletion. + This method terminates an individual subscription. See clause 7.4.6.3.5. responses: "204": $ref: '#/components/responses/IndividualSubscription.Delete' diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index 13019dd0..67dafb76 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -29,8 +29,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The GET method allows the server to test the notification endpoint that is provided by the client, - e.g. during subscription. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. See clause 7.4.7.3.2. responses: "204": $ref: '#/components/responses/VNFFMNotification.Get' @@ -51,9 +51,8 @@ paths: post: description: | - Notify The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have - previously created an "Individual subscription" resource with a matching filter. + previously created an "Individual subscription" resource with a matching filter. See clause 7.4.7.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -82,8 +81,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The GET method allows the server to test the notification endpoint that is provided by the client, - e.g. during subscription. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. See clause 7.4.7.3.2. responses: "204": $ref: '#/components/responses/VNFFMNotification.Get' @@ -104,9 +103,8 @@ paths: post: description: | - Notify The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have - previously created an "Individual subscription" resource with a matching filter. + previously created an "Individual subscription" resource with a matching filter. See clause 7.4.7.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -135,8 +133,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The GET method allows the server to test the notification endpoint that is provided by the client, - e.g. during subscription. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. See clause 7.4.7.3.2. responses: "204": $ref: '#/components/responses/VNFFMNotification.Get' @@ -157,9 +155,8 @@ paths: post: description: | - Notify The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have - previously created an "Individual subscription" resource with a matching filter. + previously created an "Individual subscription" resource with a matching filter. See clause 7.4.7.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index 84ac22e5..7a4f7f7d 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -34,9 +34,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: - summary: Query multiple indicators - description: Get a list of indicators. Support of attribute based filtering - via query parameters. + description: | + The GET method queries multiple VNF indicators. See clause 8.4.2.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker @@ -74,10 +73,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: - summary: Query multiple indicators related to a VNF instance. description: | - Get a list of indicators related to a specific VNF instance. Support of attribute based filtering via query - parameters. + The GET method queries multiple VNF indicators related to a VNF instance. See clause 8.4.3.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker @@ -116,11 +113,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: - summary: Read an inidividual VNF indicator related to a VNF instance. description: | - Read an individual VNF indicator related to a specific VNF instance. NOTE: This identifier can be retrieved - from the resource referenced by the "Location" HTTP header in the response to a POST request creating a new VNF - instance resource. It can also be retrieved from the "id" attribute in the payload body of that response. + The GET method reads a VNF indicator. See clause 8.4.4.3.2. responses: "200": $ref: '#/components/responses/VnfIndividualIndicator.Get' @@ -154,10 +148,9 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: - summary: Query multiple subscriptions. description: | - Service Unavailable - The GET method queries the list of active subscriptions of the functional block that invokes the method. It can be used e.g. for resynchronization after error situations. + The GET method queries the list of active subscriptions of the functional block that invokes the method. + It can be used e.g. for resynchronization after error situations. See clause 8.4.5.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker @@ -190,19 +183,8 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 post: - summary: Create a new subscription to VNF indicator change notifications description: | - This method creates a new subscription. As the result of successfully executing this method, a new "Individual - subscription" resource as defined in clause 8.4.6 shall have been created. This method shall not trigger any - notification. Creation of two "Individual subscription" resources with the same callbackURI and the same filter - can result in performance degradation and will provide duplicates of notifications to the VNFM, and might make - sense only in very rare use cases. Consequently, the API producer may either allow creating a new "Individual - subscription" resource if another "Individual subscription" resource with the same filter and callbackUri already - exists (in which case it shall return the "201 Created" response code), or may decide to not create a duplicate - "Individual subscription" resource (in which case it shall return a "303 See Other" response code referencing - the existing "Individual subscription" resource with the same filter and callbackUri). This method shall follow - the provisions specified in the tables 8.4.5.3.1-1 and 8.4.5.3.1-2 for URI query parameters, request and response - data structures, and response codes + The POST method creates a new subscription. See clause 8.4.5.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -244,10 +226,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: - summary: Read an individual subscription. description: | - Service Unavailable - This resource represents an individual subscription. The client can use this resource to read and to terminate a subscription to notifications related to VNF indicator value changes. + The GET method reads an individual subscription. See clause 8.4.6.3.2. responses: "200": $ref: '#/components/responses/VnfIndicatorSubscription.Get' @@ -277,15 +257,8 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 delete: - summary: Delete a subscription description: | - This method terminates an individual subscription. As the result - of successfully executing this method, the "Individual subscription" - resource shall not exist any longer. This means that no notifications for - that subscription shall be sent to the formerly-subscribed API consumer. - NOTE:\tDue to race conditions, some notifications might still be received - by the formerly-subscribed API consumer for a certain time period after - the deletion. + The DELETE method terminates an individual subscription. See clause 8.4.6.3.5. responses: "204": $ref: '#/components/responses/VnfIndicatorSubscription.Delete' diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 03adbc7b..059e02f7 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -31,11 +31,9 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: - summary: Test notification endpoint. description: | - Service Unavailable - The GET method allows the server to test the notification endpoint that is provided by the client, - e.g. during subscription. + The GET method allows the API producer to test the notification endpoint that is provided by the + API consumer, e.g. during subscription. See clause 8.4.7.3.2. responses: "204": $ref: '#/components/responses/VNFInNotification.Get' @@ -55,12 +53,9 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 post: - summary: Notification endpoint description: | - The API producer can use this resource to send notifications related to VNF indicator value changes to a - subscribed API consumer, which has provided the URI of this resource during the subscription process. - The POST method delivers a notification from API producer to an API consumer. The API consumer shall have - previously created an "Individual subscription" resource with a matching filter. + The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have + previously created an "Individual subscription" resource with a matching filter. See clause 8.4.7.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -88,11 +83,9 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: - summary: Test notification endpoint. description: | - Service Unavailable - The GET method allows the server to test the notification endpoint that is provided by the client, - e.g. during subscription. + The GET method allows the API producer to test the notification endpoint that is provided by the + API consumer, e.g. during subscription. See clause 8.4.7.3.2. responses: "204": $ref: '#/components/responses/VNFInNotification.Get' @@ -112,12 +105,9 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 post: - summary: Notification endpoint description: | - The API producer can use this resource to send notifications related to VNF indicator value changes to a - subscribed API consumer, which has provided the URI of this resource during the subscription process. - The POST method delivers a notification from API producer to an API consumer. The API consumer shall have - previously created an "Individual subscription" resource with a matching filter. + The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have + previously created an "Individual subscription" resource with a matching filter. See clause 8.4.7.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: diff --git a/src/endpoints/SOL002SOL003_endpoints.yaml b/src/endpoints/SOL002SOL003_endpoints.yaml index 8e31e0e4..49c2850d 100644 --- a/src/endpoints/SOL002SOL003_endpoints.yaml +++ b/src/endpoints/SOL002SOL003_endpoints.yaml @@ -7,9 +7,8 @@ endpoints: get: summary: Retrieve API version information description: > - The GET method reads API version information. This method shall follow the provisions specified in - table 4.6.3.3.3.2-1 for request and response data structures, and response codes. URI query parameters are not - supported. + The GET method reads API version information. This method shall follow the provisions specified in table 9.3.3.3.2-1 + of SOL013 for request and response data structures, and response codes. URI query parameters are not supported. responses: "200": $ref: '#/components/responses/ApiVersions.Get' @@ -41,29 +40,29 @@ endpoints: $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/504 post: description: > - This method is not supported. When this method is requested on this resource, the API producer shall - return a "405 Method Not Allowed" response + This method is not supported. When this method is requested on this resource, the API producer shall return a "405 + Method Not Allowed" response as defined in clause 6.4. responses: 405: $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/405 put: description: > - This method is not supported. When this method is requested on this resource, the API producer shall - return a "405 Method Not Allowed" response + This method is not supported. When this method is requested on this resource, the API producer shall return a "405 + Method Not Allowed" response as defined in clause 6.4. responses: 405: $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/405 patch: description: > - This method is not supported. When this method is requested on this resource, the API producer shall - return a "405 Method Not Allowed" response + This method is not supported. When this method is requested on this resource, the API producer shall return a "405 + Method Not Allowed" response as defined in clause 6.4. responses: 405: $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/405 delete: description: > - This method is not supported. When this method is requested on this resource, the API producer shall - return a "405 Method Not Allowed" response + This method is not supported. When this method is requested on this resource, the API producer shall return a "405 + Method Not Allowed" response as defined in clause 6.4. responses: 405: $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/405 -- GitLab From af28be2142ba6ba825b6429929c7749acb01e4e9 Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Wed, 5 May 2021 13:04:04 +0200 Subject: [PATCH 42/66] SOL003: added notes to data types main descriptions --- .../SOL003VNFLifecycleManagement_def.yaml | 755 +++++++++--------- ...L003VNFLifecycleOperationGranting_def.yaml | 290 +++---- .../SOL003VNFPackageManagement_def.yaml | 77 +- ...OL003VNFSnapshotPackageManagement_def.yaml | 46 +- .../SOL002SOL003VNFFaultManagement_def.yaml | 29 +- .../SOL002SOL003VNFIndicator_def.yaml | 56 +- ...OL002SOL003VNFLifecycleManagement_def.yaml | 336 ++++---- ...002SOL003VNFPerformanceManagement_def.yaml | 159 ++-- 8 files changed, 775 insertions(+), 973 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 50103c4a..f6db8575 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -3,7 +3,21 @@ definitions: InstantiateVnfRequest: - #SOL003 location: 5.5.2.4 + description: > + This type represents request parameters for the "Instantiate VNF" operation. + It shall comply with the provisions defined in table 5.5.2.4-1. + + NOTE 1: The indication of externally-managed internal VLs is needed in case + networks have been pre-configured for use with certain VNFs, for instance + to ensure that these networks have certain properties such as security or + acceleration features, or to address particular network topologies. + The present document assumes that externally-managed internal VLs are + managed by the NFVO and created towards the VIM. + NOTE 2: It is possible to have several ExtManagedVirtualLinkData for the same VNF + internal VL in case of a multi-site VNF spanning several VIMs. The set of + ExtManagedVirtualLinkData corresponding to the same VNF internal VL shall + indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed + multi-site VL instance (refer to clause 4.4.1.12). type: object required: - flavourId @@ -26,18 +40,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" extManagedVirtualLinks: description: > - Information about internal VLs that are managed by the NFVO. - - NOTES: - The indication of externally-managed internal VLs is needed in case networks have been pre-configured - for use with certain VNFs, for instance to ensure that these networks have certain properties such as - security or acceleration features, or to address particular network topologies. The present document - assumes that externally-managed internal VLs are managed by the NFVO and created towards the VIM. - - It is possible to have several ExtManagedVirtualLinkData for the same VNF internal VL in case of a - multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkData corresponding to the same - VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed - multi-site VL instance (refer to clause 4.4.1.12). + Information about internal VLs that are managed by the NFVO. See note 1 and note 2. type: array items: $ref: "#/definitions/ExtManagedVirtualLinkData" @@ -131,9 +134,20 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" ChangeVnfFlavourRequest: - #SOL003 location: 5.5.2.7 description: > - This type represents request parameters for the "Change VNF flavour" operation. + This type represents request parameters for the "Change VNF flavour" operation. + It shall comply with the provisions defined in table 5.5.2.7-1. + + NOTE 1: The indication of externally-managed internal VLs is needed in case networks + have been pre-configured for use with certain VNFs, for instance to ensure + that these networks have certain properties such as security or acceleration + features, or to address particular network topologies. The present document + assumes that externally-managed internal VLs are managed by the NFVO and created + towards the VIM. + NOTE 2: It is possible to have several ExtManagedVirtualLinkData for the same VNF internal + VL in case of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkData + corresponding to the same VNF internal VL shall indicate so by referencing to the same + VnfVirtualLinkDesc and externally-managed multi-site VL instance (refer to clause 4.4.1.12). type: object required: - newFlavourId @@ -157,18 +171,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" extManagedVirtualLinks: description: > - Information about internal VLs that are managed by the NFVO. - - NOTES: - The indication of externally-managed internal VLs is needed in case networks have been pre-configured - for use with certain VNFs, for instance to ensure that these networks have certain properties such as - security or acceleration features, or to address particular network topologies. The present document - assumes that externally-managed internal VLs are managed by the NFVO and created towards the VIM. - - It is possible to have several ExtManagedVirtualLinkData for the same VNF internal VL in case of a - multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkData corresponding to the same - VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed - multi-site VL instance (refer to clause 4.4.1.12). + Information about internal VLs that are managed by the NFVO. See notes 1 and 2. type: array items: $ref: "#/definitions/ExtManagedVirtualLinkData" @@ -202,22 +205,31 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" TerminateVnfRequest: + description: > + This type represents request parameters for the "Terminate VNF" operation. + It shall comply with the provisions defined in table 5.5.2.8-1. + + NOTE: If the VNF is still in service, requesting forceful termination can + adversely impact network service. type: object required: - terminationType properties: terminationType: description: > - Indicates whether forceful or graceful termination is requested. + Indicates whether forceful or graceful termination is requested. + See note. + Permitted values: - * FORCEFUL: The VNFM will shut down the VNF and release the - resources immediately after accepting the request. - * GRACEFUL: The VNFM will first arrange to take the VNF out of - service after accepting the request. Once the operation of taking - the VNF out of service finishes (irrespective of whether it has - succeeded or failed) or once the timer value specified in the - "gracefulTerminationTimeout" attribute expires, the VNFM will shut - down the VNF and release the resources. + - FORCEFUL: The VNFM will shut down the VNF and release the + resources immediately after accepting the request. + - GRACEFUL: The VNFM will first arrange to take the VNF out of + service after accepting the request. Once the operation + of taking the VNF out of service finishes (irrespective + of whether it has succeeded or failed) or once the timer + value specified in the "gracefulTerminationTimeout" + attribute expires, the VNFM will shut down the VNF and + release the resources. type: string enum: - FORCEFUL @@ -256,8 +268,18 @@ definitions: OperateVnfRequest: description: > - This type represents request parameters for the "Operate VNF" operation. - type: object + This type represents request parameters for the "Operate VNF" operation. + It shall comply with the provisions defined in table 5.5.2.10-1. + + NOTE: The "stopType" and "gracefulStopTimeout" attributes shall be absent, + when the "changeStateTo" attribute is equal to "STARTED". + The "gracefulStopTimeout" attribute shall be present, when the "changeStateTo" + is equal to "STOPPED" and the "stopType" attribute is equal to "GRACEFUL". + The "gracefulStopTimeout" attribute shall be absent, when the "changeStateTo" + attribute is equal to "STOPPED" and the "stopType" attribute is equal to "FORCEFUL". + The request shall be treated as if the "stopType" attribute has been set to "FORCEFUL", + when the "changeStateTo" attribute is equal to "STOPPED" and the "stopType" attribute + is absent. required: - changeStateTo properties: @@ -268,32 +290,12 @@ definitions: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType" stopType: description: > - It signals whether forceful or graceful stop is requested. - The “stopType” and “gracefulStopTimeout” attributes shall be absent, - when the “changeStateTo” attribute is equal to “STARTED”. The - “gracefulStopTimeout” attribute shall be present, when the - “changeStateTo” is equal to “STOPPED” and the “stopType” attribute - is equal to “GRACEFUL”. The “gracefulStopTimeout” attribute shall be - absent, when the “changeStateTo” attribute is equal to “STOPPED” and - the “stopType” attribute is equal to “FORCEFUL”. The request shall - be treated as if the “stopType” attribute was set to ”FORCEFUL”, when - the “changeStateTo” attribute is equal to “STOPPED” and the - “stopType” attribute is absent. + It signals whether forceful or graceful stop is requested. See note. $ref: "#/definitions/StopType" gracefulStopTimeout: description: > - The time interval (in seconds) to wait for the VNF to be taken out - of service during graceful stop, before stopping the VNF. - The “stopType” and “gracefulStopTimeout” attributes shall be absent, - when the “changeStateTo” attribute is equal to “STARTED”. The - “gracefulStopTimeout” attribute shall be present, when the - “changeStateTo” is equal to “STOPPED” and the “stopType” attribute - is equal to “GRACEFUL”. The “gracefulStopTimeout” attribute shall be - absent, when the “changeStateTo” attribute is equal to “STOPPED” and - the “stopType” attribute is equal to “FORCEFUL”. The request shall - be treated as if the “stopType” attribute was set to ”FORCEFUL”, when - the “changeStateTo” attribute is equal to “STOPPED” and the - “stopType” attribute is absent. + The time interval (in seconds) to wait for the VNF to be taken out of service + during graceful stop, before stopping the VNF. See note. type: integer additionalParams: description: > @@ -336,10 +338,21 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" ChangeCurrentVnfPkgRequest: - #SOL003 location: 5.5.2.11a description: > This type represents request parameters for the "Change current VNF package" - operation to replace the VNF package on which a VNF instance is based. + operation to replace the VNF package on which a VNF instance is based. + It shall comply with the provisions defined in table 5.5.2.11a-1. + + NOTE 1: The indication of externally-managed internal VLs is needed in case networks + have been pre-configured for use with certain VNFs, for instance to ensure + that these networks have certain properties such as security or acceleration + features, or to address particular network topologies. The present document + assumes that externally-managed internal VLs are managed by the NFVO and created + towards the VIM. + NOTE 2: It is possible to have several ExtManagedVirtualLinkData for the same VNF internal + VL in case of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkData + corresponding to the same VNF internal VL shall indicate so by referencing to the same + VnfVirtualLinkDesc and externally-managed multi-site VL instance (refer to clause 4.4.1.12). type: object required: - vnfdId @@ -358,17 +371,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" extManagedVirtualLinks: description: > - Information about internal VLs that are managed by the NFVO. - - NOTES: - The indication of externally-managed internal VLs is needed in case networks have been pre-configured for - use with certain VNFs, for instance to ensure that these networks have certain properties such as security or - acceleration features, or to address particular network topologies. The present document assumes that - externally-managed internal VLs are managed by the NFVO and created towards the VIM. - It is possible to have several ExtManagedVirtualLinkData for the same VNF internal VL in case of a multi-site - VNF spanning several VIMs. The set of ExtManagedVirtualLinkData corresponding to the same VNF internal - VL shall indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed multi-site VL - instance (refer to clause 4.4.1.12). + Information about internal VLs that are managed by the NFVO. See notes 1 and 2. type: array items: $ref: "#/definitions/ExtManagedVirtualLinkData" @@ -452,12 +455,18 @@ definitions: VnfInfoModifications: description: > - This type represents attribute modifications that were performed on an - "Individual VNF instance" resource. The attributes that can be included - consist of those requested to be modified explicitly in the - "VnfInfoModificationRequest" data structure, and additional attributes - of the "VnfInstance" data structure that were modified implicitly e.g. - when modifying the referenced VNF package. + This type represents attribute modifications that were performed on an "Individual + VNF instance" resource. The attributes that can be included consist of those requested + to be modified explicitly in the "VnfInfoModificationRequest" data structure, and + additional attributes of the "VnfInstance" data structure that were modified implicitly + e.g. when modifying the referenced VNF package. + The "VnfInfoModifications" data type shall comply with the provisions defined in table + 5.5.2.12a-1. + + NOTE: If present, this attribute (which depends on the value of the "vnfdId" attribute) + was modified implicitly following a request to modify the "vnfdId" attribute, by + copying the value of this attribute from the VNFD in the VNF Package identified by + the "vnfdId" attribute. type: object properties: vnfInstanceName: @@ -503,38 +512,23 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfProvider: description: > - If present, this attribute signals modifications of the - "vnfProvider" attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. + If present, this attribute signals modifications of the "vnfProvider" attribute + in "VnfInstance". See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" vnfProductName: description: > - If present, this attribute signals modifications of the - "vnfProductName" attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. + If present, this attribute signals modifications of the "vnfProductName" attribute + in "VnfInstance". See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" vnfSoftwareVersion: description: > - If present, this attribute signals modifications of the - "vnfSoftwareVersion" attribute in "VnfInstance". + If present, this attribute signals modifications of the "vnfSoftwareVersion" attribute + in "VnfInstance". See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" vnfdVersion: description: > - If present, this attribute signals modifications of the - "vnfdVersion" attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. + If present, this attribute signals modifications of the "vnfdVersion" attribute + in "VnfInstance". See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" StopType: @@ -579,17 +573,18 @@ definitions: CreateVnfSnapshotInfoRequest: description: | - This type represents request parameters for the creation of an "Individual VNF snapshot" resource which can be - populated with content obtained by invoking the "Create VNF snapshot" LCM operation or extracted from a - VNF snapshot package. It shall comply with the provisions defined in table 5.5.2.20-1. + This type represents request parameters for the creation of an "Individual VNF snapshot" + resource which can be populated with content obtained by invoking the "Create VNF snapshot" + LCM operation or extracted from a VNF snapshot package. It shall comply with the provisions + defined in table 5.5.2.20-1. + + NOTE: The present attribute shall be provided if the "Individual VNF snapshot" resource is + requested to be created as part of a VNF snapshot package extraction. type: object properties: vnfSnapshotPkgId: description: | - Identifier of the VNF snapshot package information held by the NFVO. - - The present attribute shall be provided if the "Individual VNF snapshot" resource is requested to be created - as part of a VNF snapshot package extraction. + Identifier of the VNF snapshot package information held by the NFVO. See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfSnapshot: description: | @@ -656,7 +651,36 @@ definitions: VnfInstance: description: > - This type represents a VNF instance. + This type represents a VNF instance. It shall comply with the provisions defined in table 5.5.2.2-1. + + NOTE: Clause B.3.2 provides examples illustrating the relationship among the different run-time + information elements (CP, VL and link ports) used to represent the connectivity of a VNF. + + NOTE 1: Modifying the value of this attribute shall not be performed when conflicts exist between + the previous and the newly referred VNF package, i.e. when the new VNFD is changed with + respect to the previous VNFD in other aspects than merely referencing to other VNF software + images. In order to avoid misalignment of the VnfInstance with the current VNF's on-boarded + VNF Package, the values of attributes in the VnfInstance that have corresponding attributes + in the VNFD shall be kept in sync with the values in the VNFD. + NOTE 2: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + NOTE 3: VNF configurable properties are sometimes also referred to as configuration parameters applicable + to a VNF. Some of these are set prior to instantiation and cannot be modified if the VNF is instantiated, + some are set prior to instantiation (are part of initial configuration) and can be modified later, + and others can be set only after instantiation. The applicability of certain configuration may + depend on the VNF and the required operation of the VNF at a certain point in time. + NOTE 4: Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes + of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with a defined + initial value. The defined initial values can be declared in the VNFD, and/or, in case of "metadata", + obtained from the "CreateVnfRequest" structure. Child attributes of "vnfConfigurableProperties", + "metadata" and "extensions" that have no defined initial value shall not be created, in order to be + consistent with the semantics of the JSON Merge Patch method (see IETF RFC 7396) that interprets null + values as deletion request. + NOTE 5: It is possible to have several ExtManagedVirtualLinkInfo for the same VNF internal VL in case of a + multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkInfo corresponding to the same + VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed + multi-site VL instance (refer to clause 5.5.3.3). + NOTE 6: Even though externally-managed internal VLs are also used for VNF-internal connectivity, they shall + not be listed in the "vnfVirtualLinkResourceInfo" attribute as this would be redundant. type: object required: - id @@ -683,15 +707,7 @@ definitions: type: string vnfdId: description: > - Identifier of the VNFD on which the VNF instance is based. - - Modifying the value of this attribute shall not be performed when conflicts - exist between the previous and the newly referred VNF package, - i.e. when the new VNFD is not changed with respect to the previous VNFD - in other aspects than merely referencing to other VNF software images. - In order to avoid misalignment of the VnfInstance with the current VNF's - on-boarded VNF Package, the values of attributes in the VnfInstance that - have corresponding attributes in the VNFD shall be kept in sync with the values in the VNFD. + Identifier of the VNFD on which the VNF instance is based. See note 1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfProvider: description: > @@ -711,44 +727,37 @@ definitions: $ref: "../../..//definitions/SOL002SOL003_def.yaml#/definitions/Version" vnfConfigurableProperties: description: > - Current values of the configurable properties of the VNF instance. - Configurable properties referred in this attribute are declared in - the VNFD. - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD - based on TOSCA specifications. - VNF configurable properties are sometimes also referred to as - configuration parameters applicable to a VNF. Some of these are set - prior to instantiation and cannot be modified if the VNF is - instantiated, some are set prior to instantiation (are part of - initial configuration) and can be modified later, and others can be - set only after instantiation. The applicability of certain - configuration may depend on the VNF and the required operation of - the VNF at a certain point in time. - These configurable properties include the following standard - attributes, which are declared in the VNFD if auto-scaling and/or - auto-healing are supported by the VNF: - * isAutoscaleEnabled: If present, the VNF supports auto-scaling. If - set to true, auto-scaling is currently enabled. If set to false, - auto-scaling is currently disabled. - * isAutohealEnabled: If present, the VNF supports auto-healing. If - set to true, auto-healing is currently enabled. If set to false, - auto-healing is currently disabled. - These configurable properties can be initialized with default values - from the VNFD. - Configurable properties can be modified with values passed in the request - structures of certain LCM operations, such as the InstantiateVnfRequest - structure. - Further, these configurable properties can be created, modified or - deleted with the PATCH method. - In addition, the provisions in clause 5.7 shall apply. + Additional VNF-specific attributes that provide the current values of the configurable + properties of the VNF instance. + + These attributes represent values that are stored persistently in the VnfInstance structure + and that correspond to configuration parameters of the VNF instance. + + Modifying these attributes affects the configuration of the VNF instance either directly + (if the VNF instance is in INSTANTIATED state at the time of the modification) or as part + of the subsequent VNF instantiation operation (if the VNF instance is in NOT_INSTANTIATED + state at the time of the modification). + + Configurable properties referred in these attributes are declared in the VNFD. The declaration + of configurable properties in the VNFD can optionally contain the specification of initial values. + See notes 2, 3 and 4. The VNFM shall reject requests to write configurable properties that are + not declared in the VNFD with a "422 Unprocessable entity" error response as defined in clause + 6.4 of ETSI GS NFV SOL 013. + + These configurable properties include the following standard attributes, which are declared in + the VNFD if auto-scaling and/or auto-healing are supported by the VNF: + - isAutoscaleEnabled: If present, the VNF supports auto-scaling. If set to true, auto-scaling + is currently enabled. If set to false, auto-scaling is currently disabled. + - isAutohealEnabled: If present, the VNF supports auto-healing. If set to true, auto-healing is + currently enabled. If set to false, auto-healing is currently disabled. - NOTE: Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes - of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with a defined - initial value. The defined initial values can be declared in the VNFD, and/or, in case of "metadata", - obtained from the "CreateVnfRequest" structure. Child attributes of "vnfConfigurableProperties", "metadata" - and "extensions" that have no defineddeclared initial value shall not be created, in order to be consistent - with the semantics of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion - request. + These configurable properties can be initialized with default values from the VNFD (see note 4). + + Configurable properties can be modified with values passed in the request structures of certain + LCM operations, such as the InstantiateVnfRequest structure. + + Further, these configurable properties can be created, modified or deleted with the PATCH method. + In addition, the provisions in clause 5.7 shall apply. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vimConnectionInfo: description: > @@ -830,15 +839,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" extManagedVirtualLinkInfo: description: > - Information about the externally-managed internal VLs of the VNF instance. - - NOTE: It is possible to have several ExtManagedVirtualLinkInfo for the same - VNF internal VL in case of a multi-site VNF spanning several VIMs. The set of - ExtManagedVirtualLinkInfo corresponding to the same VNF internal VL shall indicate - so by referencing to the same VnfVirtualLinkDesc and externally-managed multi-site - VL instance (refer to clause 5.5.3.3). - Even though externally-managed internal VLs are also used for VNF-internal connectivity, - they shall not be listed in the "vnfVirtualLinkResourceInfo" attribute as this would be redundant. + Information about the externally-managed internal VLs of the VNF instance. See note 5 and note 6. type: array items: $ref: "#/definitions/ExtManagedVirtualLinkInfo" @@ -863,11 +864,9 @@ definitions: type: array items: $ref: "#/definitions/VnfcResourceInfo" - virtualLinkResourceInfo: + vnfVirtualLinkResourceInfo: description: > - Information about the virtualised network resources used by the VLs - of the VNF instance. Even though externally-managed internal VLs are also used for VNF-internal - connectivity, they shall not be listed in the "vnfVirtualLinkResourceInfo" attribute as this would be redundant. + Information about the virtualised network resources used by the VLs of the VNF instance. See note 6. type: array items: $ref: "#/definitions/VnfVirtualLinkResourceInfo" @@ -880,52 +879,49 @@ definitions: metadata: description: > Additional VNF-specific attributes that provide metadata describing the VNF instance. - These attributes represent values that are stored persistently in the VnfInstance structure - for consumption by functional blocks that invoke the VNF lifecycle management interface. - They are not consumed by the VNFM, or the lifecycle management scripts. - Modifying the values of these attributes has no effect on the VNF instance, it only affects - the information represented in the VnfInstance structure. - Metadata that are writeable are the VNF provider foresees are expected to be declared in the VNFD. - The declaration of metadata in the VNFD can optionally contain the specification of initial values. + + These attributes represent values that are stored persistently in the VnfInstance structure for + consumption by functional blocks that invoke the VNF lifecycle management interface. They are not + consumed by the VNFM, or the lifecycle management scripts. + + Modifying the values of these attributes has no effect on the VNF instance, it only affects the + information represented in the VnfInstance structure. + + Metadata that the VNF provider foresees are expected to be declared in the VNFD. The declaration + of metadata in the VNFD can optionally contain the specification of initial values. See notes 2 and 4. The VNFM shall accept requests to write metadata that are not declared in the VNFD. - These attributes can be initialized with default values from the VNFD or with values + + These attributes can be initialized with default values from the VNFD (see note 4) or with values passed in the CreateVnfRequest structure (see clause 5.4.2.3.1). - This attributeThese attributes can be created, modified or removed with the PATCH method. - - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. - Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes - of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with - a defined initial value. Child attributes of "vnfConfigurableProperties", "metadata" and "extensions" - that have no declared initial value shall not be created, in order to be consistent with the semantics - of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion request. + + These attributes can be created, modified or removed with the PATCH method. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > Additional VNF-specific attributes that affect the lifecycle management of this VNF instance. - These attributes represent values that are stored persistently in the VnfInstance structure - for consumption by the VNFM or the lifecycle management scripts during the execution of - VNF lifecycle management operations. - All extensions that are allowed for the VNF are declared in the VNFD. The declaration of an extension - in the VNFD contains information on whether its presence is optional or required, and optionally - can specify an initial value. See note 2 and note 4. The VNFM shall reject requests to write extension - attributes that are not declared in the VNFD with a "422 Unprocessable entity" error response as defined - in clause 6.4 of ETSI GS NFV-SOL 013. - Modifying the values of these attributes has no direct effect on the VNF instance; however, the modified - attribute values can be considered during subsequent VNF lifecycle management operations, which means that + + These attributes represent values that are stored persistently in the VnfInstance structure for + consumption by the VNFM or the lifecycle management scripts during the execution of VNF lifecycle + management operations. + + All extensions that are allowed for the VNF are declared in the VNFD. The declaration of an extension + in the VNFD contains information on whether its presence is optional or required, and optionally can + specify an initial value. See notes 2 and 4. The VNFM shall reject requests to write extension attributes + that are not declared in the VNFD with a "422 Unprocessable entity" error response as defined in clause + 6.4 of ETSI GS NFV-SOL 013. + + Modifying the values of these attributes has no direct effect on the VNF instance; however, the modified + attribute values can be considered during subsequent VNF lifecycle management operations, which means that the modified values can indirectly affect the configuration of the VNF instance. - These attributes can be initialized with default values from the VNFD. - These attributes can be modified with values passed in the request structures of certain LCM operations, + + These attributes can be initialized with default values from the VNFD (see note 4). + + These attributes can be modified with values passed in the request structures of certain LCM operations, such as the InstantiateVnfRequest structure. + Further, these attributes can be created, modified or deleted with the PATCH method. + In addition, the provisions in clause 5.7 shall apply. - - NOTE: Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child attributes - of "vnfConfigurableProperties", "metadata" and "extensions" that were declared in the VNFD with a defined - initial value. The defined initial values can be declared in the VNFD, and/or, in case of "metadata", - obtained from the "CreateVnfRequest" structure. Child attributes of "vnfConfigurableProperties", "metadata" - and "extensions" that have no defineddeclared initial value shall not be created, in order to be consistent - with the semantics of the JSON Merge Patch method (see IETF RFC 7396) that interprets null values as deletion - request. _links: description: > Links to resources related to this resource. @@ -1095,8 +1091,17 @@ definitions: VnfcResourceInfo: description: > - This type represents the information on virtualised compute and storage - resources used by a VNFC in a VNF instance. + This type represents the information on virtualised compute and storage resources + used by a VNFC in a VNF instance. It shall comply with the provisions defined in + table 5.5.3.5-1. + + NOTE 1: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on + TOSCA specifications. + NOTE 2: A VNFC CP is "connected to" an external CP if the VNFC CP is connected to an + internal VL that exposes an external CP. A VNFC CP is "exposed as" an external + CP if it is connected directly to an external VL. + NOTE 3: The information can be omitted because it is already available as part of the + external CP information. type: object required: - id @@ -1109,7 +1114,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" vduId: description: > - Reference to the applicable VDU in the VNFD. + Reference to the applicable VDU in the VNFD. See note 1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" vnfdId: description: > @@ -1142,12 +1147,9 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfcCpInfo: description: > - All the CPs of the VNFC instance. - Shall be present when that particular CP of the VNFC instance is exposed as an external CP of the VNF instance - or is connected to an external CP of the VNF instance. - A VNFC CP is "connected to" an external CP if the VNFC CP is connected to an internal VL that exposes an external CP. - A VNFC CP is "exposed as" an external CP if it is connected directly to an external VL. - May be present otherwise. + CPs of the VNFC instance. Shall be present when that particular CP of the VNFC instance + is exposed as an external CP of the VNF instance or is connected to an external CP of the + VNF instance. See note 2. May be present otherwise. type: array items: type: object @@ -1162,20 +1164,18 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" cpdId: description: > - Identifier of the VDU CPD, cpdId, in the VNFD. + Identifier of the VDU CPD, cpdId, in the VNFD. See note 1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" vnfExtCpId: description: > - Identifier of the related external CP. Shall be present when the VNFC CP is exposed as an external CP of - the VNF instance or connected to an external CP of the VNF instance (see note) and shall be absent otherwise. - - NOTE: A VNFC CP is "connected to" an external CP if the VNFC CP is connected to an internal VL that exposes - an external CP. A VNFC CP is "exposed as" an external CP if it is connected directly to an external VL. + Identifier of the related external CP. Shall be present when the VNFC CP is exposed as an + external CP of the VNF instance or connected to an external CP of the VNF instance (see note 2) + and shall be absent otherwise. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" cpProtocolInfo: description: > - Network protocol information for this CP. May be omitted if the VNFC CP is exposed as an external CP. - The information can be omitted because it is already available as part of the external CP information. + Network protocol information for this CP. May be omitted if the VNFC CP is exposed as an external CP. + See note 3. type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/CpProtocolInfo" @@ -1344,7 +1344,16 @@ definitions: VnfcSnapshotInfo: description: > - This type represents a VNFC snapshot. + This type represents a VNFC snapshot. It shall comply with the provisions defined in table 5.5.3.19-1. + + NOTE 1: The identifier of the compute snapshot resource is assigned during creation of a VNFC snapshot + being returned from the VIM as output data in the response message of the individual resource + operations. This attribute shall only be present for a VNFC snapshot that has been newly created + by the VNFM as a result of the "Create VNF snapshot task". + NOTE 2: The identifier of the storage snapshot resource is assigned during creation of a VNFC snapshot being + returned from the VIM as output data in the response message of the individual resource operations. + This attribute shall only be present for a VNFC snapshot with an associated storage resource and that + has been newly created by the VNFM as a result of the "Create VNF snapshot task". type: object required: - id @@ -1380,11 +1389,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" computeSnapshotResource: description: > - Reference to a compute snapshot resource. - The identifier of the compute snapshot resource is assigned during creation of a VNFC snapshot - being returned from the VIM as output data in the response message of the individual resource operations. - This attribute shall only be present for a VNFC snapshot that has been newly created by the VNFM as a result o - f the "Create VNF snapshot task". + Reference to a compute snapshot resource. See note 1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" storageSnapshotResources: description: > @@ -1404,12 +1409,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" storageSnapshotResource: description: > - Reference to a storage snapshot resource. - The identifier of the storage snapshot resource is assigned during creation of a VNFC - snapshot being returned from the VIM as output data in the response message of the - individual resource operations. This attribute shall only be present for a VNFC snapshot - with an associated storage resource and that has been newly created by the VNFM as a - result of the "Create VNF snapshot task". + Reference to a storage snapshot resource. See note 2. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" userDefinedData: description: > @@ -1472,8 +1472,14 @@ definitions: AffectedVnfc: description: > - This type provides information about added, deleted, modified and - temporary VNFCs. + This type provides information about added, deleted, modified and temporary VNFCs. + It shall comply with the provisions in table 5.5.3.13-1. + + NOTE: The "resourceDefinitionId" attribute provides information to the API consumer + (i.e. the NFVO) to assist in correlating the resource changes performed during + the LCM operation with the granted resources in a specific Grant exchange, which + is identified by the "grantId" available in the "Individual VNF lifecycle management + operation occurrence" and the "id" in the "Individual Grant". type: object required: - id @@ -1519,9 +1525,8 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" resourceDefinitionId: description: > - The identifier of the "ResourceDefinition" in the granting exchange - related to the LCM operation occurrence. It shall be present when - an applicable GrantInfo for thegranted resource exists. See note. + The identifier of the "ResourceDefinition" in the granting exchange related to the LCM operation occurrence. + It shall be present when an applicable GrantInfo for thegranted resource exists. See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" zoneId: description: > @@ -1568,8 +1573,27 @@ definitions: VnfLcmOpOcc: description: > - This type represents a VNF lifecycle management operation occurrence. Shall be set to the value of the "id" - attribute in the "Grant" representing the associated "Individual Grant", if such grant exists. + This type represents a VNF lifecycle management operation occurrence. + It shall comply with the provisions defined in table 5.5.2.13-1. + + NOTE 1: This allows the NFVO to obtain the information contained in the latest + "result" notification if it has not received it due to an error or a + wrongly configured subscription filter. + NOTE 2: Not more than one of changedInfo and modificationsTriggeredByVnfPkgChange + shall be present. + NOTE 3: For a particular affected VL, there shall be as many "AffectedVirtualLink" + entries as needed for signalling the different types of changes, i.e. one + per virtual link and change type. For instance, in the case of signaling + affected VL instances involving the addition of a particular VL instance + with links ports, one "AffectedVirtualLink" entry signals the addition of + the VL by using the "changeType" attribute of "AffectedVirtualLink" structure + equal to "ADDED", and another "AffectedVirtualLink" entry signals the addition + of externally visible VNF link ports of the VL by using the "changeType" equal + to "LINK_PORT_ADDED". + NOTE 4: A coordination action has timed out if the VNFM has not been able to read the + "Individual coordination action" resource within a timeout interval after requesting + the coordination to be started or to be cancelled. The length of the timeout interval + is defined by means outside the scope of the present document. type: object oneOf: - required: @@ -1674,60 +1698,37 @@ definitions: properties: affectedVnfcs: description: > - Information about VNFC instances that were affected during the - lifecycle operation. - This allows the API consumer to obtain the information contained in - the latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. + Information about VNFC instances that were affected during the lifecycle operation. + See note 1. type: array items: $ref: "#/definitions/AffectedVnfc" affectedVirtualLinks: description: > - Information about VL instances that were affected during the - lifecycle operation. - This allows the API consumer to obtain the information contained in - the latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. - For a particular affected VL, there shall be as many "AffectedVirtualLink" - entries as needed for signalling the different types of changes, i.e., - one per virtual link and change type. For instance, in the case of - signaling affected VL instances involving the addition of a particular VL - instance with links ports, one "AffectedVirtualLink" entry signals the - addition of the VL by using the "changeType" attribute of "AffectedVirtualLink" - structure equal to "ADDED", and another "AffectedVirtualLink" entry signals - the addition of VNF link ports of the VL by using the "changeType" equal to - "LINK_PORT_ADDED". + Information about VL instances that were affected during the lifecycle operation. + See notes 1 and 3. type: array items: $ref: "#/definitions/AffectedVirtualLink" affectedExtLinkPorts: description: > - Information about external VNF link ports that were affected during the lifecycle operation. This allows - the API consumer to obtain the information contained in the latest "result" notification if it has not - received it due to an error or a wrongly configured subscription filter. + Information about external VNF link ports that were affected during the lifecycle operation. + See note 1. type: array items: $ref: "#/definitions/AffectedExtLinkPort" affectedVirtualStorages: description: > - Information about virtualised storage instances that were affected - during the lifecycle operation. - This allows the API consumer to obtain the information contained - in the latest "result" notification if it has not received it due to - an error or a wrongly configured subscription filter. + Information about virtualised storage instances that were affected during the lifecycle operation. + See note 1. type: array items: $ref: "#/definitions/AffectedVirtualStorage" changedInfo: description: > - Information about the changed VNF instance information, including - VNF configurable properties, if applicable. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. + Information about the changed VNF instance information, including VNF configurable properties, + if applicable. See note 1 and note 2. $ref: "#/definitions/VnfInfoModifications" - affectedVipCps: description: > Information about virtual IP CP instances that were affected during @@ -1735,30 +1736,23 @@ definitions: type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVipCp" - changedExtConnectivity: description: > - Information about changed external connectivity, if applicable. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. + Information about changed external connectivity, if applicable. See note 1. type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" modificationsTriggeredByVnfPkgChange: description: > - Information about performed changes of "VnfInstance" attributes triggered by changing the current VNF package, - if applicable. Shall be absent if the "operation" attribute is different from "CHANGE_VNFPKG". - This allows the API consumer to obtain the information contained in the latest "result" notification if it has - not received it due to an error or a wrongly configured subscription filter. - Not more than one of changedInfo and modificationsTriggeredByVnfPkgChange shall be present. + Information about performed changes of "VnfInstance" attributes triggered by changing the current VNF package, + if applicable. Shall be absent if the "operation" attribute is different from "CHANGE_VNFPKG". + See notes 1 and 2. $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ModificationsTriggeredByVnfPkgChange" vnfSnapshotInfoId: description: > Identifier of the "individual VNF snapshot" resource. Shall be present if applicable to the type of LCM operation, i.e., if the value of the "operation" attribute is either "CREATE_SNAPSHOT" or "REVERT_TO_SNAPSHOT". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - lcmCoordinations: description: > Information about LCM coordination actions (see clause 10 in ETSI GS NFV-SOL002) related to this LCM operation occurrence. @@ -1781,37 +1775,31 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" coordinationResult: description: > - The result of executing the coordination action which also implies the action to be performed by the VNFM as the result of this coordination. - Shall be present if the coordination has been finished. Shall be absent if the coordination is ongoing or has timed out - A coordination action has timed out if the VNFM has not been able to read the "Individual coordination action" resource within a timeout - interval after requesting the coordination to be started or to be cancelled. The length of the timeout interval is defined by means outside - the scope of the present document. + The result of executing the coordination action which also implies the action to be performed by the VNFM as + the result of this coordination. + + Shall be present if the coordination has been finished. Shall be absent if the coordination is ongoing or has + timed out (see note 4). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmCoordResultType" - startTime: description: > The time when the coordination action has been started. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - - endTime: description: > - The end time of the coordination action. Shall be present for a coordination action that has finished or - timed out (see note 4) and shall be absent if the coordination is ongoing. + The end time of the coordination action. Shall be present for a coordination action that has finished or timed + out (see note 4) and shall be absent if the coordination is ongoing. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - endpointType: description: > The endpoint type used by this coordination action. Valid values: • MGMT: coordination with other operation supporting management systems (e.g. EM) • VNF: coordination with the VNF instance - type: string enum: - MGMT - VNF - warnings: description: > Warning messages that were generated while the operation was executing. @@ -1821,8 +1809,6 @@ definitions: type: array items: type: string - - _links: description: > Links to resources related to this resource. @@ -1875,7 +1861,13 @@ definitions: AffectedExtLinkPort: description: > - This type provides information about added and deleted external link ports (link ports attached to external virtual links). + This type provides information about added and deleted external link ports (link ports attached to external virtual links). + It shall comply with the provisions in table 5.5.3.14a-1. + + NOTE: The "resourceDefinitionId" attribute provides information to the API consumer (i.e. the NFVO) to assist in correlating + the resource changes performed during the LCM operation with the granted resources in a specific Grant exchange, which + is identified by the "grantId" available in the "Individual VNF lifecycle management operation occurrence" and the "id" + in the "Individual Grant". type: object required: - id @@ -1909,49 +1901,64 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" resourceDefinitionId: description: > - The identifier of the "ResourceDefinition" in the granting exchange related to the LCM operation occurrence. - It shall be present when an applicable GrantInfo for the granted resource exists. - The "resourceDefinitionId" attribute provides information to the API consumer (i.e. the NFVO) to assist in - correlating the resource changes performed during the LCM operation with the granted resources in a - specific Grant exchange, which is identified by the "grantId" available in the "Individual VNF lifecycle - management operation occurrence" and the "id" in the "Individual Grant". + The identifier of the "ResourceDefinition" in the granting exchange related to the LCM operation occurrence. + It shall be present when an applicable GrantInfo for the granted resource exists. See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" VnfLcmOperationOccurrenceNotification: description: > - This type represents a VNF lifecycle management operation occurrence - notification, which informs the receiver of changes in the VNF - lifecycle caused by a VNF LCM operation occurrence. The support of the - notification is mandatory. - This notification shall be triggered by the VNFM when there is a change in the state of a - VNF LCM operation occurrence that changes the VNF lifecycle, includingwhich represents an - occurrence of one the following LCM operations: - * Instantiation of the VNF - * Scaling of the VNF instance (including auto-scaling) - * Healing of the VNF instance (including auto-healing) - * Change of the state of the VNF instance (i.e. Operate VNF) - * Change of the deployment flavour of the VNF instance - * Change of the external connectivity of the VNF instance - * Termination of the VNF instance - * Modification of VNF instance information and/or VNF configurable - properties through the "PATCH" method on the "Individual VNF instance" - resource - * Creation of a VNF snapshot - * Reversion of the VNF instance to a VNF snapshot. - Clause 5.6.2 defines the states and state transition of a VNF LCM operation occurrence, - and also specifies details of the notifications to be emitted at each state transition. - If this is the initial notification about the start of a VNF LCM operation occurrence, - it is assumed that the notification is sent by the VNFM before any action (including sending the grant request) - is taken as part of the LCM operation. Due to possible race conditions, the "start" notification, - the grant request and the LCM operation acknowledgment (i.e. the "202 Accepted" response) - can arrive in any order at the NFVO, and the NFVO shall be able to handle such a situation. - If this is a notification about a final or intermediate result state of a VNF LCM operation occurrence, - the notification shall be sent after all related actions of the LCM operation that led - to this state have been executed. - The new state shall be set in the "Individual VNF LCM operation occurrence" resource before - the notification about the state change is sent. - See clause 5.6.2.2 for further provisions regarding sending this notification, including - in cases of handling LCM operation errors. + This type represents a VNF lifecycle management operation occurrence notification, which + informs the receiver of changes in the VNF lifecycle caused by a VNF LCM operation occurrence. + It shall comply with the provisions defined in table 5.5.2.17-1. + The support of the notification is mandatory. + + This notification shall be triggered by the VNFM when there is a change in the state of a VNF LCM + operation occurrence that changes the VNF lifecycle, which represents an occurrence of one the + following LCM operations: + - Instantiation of the VNF + - Scaling of the VNF instance (including auto-scaling) + - Healing of the VNF instance (including auto-healing) + - Change of the state of the VNF instance (i.e. Operate VNF) + - Change of the deployment flavour of the VNF instance + - Change of the external connectivity of the VNF instance + - Change of the current VNF package + - Termination of the VNF instance + - Modification of VNF instance information and/or VNF configurable properties through the "PATCH" + method on the "Individual VNF instance" resource + - Creation of a VNF snapshot + - Reversion of the VNF instance to a VNF snapshot + + Clause 5.6.2 defines the states and state transition of a VNF LCM operation occurrence, and also + specifies details of the notifications to be emitted at each state transition. + If this is the initial notification about the start of a VNF LCM operation occurrence, it is assumed + that the notification is sent by the VNFM before any action (including sending the grant request) is + taken as part of the LCM operation. Due to possible race conditions, the "start" notification, the grant + request and the LCM operation acknowledgment (i.e. the "202 Accepted" response) can arrive in any order + at the NFVO, and the NFVO shall be able to handle such a situation. + If this is a notification about a final or intermediate result state of a VNF LCM operation occurrence, + the notification shall be sent after all related actions of the LCM operation that led to this state have + been executed. + The new state shall be set in the "Individual VNF LCM operation occurrence" resource before the notification + about the state change is sent. + The amount of information provided in the LCM operation occurrence notifications to be issued by the VNFM when + a particular subscription matches can be controlled by the API consumer using the "verbosity" attribute in the + subscription request (see clause 5.5.2.15). The "verbosity" setting in a particular individual subscription shall + only apply to the LCM operation occurrence notifications triggered by that subscription. However, it shall not + affect the amount of information in the "VnfLcmOpOcc" structure (see clause 5.5.2.13) which represents the "Individual + LCM operation occurrence" resource associated with each of the notifications. + See clause 5.6.2.2 for further provisions regarding sending this notification, including in cases of handling LCM + operation errors. + + NOTE 1: Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL" + and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains + information about the cumulative changes to virtualised resources that were performed so far by the VNF LCM + operation occurrence and by any of the error handling procedures for that operation occurrence. + NOTE 2: For a particular affected VL, there shall be as many "AffectedVirtualLink" entries as needed for signalling + the different types of changes, i.e. one per virtual link and change type. For instance, in the case of signaling + affected VL instances involving the addition of a particular VL instance with links ports, one "AffectedVirtualLink" + entry signals the addition of the VL by using the "changeType" attribute of "AffectedVirtualLink" structure equal to + "ADDED", and another "AffectedVirtualLink" entry signals the addition of externally visible VNF link ports of the VL + by using the "changeType" equal to "LINK_PORT_ADDED". type: object required: - id @@ -2035,63 +2042,25 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" affectedVnfcs: description: > - Information about VNFC instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT", - the "verbosity" attribute is set to "FULL" and the operation has - performed any resource modification. Shall be absent otherwise. - This attribute contains information about the cumulative changes - to virtualised resources that were performed so far by the VNF LCM - operation occurrence and by any of the error handling procedures - for that operation occurrence. + Information about VNFC instances that were affected during the lifecycle operation. See note 1. type: array items: $ref: "#/definitions/AffectedVnfc" affectedVirtualLinks: description: > - Information about VL instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. - For a particular affected VL, there shall be as many "AffectedVirtualLink" - entries as needed for signalling the different types of changes, i.e., - one per virtual link and change type. For instance, in the case of signaling - affected VL instances involving the addition of a particular VL instance with - links ports, one "AffectedVirtualLink" entry signals the addition of the VL by - using the "changeType" attribute of "AffectedVirtualLink" structure equal to - "ADDED", and another "AffectedVirtualLink" entry signals the addition of VNF - link ports of the VL by using the "changeType" equal to "LINK_PORT_ADDED". + Information about VL instances that were affected during the lifecycle operation. See note 1 and note 2. type: array items: $ref: "#/definitions/AffectedVirtualLink" affectedExtLinkPorts: description: > - Information about external VNF link ports that were affected during - the lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT", - the "verbosity" attribute is set to "FULL" and the operation has - performed any resource modification. Shall be absent otherwise. - This attribute contains information about the cumulative changes - to virtualised resources that were performed so far by the VNF LCM - operation occurrence and by any of the error handling procedures - for that operation occurrence. + Information about external VNF link ports that were affected during the lifecycle operation. See note 1. type: array items: $ref: "#/definitions/AffectedExtLinkPort" affectedVirtualStorages: description: > - Information about virtualised storage instances that were affected - during the lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. + Information about virtualised storage instances that were affected during the lifecycle operation. See note 1. type: array items: $ref: "#/definitions/AffectedVirtualStorage" @@ -2248,8 +2217,13 @@ definitions: AffectedVirtualStorage: description: > - This type provides information about added, deleted, modified and - temporary virtual storage resources. + This type provides information about added, deleted, modified and temporary virtual storage resources. + It shall comply with the provisions in table 5.5.3.15-1. + + NOTE: The "resourceDefinitionId" attribute provides information to the API consumer (i.e. the NFVO) to + assist in correlating the resource changes performed during the LCM operation with the granted + resources in a specific Grant exchange, which is identified by the "grantId" available in the + "Individual VNF lifecycle management operation occurrence" and the "id" in the "Individual Grant". type: object required: - id @@ -2295,15 +2269,8 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" resourceDefinitionId: description: > - The identifier of the "ResourceDefinition" in the granting exchange - related to the LCM operation occurrence. It shall be present when an - applicable GrantInfo for the granted resource exists. - The "resourceDefinitionId" attribute provides information to the API - consumer (i.e. the NFVO) to assist in correlating the resource changes - performed during the LCM operation with the granted resources in a - specific Grant exchange, which is identified by the "grantId" available - in the "Individual VNF lifecycle management operation occurrence" and - the "id" in the "Individual Grant". + The identifier of the "ResourceDefinition" in the granting exchange related to the LCM operation occurrence. + It shall be present when an applicable GrantInfo for the granted resource exists. See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" zoneId: description: > diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml index 0ff399b2..cac56837 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml @@ -4,7 +4,26 @@ definitions: GrantRequest: description: > - This type represents a grant request. + This type represents a grant request. It shall comply with the provisions defined in table 9.5.2.2-1. + + NOTE 1: The VNF LCM operations CreateVnfIdentifier, DeleteVnfIdentifier, QueryVnf and ModifyVnfInformation + can be executed by the VNFM without requesting granting. + NOTE 2: If the granting request is for InstantiateVNF, either instantiationLevel or addResources shall be present. + NOTE 3: The NFVO will assume that the VNFM will be responsible to both allocate and release the temporary resource + during the runtime of the LCM operation. This means, the resource can be allocated and consumed after the + "start" notification for the LCM operation is sent by the VNFM, and the resource will be released before the + "result" notification of the VNF LCM operation is sent by the VNFM. + NOTE 4: The affinity/anti-affinity rules defined in the VNFD and the placement constraints in the GrantVnfLifecycleOperation + as defined in this clause should be conflict-free. In case of conflicts, the placement constraints in the + GrantVnfLifecycleOperation shall take precedence. + NOTE 5: Passing constraints allows the VNFM or the lifecycle management scripts to influence resource placement decisions + by the NFVO to ensure VNF properties such as performance or fault tolerance. + NOTE 6: If fallbackBestEffort is present in placement constraints and set to "true", the NFVO shall process the Affinity/AntiAffinity + constraint in a best effort manner, in which case, if specified resources cannot be allocated based on specified placement + constraint, the NFVO looks for an alternate best effort placement for the specified resources to be granted. + In the best effort anti-affinity case, the resources are expected to be spread optimally over all available instances of scope + (e.g. zones), and in the best effort affinity case, they are expected to be distributed optimally over fewer possible instances + of scope. type: object required: - vnfInstanceId @@ -50,10 +69,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" operation: description: > - The lifecycle management operation for which granting is requested. - The VNF LCM operations CreateVnfIdentifier, DeleteVnfIdentifier, - QueryVnf and ModifyVnfInformation can be executed by the VNFM - without requesting granting. + The lifecycle management operation for which granting is requested. See note 1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/GrantedLcmOperationType" isAutomaticInvocation: description: > @@ -65,32 +81,22 @@ definitions: type: boolean instantiationLevelId: description: > - If operation=INSTANTIATE, the identifier of the instantiation level - may be provided as an alternative way to define the resources to be - added. This attribute shall only be used if operation=INSTANTIATE. + If operation=INSTANTIATE, the identifier of the instantiation level may be provided as an + alternative way to define the resources to be added. This attribute shall only be used if + operation=INSTANTIATE. See note 2. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" addResources: description: > - List of resource definitions in the VNFD for resources to be added - by the LCM operation which is related to this grant request, with - one entry per resource. - If the granting request is for InstantiateVNF, either - instantiationLevel or addResources shall be present. + List of resource definitions in the VNFD for resources to be added by the LCM operation + which is related to this grant request, with one entry per resource. See note 2. type: array items: $ref: "#/definitions/ResourceDefinition" tempResources: description: > - List of resource definitions in the VNFD for resources to be - temporarily instantiated during the runtime of the LCM operation - which is related to this grant request, with one entry per - resource. - The NFVO will assume that the VNFM will be responsible to both - allocate and release the temporary resource during the runtime of - the LCM operation. This means, the resource can be allocated and - consumed after the "start" notification for the LCM operation is - sent by the VNFM, and the resource will be released before the - "result" notification of the VNF LCM operation is sent by the VNFM. + List of resource definitions in the VNFD for resources to be temporarily instantiated during + the runtime of the LCM operation which is related to this grant request, with one entry per + resource. See note 3. type: array items: $ref: "#/definitions/ResourceDefinition" @@ -112,28 +118,10 @@ definitions: $ref: "#/definitions/ResourceDefinition" placementConstraints: description: > - Placement constraints that the VNFM may send to the NFVO in order to - influence the resource placement decision. If sent, the NFVO shall - take the constraints into consideration when making resource - placement decisions, and shall reject the grant if they cannot be - honoured. - The affinity/anti-affinity rules defined in the VNFD , and the - placement constraints in the GrantVnfLifecycleOperation as defined - in this clause should be conflict-free. In case of conflicts, the - placement constraints in the GrantVnfLifecycleOperation shall take - precedence. - Passing constraints allows the VNFM or the lifecycle management - scripts to influence resource placement decisions by the NFVO to - ensure VNF properties such as performance or fault tolerance. - If fallbackBestEffort is present in placement constraints and set - to “true”, the NFVO shall process the Affinity/AntiAffinity constraint - in a best effort manner, in which case, if specified resources cannot be - allocated based on specified placement constraint, the NFVO looks for an - alternate best effort placement for the specified resources to be granted. - In the best effort anti-affinity case, the resources are expected to be - spread optimally over all available instances of scope (e.g. zones), - and in the best effort affinity case, they are expected to be distributed - optimally over fewer possible instances of scope. + Placement constraints that the VNFM may send to the NFVO in order to influence the resource + placement decision. If sent, the NFVO shall take the constraints into consideration when making + resource placement decisions and shall reject the grant if they cannot be honoured. See notes 4, + 5 and 6. type: array items: $ref: "#/definitions/PlacementConstraint" @@ -230,37 +218,27 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfInstanceId: description: > - Identifier of the related VNF instance. - The NFVO shall set the value of the attribute by copying the value - from the associated GrantRequest. + Identifier of the related VNF instance. See note 6. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfLcmOpOccId: description: > - Identifier of the related VNF lifecycle management operation - occurrence. - The NFVO shall set the value of the attribute by copying the value - from the associated GrantRequest. + Identifier of the related VNF lifecycle management operation occurrence. + See note 6. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vimConnectionInfo: description: > - Provides information regarding VIM connections that are approved to - be used by the VNFM to allocate resources, and provides parameters - of these VIM connections. - The VNFM shall update the " vimConnectionInfo" attribute of the - "VnfInstance" structure by adding unknown entries received in this - attribute. - This attribute is not intended for the modification of vimConnectionInfo - entries passed earlier; for that, the VnfInfoModificationRequest - structure shall be used. - This attribute shall only be supported when VNF-related Resource - Management in direct mode is applicable. In direct mode, this - parameter shall be absent if the VIM information was configured to - the VNFM in another way, present otherwise. - This interface allows to signal the use of multiple VIMs per VNF. - However, due to the partial support of this feature in the present - release, it is recommended in the present document that the number - of entries in the "vims" attribute in the Grant is not greater than - 1. + Provides information regarding VIM connections that are approved to be used + by the VNFM to allocate resources and provides parameters of these VIM connections. + + The VNFM shall update the "vimConnectionInfo" attribute of the "VnfInstance" structure + by adding unknown entries received in this attribute. + + This attribute is not intended for the modification of VimConnectionInfo entries passed + earlier; for that, the VnfInfoModificationRequest structure shall be used. + + This attribute shall only be supported when VNF-related Resource Management in direct mode + is applicable. In direct mode, this parameter shall be absent if the VIM information was + configured to the VNFM in another way, present otherwise. See note 1. type: object additionalProperties: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" @@ -321,25 +299,8 @@ definitions: $ref: "#/definitions/GrantInfo" vimAssets: description: > - Information about assets for the VNF that are managed by the NFVO - in the VIM, such as software images and virtualised compute resource - flavours. - The Grant response allows the NFVO to pass to the VNFM VIM assets - related to the VNF package that is identified by the vnfdId attribute - in the corresponding Grant request. The NFVO may send in each Grant - response the full set of VIM assets related to the VNF package defined - by the vnfdId in the related Grant request, but shall send this information - if the vnfdId in the related Grant request differs from the vnfdId passed - in the previous Grant request, or if the Grant response is related to an - InstantiateVnf operation. - The set of VIM assets shall not change between subsequent Grant responses - if the vnfdId has not changed. During each LCM operation occurrence, - the VIM assets that relate to the VNF package identified by the current value - of the vnfdId attribute in the “VnfInstance” structure shall be used by the - VNFM for newly created resources. If the VNF package identifier of the - VNF instance has been updated, VIM assets that relate to the previously-used - VNF package(s), and that were communicated in previous Grant responses, - apply to existing resources. + Information about assets for the VNF that are managed by the NFVO in the VIM, + such as software images and virtualised compute resource flavours. See note 3. type: object properties: computeResourceFlavours: @@ -365,70 +326,15 @@ definitions: $ref: "#/definitions/VimSnapshotResource" extVirtualLinks: description: > - Information about external VLs to connect the VNF to. - For any VNF lifecycle management operation request that allows to pass - "extVirtualLinks" and/or "extManagedVirtualLinks" parameters, such as - InstantiateVnf, ChangeVnfFlavour, ChangeExtVnfConnectivity or - ChangeCurrentVnfPackage, the NFVO may provide the "extVirtualLinks" - and/or "extManagedVirtualLinks" attributes in the Grant to override - the values passed in these parameters previously in the associated - VNF lifecycle management request, if the lifecycle management - request has originated from the NFVO itself. The NFVO shall - not provide the "extVirtualLinks" and/or "extManagedVirtualLinks" - attributes in the Grant otherwise. - In case of granting an InstantiateVnf request that has originated from the NFVO - and that did not contain the "extVirtualLinks" attribute, this attribute shall be - set by the NFVO. Further in case of granting an InstantiateVnf request that has - originated from the NFVO and that did not contain the "extManagedVirtualLinks" - attribute, this attribute shall be set by the NFVO if there is the need to provide - information about externally-managed virtual links. - - If this attribute is present , it need not contain - those entries that are unchanged compared to the entries that were passed - in the LCM operation which is related to this granting exchange. - External and/or externally-managed internal VLs can be passed in VNF - lifecycle management operation requests such as InstantiateVnf, ChangeVnfFlavor, - ChangeExtVnfConnectivity or ChangeCurrentVnfPackage and/or in the grant response. - The NFVO may choose to override in the grant response external and/or - externally-managed VL instances that have been passed previously in the - associated VNF lifecycle management request, if the lifecycle management request - has originated from the NFVO itself. - In case of granting an InstantiateVnf request that has originated from the NFVO - and that did not contain the "extVirtualLinks" attribute, this attribute shall be - set by the NFVO. Further in case of granting an InstantiateVnf request that has - originated from the NFVO and that did not contain the "extManagedVirtualLinks" - attribute, this attribute shall be set by the NFVO if there is the need to provide - information about externally-managed virtual links. + Information about external VLs to connect the VNF to. See notes 5 and 7. If this attribute + is present according to note 5 or note 7, it need not contain those entries that are unchanged + compared to the entries that were passed in the LCM operation which is related to this granting exchange. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" extManagedVirtualLinks: description: > - Information about internal VLs that are managed by other entities - than the VNFM. - The indication of externally-managed internal VLs is needed in case - networks have been pre-configured for use with certain VNFs, for - instance to ensure that these networks have certain properties such - as security or acceleration features, or to address particular - network topologies. The present document assumes that - externally-managed internal VLs are managed by the NFVO and created - towards the VIM. - For any VNF lifecycle management operation request that allows to pass - "extVirtualLinks" and/or "extManagedVirtualLinks" parameters, such as - InstantiateVnf, ChangeVnfFlavour, ChangeExtVnfConnectivity or - ChangeCurrentVnfPackage, the NFVO may provide the "extVirtualLinks" - and/or "extManagedVirtualLinks" attributes in the Grant to override - the values passed in these parameters previously in the associated - VNF lifecycle management request, if the lifecycle management - request has originated from the NFVO itself. The NFVO shall - not provide the "extVirtualLinks" and/or "extManagedVirtualLinks" - attributes in the Grant otherwise. - In case of granting an InstantiateVnf request that has originated from the NFVO - and that did not contain the "extVirtualLinks" attribute, this attribute shall be - set by the NFVO. Further in case of granting an InstantiateVnf request that has - originated from the NFVO and that did not contain the "extManagedVirtualLinks" - attribute, this attribute shall be set by the NFVO if there is the need to provide - information about externally-managed virtual links. + Information about internal VLs that are managed by other entities than the VNFM. See notes 4, 5 and 7. type: array items: $ref: "../../VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtManagedVirtualLinkData" @@ -461,8 +367,11 @@ definitions: ResourceDefinition: description: > - This type provides information of an existing or proposed resource used - by the VNF. + This type provides information of an existing or proposed resource used by the VNF. + It shall comply with the provisions defined in table 9.5.3.2-1. + + NOTE: The use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 provide examples + for such a configuration. type: object required: - id @@ -511,15 +420,11 @@ definitions: secondaryResourceTemplateId: description: > Reference to a secondary resource template (VnfExtCpd) in the VNFD. - Shall be present if type="LINKPORT" and the linkport is shared by two external - CP instances, one exposing a VNFC CP instance (based on a VnfExtCpd referenced - by "resourceTemplateId") and another one exposing a VIP CP instance (based on a - VnfExtCpd referenced by this attribute). Shall be absent otherwise. - - The use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 [1] provide examples for such a configuration. - + Shall be present if type="LINKPORT" and the linkport is shared by two external CP instances, + one exposing a VNFC CP instance (based on a VnfExtCpd referenced by "resourceTemplateId") and + another one exposing a VIP CP instance (based on a VnfExtCpd referenced by this attribute). + Shall be absent otherwise. See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - resource: description: > Resource information for an existing resource. Shall be present for @@ -877,7 +782,20 @@ definitions: SnapshotResourceDefinition: description: > - This type represents resource definition information related to a snapshot resource. + This type represents resource definition information related to a snapshot resource. + It shall comply with the provisions defined in table 9.5.3.11-1. + + NOTE 1: If present, the value of the "vduId" (for a related VDU) in the "VnfcResourceInfo" + referred by the "vnfcInfoId" of the "VnfcSnapshotInfo" shall match the value of the + "vduId" in the resource definition that is signalled in the granting request. + NOTE 2: For snapshot resource definitions extracted from a VNF snapshot package, only the + "vnfcSnapshotId" and "storageSnapshotId" (in case of a storage type of resource) + are applicable. If the snapshot resource definition is generated as part of a VNF + snapshot created by the VNFM (that is, not extracted from a VNF snapshot package), + the "snapshotResource" is applicable. This is a similar specification as the one + defined with the "vduId", "resourceTemplateId" and "resource" attributes provided in + the ResourceDefinition, but in this case applicable to resources that are defined from + VNF snapshots instead of VNFD. type: object required: - vnfSnapshotId @@ -890,53 +808,25 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfcSnapshotId: description: > - Reference to the information about a specific VNFC snapshot (refer to "VnfcSnapshotInfo") - of the VNF snapshot. The identifier is unique within the scope of a VNF snapshot, identified - by the "vnfSnapshotId" attribute. Shall only be present if the operation to be granted - concerns to reverting the VNF to a VNF snapshot, and the resource is planned to be added - based on the VNFC snapshot, and the type of resource is "COMPUTE" or "STORAGE". - - If present, the value of the "vduId" (for a related VDU) in the "VnfcResourceInfo" referred - by the "vnfcInfoId" of the "VnfcSnapshotInfo" shall match the value of the "vduId" in the - resource definition that is signalled in the granting request. - - For snapshot resource definitions extracted from a VNF snapshot package, only the - "vnfcSnapshotId" and "storageSnapshotId" (in case of a storage type of resource) are applicable. - If the snapshot resource definition is generated as part of a VNF snapshot created by the VNFM - (that is, not extracted from a VNF snapshot package), the "snapshotResource" is applicable. - This is a similar specification as the one defined with the "vduId", "resourceTemplateId" and - "resource" attributes provided in the ResourceDefinition, but in this case applicable to resources - that are defined from VNF snapshots instead of VNFD. + Reference to the information about a specific VNFC snapshot (refer to "VnfcSnapshotInfo") of + the VNF snapshot. The identifier is unique within the scope of a VNF snapshot, identified by + the "vnfSnapshotId" attribute. Shall only be present if the operation to be granted concerns + to reverting the VNF to a VNF snapshot, and the resource is planned to be added based on the + VNFC snapshot, and the type of resource is "COMPUTE" or "STORAGE". See notes 1 and 2. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" storageSnapshotId: description: > - Reference to a snapshotted storage resource associated to the VNFC snapshot. Shall only be - present if the operation to be granted concerns to reverting the VNF to a VNF snapshot, - and the storage resource is planned to be added based on the VNFC snapshot, and the type - of resource is "STORAGE". - - For snapshot resource definitions extracted from a VNF snapshot package, only the - "vnfcSnapshotId" and "storageSnapshotId" (in case of a storage type of resource) are applicable. - If the snapshot resource definition is generated as part of a VNF snapshot created by the VNFM - (that is, not extracted from a VNF snapshot package), the "snapshotResource" is applicable. - This is a similar specification as the one defined with the "vduId", "resourceTemplateId" and - "resource" attributes provided in the ResourceDefinition, but in this case applicable to resources - that are defined from VNF snapshots instead of VNFD. + Reference to a snapshotted storage resource associated to the VNFC snapshot. Shall only be present + if the operation to be granted concerns to reverting the VNF to a VNF snapshot, and the storage + resource is planned to be added based on the VNFC snapshot, and the type of resource is "STORAGE". + See note 2. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" snapshotResource: description: > - Resource information for an existing snapshot resource. Shall only be present if the - operation to be granted concerns to reverting the VNF to a VNF snapshot and the resource is - planned to be added based on an existing VNF snapshot that has been created by the VNFM. - Shall be absent otherwise. - - For snapshot resource definitions extracted from a VNF snapshot package, only the - "vnfcSnapshotId" and "storageSnapshotId" (in case of a storage type of resource) are applicable. - If the snapshot resource definition is generated as part of a VNF snapshot created by the VNFM - (that is, not extracted from a VNF snapshot package), the "snapshotResource" is applicable. - This is a similar specification as the one defined with the "vduId", "resourceTemplateId" and - "resource" attributes provided in the ResourceDefinition, but in this case applicable to resources - that are defined from VNF snapshots instead of VNFD. + Resource information for an existing snapshot resource. Shall only be present if the operation to + be granted concerns to reverting the VNF to a VNF snapshot and the resource is planned to be added + based on an existing VNF snapshot that has been created by the VNFM. Shall be absent otherwise. + See note 2. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" VimSnapshotResource: diff --git a/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml b/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml index 5711bddd..b65b2b57 100644 --- a/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml +++ b/src/SOL003/VNFPackageManagement/definitions/SOL003VNFPackageManagement_def.yaml @@ -4,7 +4,13 @@ definitions: VnfPkgInfo: description: > - This type represents the information of an VNF package. + This type represents the information of a VNF package. It shall comply with the provisions defined in table 10.5.2.2-1. + + NOTE 1: If the value of the onboardingState attribute is not equal to "ONBOARDED", the value of the operationalState + attribute shall be equal to "DISABLED". + NOTE 2: If the value of the onboardingState attribute is not equal to "ONBOARDED", the value of the usageState attribute + shall be equal to "NOT_IN_USE". + NOTE 3: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. type: object required: - id @@ -111,23 +117,15 @@ definitions: $ref: "#/definitions/PackageOnboardingStateType" operationalState: description: > - Operational state of the VNF package. - If the value of the onboardingState attribute is not equal to - "ONBOARDED", the value of the operationalState attribute shall be - equal to "DISABLED". + Operational state of the VNF package. See note 1. $ref: "#/definitions/PackageOperationalStateType" usageState: description: > - Usage state of the VNF package. - If the value of the onboardingState attribute is not equal to - "ONBOARDED", the value of the usageState attribute shall be - equal to "NOT_IN_USE". + Usage state of the VNF package. See note 2. $ref: "#/definitions/PackageUsageStateType" vnfmInfo: description: > - Specifies VNFMs compatible with the VNF. This information is copied from the VNFD. - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on - TOSCA specifications. + Specifies VNFMs compatible with the VNF. This information is copied from the VNFD. See note 3. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/String" userDefinedData: description: > @@ -229,9 +227,13 @@ definitions: VnfPackageSoftwareImageInfo: description: > - This type represents an artifact contained in or external to a VNF package which - represents a software image. - It shall comply with provisions defined in table 10.5.3.2-1. + This type represents an artifact contained in or external to a VNF package which represents a software image. + It shall comply with the provisions defined in table 10.5.3.2-1. + + NOTE 1: The list of permitted values was taken from "Container formats" in OpenStack® documentation: "Disk and container formats for images" + (Available at https://docs.openstack.org/glance/pike/user/formats.html). + NOTE 2: The list of permitted values was adapted from "Disk formats" in OpenStack® documentation: "Disk and container formats for images" + (Available at https://docs.openstack.org/glance/pike/user/formats.html). type: object required: - id @@ -284,8 +286,7 @@ definitions: - DOCKER: docker container format - OVA: OVF package in a tarfile - OVF: OVF container format - The list of permitted values was taken from "Container formats" in - http://docs.openstack.org/image-guide/image-formats.html + See note 1. type: string enum: - AKI @@ -312,8 +313,7 @@ definitions: - VHD: a common disk image format - VHDX: enhanced version of VHD format - VMDK: a common disk image format - The list of permitted values was adapted from "Disk formats" in - http://docs.openstack.org/image-guide/image-formats.html + See note 2. type: string enum: - AKI @@ -456,14 +456,18 @@ definitions: PkgmNotificationsFilter: description: > - This type represents a subscription filter related to notifications - related to VNF package management. - At a particular nesting level in the filter structure, the following - applies: All attributes shall match in order for the filter to match - (logical "and" between different filter attributes). If an attribute - is an array, the attribute shall match if at least one of the values - in the array matches (logical "or" between the values of one filter - attribute). + This type represents a subscription filter related to notifications related to VNF package management. + It shall comply with the provisions defined in table 10.5.3.4-1. + At a particular nesting level in the filter structure, the following applies: All attributes shall match + in order for the filter to match (logical "and" between different filter attributes). If an attribute is + an array, the attribute shall match if at least one of the values in the array matches (logical "or" + between the values of one filter attribute). + + NOTE 1: The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the + notification types to facilitate automated code generation systems. + NOTE 2: The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" are alternatives to reference to + particular VNF packages in a filter. They should not be used both in the same filter instance, but + one alternative should be chosen. type: object anyOf: - oneOf: @@ -480,9 +484,7 @@ definitions: Permitted values: - VnfPackageOnboardingNotification - VnfPackageChangeNotification - The permitted values of the "notificationTypes" attribute are - spelled exactly as the names of the notification types to - facilitate automated code generation systems. + See note 1. type: array items: type: string @@ -493,10 +495,7 @@ definitions: description: > If present, match VNF packages that contain VNF products from certain providers. - The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" - are alternatives to reference to particular VNF packages in a - filter. They should not be used both in the same filter instance, - but one alternative should be chosen. + See note 2. type: array items: type: object @@ -548,10 +547,7 @@ definitions: vnfdId: description: > Match VNF packages with a VNFD identifier listed in the attribute. - The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" - are alternatives to reference to particular VNF packages in a - filter. They should not be used both in the same filter instance, - but one alternative should be chosen. + See note 2. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" @@ -562,10 +558,7 @@ definitions: May be present if the "notificationTypes" attribute contains the value "VnfPackageChangeNotification" and shall be absent otherwise. - The attributes "vnfProductsFromProviders", "vnfdId" and "vnfPkgId" - are alternatives to reference to particular VNF packages in a - filter. They should not be used both in the same filter instance, - but one alternative should be chosen. + See note 2. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" diff --git a/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml b/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml index 7677c78f..24963fe4 100644 --- a/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml +++ b/src/SOL003/VNFSnapshotPackageManagement/definitions/SOL003VNFSnapshotPackageManagement_def.yaml @@ -4,7 +4,10 @@ definitions: VnfSnapshotPkgInfo: description: > - This type represents the information of a VNF snapshot package. + This type represents the information of a VNF snapshot package. It shall comply with the provisions defined in table 12.5.2.2-1. + + NOTE: The attribute shall not be present before the VNF snapshot package content has been uploaded or built. Otherwise, this + attribute shall be present unless it has been requested to be excluded per attribute selector. type: object required: - id @@ -25,9 +28,7 @@ definitions: a globally unique way. It is created during the "build VNF snapshot package operation". Multiples instances of the same VNF snapshot package share the same vnfSnapshotPkgUniqueId. - NOTE: The attribute shall not be present before the VNF snapshot package content - has been uploaded or built. Otherwise, this attribute shall be present unless it - has been requested to be excluded per attribute selector. + See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" name: description: > @@ -38,17 +39,13 @@ definitions: Checksum of the stored VNF snapshot package. Hash algorithms applicable to VNF snapshot packages are defined in ETSI GS NFV-SOL 010. - NOTE: The attribute shall not be present before the VNF snapshot package content - has been uploaded or built. Otherwise, this attribute shall be present unless it - has been requested to be excluded per attribute selector. + See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Checksum" createdAt: description: > Timestamp indicating when the VNF snapshot package creation has been completed. - NOTE: The attribute shall not be present before the VNF snapshot package content - has been uploaded or built. Otherwise, this attribute shall be present unless it - has been requested to be excluded per attribute selector. + See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" vnfSnapshotId: description: > @@ -61,9 +58,7 @@ definitions: of the VNF snapshot and contained in the VNF snapshot package. This identifier is allocated by the VNFM during the VNF snapshot creation. - NOTE: The attribute shall not be present before the VNF snapshot package content - has been uploaded or built. Otherwise, this attribute shall be present unless it - has been requested to be excluded per attribute selector. + See note. type: object items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" @@ -86,9 +81,7 @@ definitions: Information about VNF snapshot artifacts that are VNFC snapshot images. Every local and external snapshot image shall be included. No other artifacts shall be included. - NOTE: The attribute shall not be present before the VNF snapshot package content - has been uploaded or built. Otherwise, this attribute shall be present unless it - has been requested to be excluded per attribute selector. + See note. type: object items: $ref: "#/definitions/VnfcSnapshotImageInfo" @@ -96,9 +89,7 @@ definitions: description: > Information about VNF snapshot artifacts that are not VNFC snapshot images. - NOTE: The attribute shall not be present before the VNF snapshot package content - has been uploaded or built. Otherwise, this attribute shall be present unless it - has been requested to be excluded per attribute selector. + See note. type: object items: $ref: "#/definitions/SnapshotPkgArtifactInfo" @@ -187,8 +178,13 @@ definitions: VnfcSnapshotImageInfo: description: > - This type represents an artifact contained in a VNF snapshot package which - represents a snapshot image. + This type represents an artifact contained in a VNF snapshot package which represents a snapshot image. + It shall comply with the provisions defined in table 12.5.3.2-1. + + NOTE 1: The list of permitted values was taken from "Container formats" in OpenStack® documentation: "Disk and container formats for images" + (Available at https://docs.openstack.org/glance/pike/user/formats.html). + NOTE 2: The list of permitted values was adapted from "Disk formats" in OpenStack® documentation: "Disk and container formats for images" + (Available at https://docs.openstack.org/glance/pike/user/formats.html). type: object required: - id @@ -212,7 +208,7 @@ definitions: - for an image artifact corresponding to a storage snapshot resource, the value is copied from the "storageResourceId" attribute in the "VnfcSnapshotInfo" of the corresponding storage snapshot resource. When onboarding an existing VNF snapshot package, the NFVO shall set the value of this attribute as provided - in the manifest file in the VNF snapshot package (refer to ETSI GS NFV-SOL 010 [i.14]). + in the manifest file in the VNF snapshot package (refer to ETSI GS NFV-SOL 010). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierLocal" name: description: > @@ -245,8 +241,7 @@ definitions: - OVA: OVF package in a tarfile - OVF: OVF container format - NOTE: The list of permitted values was taken from "Container formats" in [i.5] - (OpenStack® documentation: "Disk and container formats for images"). + See note 1. type: string enum: - AKI @@ -272,8 +267,7 @@ definitions: - VHDX: enhanced version of VHD format - VMDK: a common disk image format - NOTE: The list of permitted values was adapted from "Disk formats" in [i.5] - (OpenStack® documentation: "Disk and container formats for images"). + See note 2. type: string enum: - AKI diff --git a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml index 8ba60530..88dcbf32 100644 --- a/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFFaultManagement_def.yaml @@ -256,13 +256,15 @@ definitions: FmNotificationsFilter: description: > - This type represents a subscription filter related to notifications - about VNF faults. - At a particular nesting level in the filter structure, the following - applies: All attributes shall match in order for the filter to match - (logical "and" between different filter attributes). If an attribute is - an array, the attribute shall match if at least one of the values in the - array matches (logical "or" between the values of one filter attribute). + This type represents a subscription filter related to notifications about VNF faults. + It shall comply with the provisions defined in table 7.5.3.2-1. + At a particular nesting level in the filter structure, the following applies: All attributes + shall match in order for the filter to match (logical "and" between different filter attributes). + If an attribute is an array, the attribute shall match if at least one of the values in the array + matches (logical "or" between the values of one filter attribute). + + NOTE: The permitted values of the "notificationTypes" attribute are spelled exactly as the names + of the notification types to facilitate automated code generation systems. type: object properties: vnfInstanceSubscriptionFilter: @@ -271,14 +273,13 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter" notificationTypes: description: > - Match particular notification types. + Match particular notification types. + Permitted values: - * AlarmNotification - * AlarmClearedNotification - * AlarmListRebuiltNotification - The permitted values of the "notificationTypes" attribute are - spelled exactly as the names of the notification types to - facilitate automated code generation systems. + - AlarmNotification + - AlarmClearedNotification + - AlarmListRebuiltNotification + See note. type: array items: type: string diff --git a/src/definitions/SOL002SOL003VNFIndicator_def.yaml b/src/definitions/SOL002SOL003VNFIndicator_def.yaml index 978c3500..14ed7fdc 100644 --- a/src/definitions/SOL002SOL003VNFIndicator_def.yaml +++ b/src/definitions/SOL002SOL003VNFIndicator_def.yaml @@ -4,7 +4,9 @@ definitions: VnfIndicator: description: > - This type represents a VNF indicator value. + This type represents a VNF indicator value. It shall comply with the provisions defined in table 8.5.2.2-1. + + NOTE: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. type: object required: - id @@ -23,10 +25,7 @@ definitions: type: string value: description: > - Provides the value of the indicator. The value format is defined in - the VNFD. - ETSI GS NFV-SOL 001 specifies the structure and format of the - VNFD based on TOSCA specifications. + Provides the value of the indicator. The value format is defined in the VNFD. See note. type: object vnfInstanceId: description: > @@ -51,13 +50,15 @@ definitions: VnfIndicatorNotificationsFilter: description: > - This type represents a subscription filter for notifications - related to VNF indicators. - At a particular nesting level in the filter structure, the following - applies: All attributes shall match in order for the filter to match - (logical "and" between different filter attributes). If an attribute is - an array, the attribute shall match if at least one of the values in the - array matches (logical "or" between the values of one filter attribute). + This type represents a subscription filter for notifications related to VNF indicators. + It shall comply with the provisions defined in table 8.5.3.2-1. + At a particular nesting level in the filter structure, the following applies: + All attributes shall match in order for the filter to match (logical "and" between different + filter attributes). If an attribute is an array, the attribute shall match if at least one of + the values in the array matches (logical "or" between the values of one filter attribute). + + NOTE: The permitted values of the "notificationTypes" attribute are spelled exactly as the names + of the notification types to facilitate automated code generation systems. type: object properties: vnfInstanceSubscriptionFilter: @@ -66,13 +67,12 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter" notificationTypes: description: > - Match particular notification types. + Match particular notification types. + Permitted values: - * VnfIndicatorValueChangeNotification - * SupportedIndicatorsChangeNotification - The permitted values of the "notificationTypes" attribute are spelled exactly - as the names of the notification types to facilitate automated code generation - systems. + - VnfIndicatorValueChangeNotification + - SupportedIndicatorsChangeNotification + See note. type: string enum: - VnfIndicatorValueChangeNotification @@ -152,9 +152,10 @@ definitions: VnfIndicatorValueChangeNotification: description: > - This type represents a VNF indicator value change notification. - The notification shall be triggered by the VNFM when the value of an - indicator has changed. + This type represents a VNF indicator value change notification. It shall comply with the provisions defined in table 8.5.2.5-1. + The notification shall be triggered by the VNFM when the value of an indicator has changed. + + NOTE: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. type: object required: - id @@ -198,10 +199,7 @@ definitions: type: string value: description: > - Provides the value of the VNF indicator. The value format is defined - in the VNFD. - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD - based on TOSCA specifications. + Provides the value of the VNF indicator. The value format is defined in the VNFD. See note. type: object vnfInstanceId: description: > @@ -229,9 +227,12 @@ definitions: description: > This type represents a notification to inform the receiver that the set of indicators supported by a VNF instance has changed. It shall comply with the provisions defined in table 8.5.2.6-1. + The notification shall be triggered by the VNFM when the set of supported VNF indicators has changed as a side effect of the "Change current VNF package" operation. It may be triggered by the VNFM when a VNF has been instantiated. + + NOTE: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. type: object required: - id @@ -281,10 +282,7 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" name: description: > - Human readable name of the VNF indicator. - Shall be present if defined in the VNFD. - ETSI GS NFV-SOL 001 specifies the structure and format of - the VNFD based on TOSCA specifications. + Human readable name of the VNF indicator. Shall be present if defined in the VNFD. See note. type: string _links: description: > diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 211a00a9..4e508d99 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -65,8 +65,12 @@ definitions: ScaleVnfToLevelRequest: description: > - This type represents request parameters for the "Scale VNF to Level" - operation. + This type represents request parameters for the "Scale VNF to Level" operation. + It shall comply with the provisions defined in table 5.5.2.6-1. See clause B.2 + for an explanation of VNF scaling. + + NOTE: Either the instantiationLevelId attribute or the scaleInfo attribute shall + be included. type: object anyOf: - oneOf: @@ -79,15 +83,13 @@ definitions: description: > Identifier of the target instantiation level of the current deployment flavour to which the VNF is requested to be scaled. - Either the instantiationLevelId attribute or the scaleInfo attribute - shall be included. + See note. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" scaleInfo: description: > For each scaling aspect of the current deployment flavour, indicates the target scale level to which the VNF is to be scaled. - Either the instantiationLevelId attribute or the scaleInfo attribute - shall be included. + See note. type: array items: $ref: "#/definitions/ScaleInfo" @@ -241,6 +243,15 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Link" ExtVirtualLinkInfo: + description: > + This type represents information about an external VL. It shall comply with the provisions defined in table 5.5.3.2-1. + + NOTE: This attribute reflects the current configuration information that has resulted from merging into this attribute + the "VnfExtCpData" information which was passed as part of the "ExtVirtualLinkData" structure in the input of the + most recent VNF LCM operation such as "InstantiateVnfRequest", "ChangeExtVnfConnectivityRequest", "ChangeVnfFlavourRequest" + or "ChangeCurrentVnfPkgRequest", or in the Grant response. If applying such change results in an empty list of + "currentVnfExtCpData" structure instances, the affected instance of "ExtVirtualLinkInfo" shall be removed from its + parent data structure. type: object required: - id @@ -266,14 +277,8 @@ definitions: $ref: "#/definitions/ExtLinkPortInfo" currentVnfExtCpData: description: > - Allows the API consumer to read the current CP configuration information for the connection of external CPs - to the external virtual link. - This attribute reflects the current configuration information that has resulted from merging into this attribute - the "VnfExtCpData" information which was passed as part of the "ExtVirtualLinkData" structure in the input of - the most recent VNF LCM operation such as "InstantiateVnfRequest", "ChangeExtVnfConnectivityRequest", - "ChangeVnfFlavourRequest" or "ChangeCurrentVnfPkgRequest", or has been provided by the NFVO during the granting - procedure. If applying such change results in an empty list of "currentVnfExtCpData" structure instances, the - affected instance of "ExtVirtualLinkInfo" shall be removed from its parent data structure. + Allows the API consumer to read the current CP configuration information for the connection of external CPs + to the external virtual link. See note. type: array items: $ref: "SOL002SOL003_def.yaml#/definitions/VnfExtCpData" @@ -301,6 +306,19 @@ definitions: type: integer VnfLinkPortInfo: + description: > + This type represents a link port of an internal VL of a VNF. It shall comply with the provisions + defined in table 5.5.3.8 1. + + NOTE 1: Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId + with cpInstanceType set to "VNFC_CP" and vipCpInstanceId (i.e. one or both of them) shall be + present for a VnfLinkPortInfo. In case both cpInstanceId with cpInstanceType set to "VNFC_CP" + and vipCpInstanceId are present, the two different CP instances share the linkport. + NOTE 2: Annex A.4 of ETSI GS NFV-IFA 007 provides examples for configurations where both vipCpInstanceId + and vnfcCpInstanceId are present (UC#5 and UC#5-b), only vnfcCpInstanceId is present (UC#2), or + only vipCpInstanceId is present (UC6 and UC#6-b). + NOTE 3: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" + attribute. type: object required: - id @@ -317,65 +335,51 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" cpInstanceId: description: > - When the link port is used for external connectivity by the VNF, - this attribute represents the identifier of the external CP of the - VNF to be connected to this link port. - When the link port is used for internal connectivity in the VNF, - this attribute represents the identifier of the VNFC CP to be connected to this link - port. - Shall be present when the link port is used for external - connectivity by the VNF. + When the link port is used for external connectivity by the VNF, this attribute represents the + identifier of the external CP associated with this link port. + + When the link port is used for internal connectivity in the VNF, this attribute represents the + identifier of the VNFC CP to be connected to this link port. + + Shall be present when the link port is used for external connectivity by the VNF. May be present if used to reference a VNFC CP instance. - There shall be at most one link port associated with any external - connection point instance or internal connection point - (i.e. VNFC CP) instance. - The value refers to an "extCpInfo" item in the VnfInstance or a - "vnfcCpInfo" item of a "vnfcResourceInfo" item in the VnfInstance. - Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId - with cpInstanceType set to "VNFC_CP" and vipCpInstanceId (i.e. one or both of them) shall - be present for a VnfLinkPortInfo. In case both cpInstanceId with cpInstanceType set to "VNFC_CP" - and vipCpInstanceId are present, the two different CP instances share the linkport. + There shall be at most one link port associated with any external connection point instance or + internal connection point (i.e. VNFC CP) instance. + The value refers to an "extCpInfo" item in the VnfInstance or a "vnfcCpInfo" item of a "vnfcResourceInfo" + item in the VnfInstance. See note 1. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" cpInstanceType: description: > - Type of the CP instance that is identified by cpInstanceId. - Shall be present if "cpInstanceId" is present, and shall be absent otherwise. + Type of the CP instance that is identified by cpInstanceId. + Shall be present if "cpInstanceId" is present and shall be absent otherwise. + Permitted values: - VNFC_CP: The link port is connected to a VNFC CP - EXT_CP: The link port is associated to an external CP. - Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId - with cpInstanceType set to "VNFC_CP" and vipCpInstanceId (i.e. one or both of them) shall - be present for a VnfLinkPortInfo. In case both cpInstanceId with cpInstanceType set to "VNFC_CP" - and vipCpInstanceId are present, the two different CP instances share the linkport. + - VNFC_CP: The link port is connected to a VNFC CP. + - EXT_CP: The link port is associated to an external CP. + See note 1. type: string enum: - VNFC_CP - EXT_CP - vipCpInstanceId: description: > - VIP CP instance of the VNF connected to this link port. May be present. - Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId with cpInstanceType - set to "VNFC_CP" and vipCpInstanceId (i.e. one or both of them) shall be present for a VnfLinkPortInfo. - In case both cpInstanceId with cpInstanceType set to "VNFC_CP" and vipCpInstanceId are present, the two - different CP instances share the linkport. - Annex A.4 of ETSI GS NFV-IFA 007 provides examples for configurations where both vipCpInstanceId and - vnfcCpInstanceId are present (UC#5 and UC#5-b), only vnfcCpInstanceId is present (UC#2), or only - vipCpInstanceId is present (UC6 and UC#6-b). + VIP CP instance of the VNF connected to this link port. May be present. + See notes 1, and 2. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - trunkResourceId: description: > Identifier of the trunk resource in the VIM. - Shall be present if the present link port corresponds to the parent port that the trunk resource is associated with. - The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute. + Shall be present if the present link port corresponds to the parent port that the trunk resource is associated with. + See note 3. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVim" - ExtLinkPortInfo: description: > - This type represents information about a link port of an external VL, - i.e. a port providing connectivity for the VNF to an NS VL. + This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to + an NS VL. It shall comply with the provisions defined in table 5.5.3.9-1. + + NOTE 1: The use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 provide examples for such a configuration. + NOTE 2: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute. type: object required: - id @@ -398,47 +402,38 @@ definitions: external connection point instance. The value refers to an "extCpInfo" item in the VnfInstance. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - secondaryCpInstanceId: description: > Additional external CP of the VNF connected to this link port. - If present, this attribute shall refer to a "secondary" ExtCpInfo - item in the VNF instance that exposes a virtual IP CP instance which - shares this linkport with the external CP instance referenced by the - "cpInstanceId" attribute. - The use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 - provide examples for such a configuration. - + If present, this attribute shall refer to a "secondary" ExtCpInfo item in the VNF instance that exposes a virtual + IP CP instance which shares this linkport with the external CP instance referenced by the "cpInstanceId" attribute. + See note 1. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - trunkResourceId: description: > - Identifier of the trunk resource in the VIM. - Shall be present if the present link port corresponds - to the parent port that the trunk resource is associated with. - The value of "trunkResourceId" is scoped by the value of "vimConnectionId" - in the "resourceHandle" attribute - + Identifier of the trunk resource in the VIM. + Shall be present if the present link port corresponds to the parent port that the trunk resource is associated with. + See note 2. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVim" - CpProtocolInfo: description: > - This type describes the protocol layer(s) that a CP uses together with - protocol-related information, like addresses. + This type describes the protocol layer(s) that a CP uses together with protocol-related information, like addresses. + It shall comply with the provisions defined in table 5.5.3.9b-1. + + NOTE: This attribute allows to signal the addition of further types of layer and protocol in future versions of the + present document in a backwards-compatible way. In the current version of the present document, only IP over + Ethernet is supported. type: object required: - layerProtocol properties: layerProtocol: description: > - The identifier of layer(s) and protocol(s) associated to the network - address information. + The identifier of layer(s) and protocol(s) associated to the network address information. + Permitted values: IP_OVER_ETHERNET - This attribute allows to signal the addition of further types of - layer and protocol in future versions of the present document in a - backwards-compatible way. In the current version of the present - document, only IP over Ethernet is supported. + See note. type: string enum: - IP_OVER_ETHERNET @@ -451,8 +446,19 @@ definitions: IpOverEthernetAddressInfo: description: > - This type represents information about a network address that has been - assigned. + This type represents information about a network address that has been assigned. + It shall comply with the provisions defined in table 5.5.3.10-1. + + NOTE 1: At least one of "macAddress" or "ipAddresses" shall be present. + NOTE 2: Exactly one of "addresses" or "addressRange" shall be present. + NOTE 3: If the Cp instance represents a subport in a trunk, segmentationId shall be present. + Otherwise it shall not be present. + NOTE 4: Depending on the NFVI networking infrastructure, the segmentationId may indicate the + actual network segment value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the + transport header of the packets or it may be an identifier used between the application + and the NFVI networking infrastructure to identify the network sub-interface of the trunk + port in question. In the latter case the NFVI infrastructure will map this local segmentationId + to whatever segmentationId is actually used by the NFVI’s transport technology. type: object anyOf: - required: @@ -467,25 +473,16 @@ definitions: properties: macAddress: description: > - MAC address, if assigned. - At least one of "macAddress" or "ipAddresses" shall be present. + MAC address, if assigned. See note 1. $ref: "SOL002SOL003_def.yaml#/definitions/MacAddress" segmentationId: description: > - Identification of the network segment to which the Cp instance connects to. If the Cp instance represents a - subport in a trunk, segmentationId shall be present. Otherwise it shall not be present. - Depending on the NFVI networking infrastructure, the segmentationId may indicate the actual network segment - value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the transport header of the packets or it may be an - identifier used between the application and the NFVI networking infrastructure to identify the network - sub-interface of the trunk port in question. In the latter case the NFVI infrastructure will map this local - segmentationId to whatever segmentationId is actually used by the NFVI’s transport technology. + Identification of the network segment to which the Cp instance connects to. See notes 3 and 4. type: string ipAddresses: description: > - Addresses assigned to the CP instance. Each entry represents IP - addresses assigned by fixed or dynamic IP address assignment per - subnet. - At least one of "macAddress" or "ipAddresses" shall be present. + Addresses assigned to the CP instance. Each entry represents IP addresses assigned by fixed or + dynamic IP address assignment per subnet. See note 1. type: array items: type: object @@ -502,9 +499,7 @@ definitions: - IPV6 addresses: description: > - Fixed addresses assigned (from the subnet defined by - "subnetId" if provided). - Exactly one of "addresses" or "addressRange" shall be present. + Fixed addresses assigned (from the subnet defined by "subnetId" if provided). See note 2. type: array items: $ref: "SOL002SOL003_def.yaml#/definitions/IpAddress" @@ -517,8 +512,7 @@ definitions: type: boolean addressRange: description: > - An IP address range used, e.g., in case of egress connections. - Exactly one of "addresses" or "addressRange" shall be present. + An IP address range used, e.g. in case of egress connections. See note 2. type: object required: - minAddress @@ -569,14 +563,15 @@ definitions: LifecycleChangeNotificationsFilter: description: > - This type represents a subscription filter related to notifications - about VNF lifecycle changes. - At a particular nesting level in the filter structure, the following - applies: All attributes shall match in order for the filter to match - (logical "and" between different filter attributes). If an attribute is - an array, the attribute shall match if at least one of the values in - the array matches (logical "or" between the values of one filter - attribute). + This type represents a subscription filter related to notifications about VNF lifecycle changes. + It shall comply with the provisions defined in table 5.5.3.12-1. + At a particular nesting level in the filter structure, the following applies: All attributes shall + match in order for the filter to match (logical "and" between different filter attributes). + If an attribute is an array, the attribute shall match if at least one of the values in the array + matches (logical "or" between the values of one filter attribute). + + NOTE: The permitted values of the "notificationTypes" attribute are spelled exactly as the names of + the notification types to facilitate automated code generation systems. type: object properties: vnfInstanceSubscriptionFilter: @@ -585,14 +580,13 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/VnfInstanceSubscriptionFilter" notificationTypes: description: > - Match particular notification types. + Match particular notification types. + Permitted values: - * VnfLcmOperationOccurrenceNotification - * VnfIdentifierCreationNotification - * VnfIdentifierDeletionNotification - The permitted values of the "notificationTypes" attribute are - spelled exactly as the names of the notification types to - facilitate automated code generation systems. + - VnfLcmOperationOccurrenceNotification + - VnfIdentifierCreationNotification + - VnfIdentifierDeletionNotification + See note. type: array items: type: string @@ -648,8 +642,13 @@ definitions: VnfExtCpInfo: description: > - This type represents information about an external CP of a VNF. - It shall comply with the provisions defined in table 5.5.3.25 1. + This type represents information about an external CP of a VNF. + It shall comply with the provisions defined in table 5.5.3.17 1. + + NOTE 1: The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" + are mutually exclusive. Exactly one shall be present. + NOTE 2: An external CP instance is not associated to a link port in the cases indicated for the + “extLinkPorts” attribute in clause 4.4.1.11. type: object required: - id @@ -691,9 +690,8 @@ definitions: $ref: "#/definitions/CpProtocolInfo" extLinkPortId: description: > - Identifier of the "ExtLinkPortInfo" structure inside the "ExtVirtualLinkInfo" structure. - Shall be present if the CP is associated to a link port. An external CP instance is not associated - to a link port in the cases indicated for the “extLinkPorts” attribute in clause 4.4.1.11. + Identifier of the "ExtLinkPortInfo" structure inside the "ExtVirtualLinkInfo" structure. + Shall be present if the CP is associated to a link port. See note 2. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" metadata: description: > @@ -701,28 +699,22 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" associatedVnfcCpId: description: > - Identifier of the "vnfcCpInfo" structure in "VnfcResourceInfo" structure that represents - the VNFC CP which is exposed by this external CP instance, either directly or via a floating IP address. - Shall be present in case this CP instance maps to a VNFC CP. - The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" are mutually - exclusive. Exactly one shall be present. + Identifier of the "vnfcCpInfo" structure in "VnfcResourceInfo" structure that represents the VNFC CP + which is exposed by this external CP instance, either directly or via a floating IP address. + Shall be present in case this CP instance maps to a VNFC CP. See note 1. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" associatedVipCpId: description: > - Identifier of the VIP CP instance that is exposed as this VnfExtCp instance, either directly or via - a floating IP address, and the related "VipCpInfo" structure in "VnfInstance". Shall be present if - the cpdId of this VnfExtCp has a vipCpd attribute. - The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" - are mutually exclusive. Exactly one shall be present. + Identifier of the VIP CP instance that is exposed as this VnfExtCp instance, either directly or via a + floating IP address, and the related "VipCpInfo" structure in "VnfInstance". Shall be present if the + cpdId of this VnfExtCp has a vipCpd attribute. See note 1. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" associatedVnfVirtualLinkId: description: > - Identifier of the "VnfVirtualLinkResourceInfo" structure that represents the internal VL - or of the "ExtManagedVirtualLinkInfo" structure that represents the externally-managed internal VL - which is exposed by this external CP instance. Shall be present in case this CP instance maps to an - internal VL (including externally-managed internal VL). - The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" are mutually - exclusive. Exactly one shall be present. + Identifier of the "VnfVirtualLinkResourceInfo" structure that represents the internal VL or of the + "ExtManagedVirtualLinkInfo" structure that represents the externally-managed internal VL which is + exposed by this external CP instance. Shall be present in case this CP instance maps to an internal + VL (including externally-managed internal VL). See note 1. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" VnfOperationalStateType: @@ -949,37 +941,36 @@ definitions: ModificationsTriggeredByVnfPkgChange: description: > - This type represents attribute modifications that were performed on an "Individual VNF instance" resource when - changing the current VNF package. The attributes that can be included consist of those requested to be modified - explicitly in the "ChangeCurrentVnfPkgRequest" data structure, and additional attributes of the "VnfInstance" - data structure that were modified implicitly during the operation. + This type represents attribute modifications that were performed on an "Individual VNF instance" resource + when changing the current VNF package. The attributes that can be included consist of those requested to + be modified explicitly in the "ChangeCurrentVnfPkgRequest" data structure, and additional attributes of the + "VnfInstance" data structure that were modified implicitly during the operation. + The "ModificationsTriggeredByVnfPkgChange" data type shall comply with the provisions defined in table 5.5.3.21-1. + + NOTE 1: This attribute represents the delta (semantics as per IETF RFC 7396, JSON Merge Patch) between the value + of the attribute at the start of the "Change current VNF package" operation and the value of the attribute + at its completion. + NOTE 2: If present, this attribute (which depends on the value of the "vnfdId" attribute) was modified implicitly + during the related operation and contains a copy of the value of the related attribute from the VNFD in the + VNF Package identified by the "vnfdId" attribute. type: object properties: vnfConfigurableProperties: description: > - This attribute signals the modifications of the "vnfConfigurableProperties" attribute in "VnfInstance" performed - by the operation and shall be present if that attribute was modified during the operation. + This attribute signals the modifications of the "vnfConfigurableProperties" attribute in "VnfInstance" performed + by the operation and shall be present if that attribute was modified during the operation. See note 1. In addition, the provisions in clause 5.7 shall apply. - This attribute represents the delta (semantics as per IETF RFC 7386, JSON Merge Patch) between the value - of the attribute at the start of the "Change current VNF package" operation and the value of the attribute at - its completion. $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" metadata: description: > - This attribute signals the modifications of the "metadata" attribute in "VnfInstance" performed by the operation - and shall be present if that attribute was modified during the operation. - This attribute represents the delta (semantics as per IETF RFC 7386, JSON Merge Patch) between the value - of the attribute at the start of the "Change current VNF package" operation and the value of the attribute at - its completion. + This attribute signals the modifications of the "metadata" attribute in "VnfInstance" performed by the operation and + shall be present if that attribute was modified during the operation. See note 1. $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > - This attribute signals the modifications of the "extensions" attribute in "VnfInstance" performed by the operation and - shall be present if that attribute was modified during the operation. + This attribute signals the modifications of the "extensions" attribute in "VnfInstance" performed by the operation and + shall be present if that attribute was modified during the operation. See note 1. In addition, the provisions in clause 5.7 shall apply. - This attribute represents the delta (semantics as per IETF RFC 7386, JSON Merge Patch) between the value - of the attribute at the start of the "Change current VNF package" operation and the value of the attribute at - its completion. $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vnfdId: description: > @@ -987,31 +978,19 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" vnfProvider: description: > - If present, this attribute signals the new value of the "vnfProvider" attribute in "VnfInstance". If present, - this attribute (which depends on the value of the "vnfdId" attribute) was modified implicitly during the related - operation, and contains a copy of the value of he related attribute from the VNFD in the VNF Package identified - by the "vnfdId" attribute. + If present, this attribute signals the new value of the "vnfProvider" attribute in "VnfInstance". See note 2. type: string vnfProductName: description: > - If present, this attribute signals the new value of the "vnfProductName" attribute in "VnfInstance". If present, - this attribute (which depends on the value of the "vnfdId" attribute) was modified implicitly during the related - operation, and contains a copy of the value of he related attribute from the VNFD in the VNF Package identified - by the "vnfdId" attribute. + If present, this attribute signals the new value of the "vnfProductName" attribute in "VnfInstance". See note 2. type: string vnfSoftwareVersion: description: > - If present, this attribute signals the new value of the "vnfSoftwareVersion" attribute in "VnfInstance". If present, - this attribute (which depends on the value of the "vnfdId" attribute) was modified implicitly during the related - operation, and contains a copy of the value of he related attribute from the VNFD in the VNF Package identified - by the "vnfdId" attribute. + If present, this attribute signals the new value of the "vnfSoftwareVersion" attribute in "VnfInstance". See note 2. $ref: "SOL002SOL003_def.yaml#/definitions/Version" vnfdVersion: description: > - If present, this attribute signals the new value of the "vnfdVersion" attribute in "VnfInstance". If present, - this attribute (which depends on the value of the "vnfdId" attribute) was modified implicitly during the related - operation, by copying the value of this attribute from the VNFD in the VNF Package identified by the "vnfdId" - attribute. + If present, this attribute signals the new value of the "vnfdVersion" attribute in "VnfInstance". See note 2. $ref: "SOL002SOL003_def.yaml#/definitions/Version" LcmOpOccNotificationVerbosityType: @@ -1067,13 +1046,11 @@ definitions: - REMOVED - MODIFIED - - - - VipCpInfo: description: > - This type provides information related to virtual IP (VIP) CP. + This type provides information related to virtual IP (VIP) CP. It shall comply with the provisions defined in table 5.5.3.22-1. + + NOTE: It is possible that there is no associated VnfcCp because the VIP CP is available but not associated yet. type: object required: - cpInstanceId @@ -1083,17 +1060,14 @@ definitions: description: > Identifier of this VIP CP instance and of this VipCpInfo information element. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - cpdId: description: > Identifier of the VIP Connection Point Descriptor, VipCpd, in the VNFD. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" - vnfExtCpId: description: > When the VIP CP is exposed as external CP of the VNF, the identifier of this external VNF CP instance. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - cpProtocolInfo: description: > Protocol information for this CP. There shall be one cpProtocolInfo for layer 3. @@ -1101,25 +1075,21 @@ definitions: type: array items: $ref: "#/definitions/CpProtocolInfo" - associatedVnfcCpIds: description: > - Identifiers of the VnfcCps that share the virtual IP addresses allocated to the VIP CP instance. - It is possible that there is no associated VnfcCp because the VIP CP is available but not associated yet. + Identifiers of the VnfcCps that share the virtual IP addresse allocated to the VIP CP instance. See note. type: array items: $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - vnfLinkPortId: description: > Identifier of the "VnfLinkPortInfo" structure in the "VnfVirtualLinkResourceInfo" or "ExtManagedVirtualLinkInfo" structure. Shall be present if the CP is associated to a link port on an internal VL (including externally-managed internal VL). $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - metadata: description: > Metadata about this VIP CP. type: array items: - $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" \ No newline at end of file diff --git a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml index 52e47ec2..5a94574d 100644 --- a/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFPerformanceManagement_def.yaml @@ -202,9 +202,17 @@ definitions: PerformanceReport: description: > - This type defines the format of a performance report provided by the VNFM to the EM as a result - of collecting performance information as part of a PM job. - The type shall comply with the provisions defined in table 6.5.2.10-1. + This type defines the format of a performance report provided by the VNFM to the NFVO as a result of collecting + performance information as part of a PM job. The type shall comply with the provisions defined in table 6.5.2.10-1. + + NOTE: The sub-object allows to structure the measured object but is not to be confused with sub-counters which allow + to structure the measurement value. + + EXAMPLE: + Measured object: VnfInstanceXYZ + Sub-object: VnfcInstance1 + Measurement: vCPU_utilization + Sub-counters: vCPU utilization of each of the vCPUs of VnfcInstance1 (vCPU utilization.vCPU1, vCPU_utilization.vCPU2, etc.). type: object required: - entries @@ -235,18 +243,9 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" subObjectInstanceId: description: > - Identifier of the sub-object instance of the measured object (i.e. of the measured object instance) - for which the performance metric is reported. - Shall be present if this is required in clause 6.2 of ETSI GS NFV-IFA 027 - for the related measured object type. - The sub-object allows to structure the measured object but is not to be confused - with sub-counters which allow to structure the measurement value. - EXAMPLE: - Measured object: VnfInstanceXYZ - Sub-object: VnfcInstance1 - Measurement: vCPU_utilization - Sub-counters: vCPU utilization of each of the vCPUs of VnfcInstance1 - (vCPU_utilization.vCPU1, vCPU_utilization.vCPU2, etc.). + Identifier of the sub-object instance of the measured object instance for which the performance + metric is reported. Shall be present if this is required in clause 6.2 of ETSI GS NFV-IFA 027 + for the related measured object type. See note. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" performanceMetric: description: > @@ -384,8 +383,9 @@ definitions: PmJobModifications: description: > - This type represents modifications to a PM job. - It shall comply with the provisions defined in table 6.5.2.12-1. + This type represents modifications to a PM job. It shall comply with the provisions defined in table 6.5.2.12-1. + + NOTE: At least one of the attributes defined in this type shall be present in request bodies. type: object oneOf: - required: @@ -395,22 +395,27 @@ definitions: properties: callbackUri: description: > - New value of the "callbackUri" attribute. - The value "null" is not permitted. See note. + New value of the "callbackUri" attribute. The value "null" is not permitted. See note. $ref: "SOL002SOL003_def.yaml#/definitions/Uri" authentication: description: > - New value of the "authentication" attribute, or "null" - to remove the attribute. If present in a request body, - these modifications shall be applied according to the - rules of JSON Merge Patch (see IETF RFC 7396). - This attribute shall not be present in response bodies. - At least one of the attributes defined in this type shall be present in request bodies. + New value of the "authentication" attribute, or "null" to remove the attribute. If present + in a request body, these modifications shall be applied according to the rules of JSON Merge + Patch (see IETF RFC 7396). + + This attribute shall not be present in response bodies. See note. $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" PmJobCriteria: description: > - Criteria of the collection of performance information. + This type represents collection criteria for PM jobs. It shall comply with the provisions defined in table 6.5.3.3-1. + + NOTE 1: At the end of each reportingPeriod, the API producer will inform the API consumer about availability of the + performance data collected for each completed collection period during this reportingPeriod. + The reportingPeriod should be equal to or a multiple of the collectionPeriod. In the latter case, the performance + data for the collection periods within one reporting period are reported together. + NOTE 2: In particular when choosing short collection and reporting periods, the number of PM jobs that can be supported + depends on the capability of the producing entity. type: object required: - collectionPeriod @@ -437,15 +442,8 @@ definitions: type: string collectionPeriod: description: > - Specifies the periodicity at which the API producer will collect - performance information. The unit shall be seconds. - At the end of each reportingPeriod, the API producer will inform the - consumer about availability of the performance data collected for - each completed collection period during this reportingPeriod. The - reportingPeriod should be equal to or a multiple of the - collectionPeriod. In the latter case, the performance data for the - collection periods within one reporting period are reported - together. + SSpecifies the periodicity at which the API producer will collect performance information. + The unit shall be seconds. See notes 1 and 2. type: integer minimum: 0 maximum: 1024 @@ -453,15 +451,8 @@ definitions: # Done using min and max params to set a range for positive int. reportingPeriod: description: > - Specifies the periodicity at which the API producer will report to the - API consumer. about performance information. The unit shall be seconds. - At the end of each reportingPeriod, the API producer will inform the - API consumer about availability of the performance data collected for - each completed collection period during this reportingPeriod. The - reportingPeriod should be equal to or a multiple of the - collectionPeriod. In the latter case, the performance data for the - collection periods within one reporting period are reported - together. + Specifies the periodicity at which the API producer will report to the API consumer + about performance information. The unit shall be seconds. See notes 1 and 2. type: integer minimum: 0 maximum: 1024 @@ -541,8 +532,9 @@ definitions: ThresholdModifications: description: > - This type represents modifications to a threshold. - It shall comply with the provisions defined in table 6.5.2.11-1. + This type represents modifications to a threshold. It shall comply with the provisions defined in table 6.5.2.11-1. + + NOTE: At least one of the attributes defined in this type shall be present in request bodies. type: object oneOf: - required: @@ -552,22 +544,25 @@ definitions: properties: callbackUri: description: > - New value of the "callbackUri" attribute. - The value "null" is not permitted. See note. + New value of the "callbackUri" attribute. The value "null" is not permitted. See note. $ref: "SOL002SOL003_def.yaml#/definitions/Uri" authentication: description: > - New value of the "authentication" attribute, or "null" - to remove the attribute. If present in a request body, - these modifications shall be applied according to the - rules of JSON Merge PATCH (see IETF RFC 7396). - This attribute shall not be present in response bodies. - At least one of the attributes defined in this type shall be present in request bodies. + New value of the "authentication" attribute, or "null" to remove the attribute. If present + in a request body, these modifications shall be applied according to the rules of JSON Merge + Patch (see IETF RFC 7396). + This attribute shall not be present in response bodies. See note. $ref: "SOL002SOL003_def.yaml#/definitions/SubscriptionAuthentication" ThresholdCriteria: description: > - This type represents criteria that define a threshold. + This type represents criteria that define a threshold. It shall comply with the provisions defined in table 6.5.3.4-1. + + NOTE 1: In the present document, simple thresholds are defined. The definition of additional threshold types is left for + future specification. + NOTE 2: The hysteresis is defined to prevent storms of threshold crossing notifications. When processing a request to create + a threshold, implementations should enforce a suitable minimum value for this attribute (e.g. override the value or + reject the request). type: object required: - performanceMetric @@ -580,13 +575,11 @@ definitions: type: string thresholdType: description: > - Type of threshold. This attribute determines which other attributes - are present in the data structure. + Type of threshold. This attribute determines which other attributes are present in the data structure. + Permitted values: - * SIMPLE: Single-valued static threshold - In the present document, simple thresholds are defined. The - definition of additional threshold types is left for future - specification. + - SIMPLE: Single-valued static threshold. + See note 1. type: string enum: - SIMPLE @@ -609,18 +602,12 @@ definitions: format: float hysteresis: description: > - The hysteresis of the threshold. Shall be represented as a - non-negative floating point number. - A notification with crossing direction "UP" will be generated if - the measured value reaches or exceeds - "thresholdValue" + "hysteresis". A notification with crossing - direction "DOWN" will be generated if the measured value reaches - or undercuts "thresholdValue" - "hysteresis". - The hysteresis is defined to prevent storms of threshold - crossing notifications. When processing a request to create a - threshold, implementations should enforce a suitable minimum - value for this attribute (e.g. override the value or reject the - request). + The hysteresis of the threshold. + Shall be represented as a non-negative floating point number. + + A notification with crossing direction "UP" will be generated if the measured value reaches or exceeds + "thresholdValue" + "hysteresis". A notification with crossing direction "DOWN" will be generated if the + measured value reaches or undercuts "thresholdValue" - "hysteresis". See note 2. # TODO: This should be floating. # Done using Number type and floating format. type: number @@ -628,15 +615,18 @@ definitions: maximum: 1024 format: float - ThresholdCrossedNotification: description: > - This type represents a notification that is sent when a threshold has - been crossed. - The timing of sending this notification is determined by the capability - of the producing entity to evaluate the threshold crossing condition. - The notification shall be triggered by the VNFM when a threshold has - been crossed. + This type represents a notification that is sent when a threshold has been crossed. + It shall comply with the provisions defined in table 6.5.2.4-1. + + NOTE: The timing of sending this notification is determined by the capability of the + producing entity to evaluate the threshold crossing condition. + + The notification shall be triggered by the VNFM when a threshold has been crossed. + + NOTE: The sub-object allows to structure the measured object, but is not to be confused + with sub-counters which allow to structure the measurement. type: object required: - id @@ -687,11 +677,10 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" subObjectInstanceId: description: > - Identifier of the sub-object of the measured object (i.e. a VNFC instance) - to which the measurement applies. - Shall be present if this is required in an external measurement specification. - The sub-object allows to structure the measured object, but is not to be confused - with sub-counters which allow to structure the measurement. + Identifier of the sub-object of the measured object to which the measurement applies. + Shall be present if this is required in clause 6.2 of ETSI GS NFV-IFA 027 for the related + measured object type. + See note. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" performanceMetric: description: > -- GitLab From 10e52e7fa6040011ab60d1481d53d5e818074e3a Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 5 May 2021 15:17:42 +0200 Subject: [PATCH 43/66] updated endpoints descriptions --- .../VNFFaultManagement.yaml | 59 +-- .../VNFFaultManagementNotification.yaml | 43 +- src/SOL003/VNFIndicator/VNFIndicator.yaml | 57 +-- .../VNFIndicatorNotification.yaml | 17 +- .../VNFLifecycleManagement.yaml | 392 +++--------------- .../VNFLifecycleManagementNotification.yaml | 39 +- .../VNFLifecycleOperationGranting.yaml | 19 +- .../VNFPackageManagement.yaml | 362 ++-------------- .../VNFPackageManagementNotification.yaml | 24 +- .../VNFPerformanceManagement.yaml | 66 +-- .../VNFPerformanceManagementNotification.yaml | 34 +- .../VNFSnapshotPackageManagement.yaml | 12 +- ...edResourcesQuotaAvailableNotification.yaml | 41 +- 13 files changed, 179 insertions(+), 986 deletions(-) diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index aaeffed5..f9f8f261 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -18,8 +18,8 @@ info: version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - url: http://127.0.0.1/vnffm/v1 @@ -39,10 +39,7 @@ paths: #SOL003 location: 7.4.2 get: description: | - Get Alarm List. - The API consumer can use this method to retrieve information about the alarm list. - This method shall follow the provisions specified in the tables 7.4.2.3.2-1 and 7.4.2.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The API consumer can use this method to retrieve information about the alarm list. See clause 7.4.2.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -85,9 +82,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version get: description: | - The API consumer can use this method to read an individual alarm. - This method shall follow the provisions specified in the tables 7.4.3.3.2-1 and 7.4.3.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The API consumer can use this method to read an individual alarm. See clause 7.4.3.3.2. responses: 200: $ref: '#/components/responses/IndividualAlarm.Get.200' @@ -114,10 +109,7 @@ paths: patch: description: | - Acknowledge Alarm. - This method modifies an "Individual alarm" resource. - This method shall follow the provisions specified in the tables 7.4.3.3.4-1 and 7.4.3.3.4-2 - for URI query parameters, request and response data structures, and response codes. + This method modifies an "Individual alarm" resource. See clause 7.4.3.3.4. requestBody: $ref: '#/components/requestBodies/IndividualAlarmRequest' responses: @@ -167,20 +159,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Subscribe. - The POST method creates a new subscription. - This method shall follow the provisions specified in the tables 7.4.4.3.1-1 and 7.4.4.3.1-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, a new "Individual subscription" resource - as defined in clause 7.4.5 shall have been created. This method shall not trigger any notification. - Creation of two "Individual subscription" resources with the same callback URI and the same filter - can result in performance degradation and will provide duplicates of notifications to the NFVO, - and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating - a new "Individual subscription" resource if another "Individual subscription" resource with the - same filter and callback URI already exists (in which case it shall return the "201 Created" response code), - or may decide to not create a duplicate "Individual subscription" resource (in which case it shall return - a "303 See Other" response code referencing the existing "Individual subscription" resource with the - same filter and callback URI). + The POST method creates a new subscription. See clause 7.4.4.3.1. requestBody: $ref: '#/components/requestBodies/FmSubscriptionRequest' responses: @@ -222,12 +201,8 @@ paths: get: description: | - Query Subscription Information - - - The API consumer can use this method to retrieve the list of active - subscriptions for VNF alarms subscribed by the API consumer. It can be used - e.g. for resynchronization after error situations. + The API consumer can use this method to retrieve the list of active subscriptions for VNF alarms subscribed + by the API consumer. It can be used e.g. for resynchronization after error situations. See clause 7.4.4.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker @@ -266,11 +241,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - Query Subscription Information. - The API consumer can use this method for reading an individual subscription for VNF alarms - subscribed by the API consumer. - This method shall follow the provisions specified in the tables 7.4.5.3.2-1 and 7.4.5.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The API consumer can use this method for reading an individual subscription for VNF + alarms subscribed by the API consumer. See clause 7.4.5.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -300,16 +272,7 @@ paths: delete: description: | - Terminate Subscription. - This method terminates an individual subscription. - This method shall follow the provisions specified in the tables 7.4.5.3.5-1 and 7.4.5.3.5-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, the "Individual subscription" resource - shall not exist any longer. This means that no notifications for that subscription shall be - sent to the formerly-subscribed API consumer. - - NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed - API consumer for a certain time period after the deletion. + This method terminates an individual subscription. See clause 7.4.5.3.5. responses: 204: $ref: '#/components/responses/IndividualSubscription.Delete.204' diff --git a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index b2752a0f..0efa8b1d 100644 --- a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -18,8 +18,8 @@ info: version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - url: http://127.0.0.1/callback/v1 @@ -36,11 +36,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Notify. - The POST method notifies a VNF alarm or that the alarm list has been rebuilt. - The API consumer shall have previously created an "Individual subscription resource" with a matching filter. - This method shall follow the provisions specified in the tables 7.4.6.3.1-1 and 7.4.6.3.1-2 - for URI query parameters, request and response data structures, and response codes. + The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have + previously created an "Individual subscription" resource with a matching filter. See clause 7.4.6.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -65,10 +62,8 @@ paths: get: description: | - The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, - e.g. during subscription. - This method shall follow the provisions specified in the tables 7.4.6.3.2-1 and 7.4.6.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method allows the API producer to test the notification endpoint that is provided by the + API consumer, e.g. during subscription. See clause 7.4.6.3.2. responses: 204: $ref: '#/components/responses/AlarmNotification.Get.204' @@ -97,11 +92,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Notify. - The POST method notifies a VNF alarm or that the alarm list has been rebuilt. - The API consumer shall have previously created an "Individual subscription resource" with a matching filter. - This method shall follow the provisions specified in the tables 7.4.6.3.1-1 and 7.4.6.3.1-2 - for URI query parameters, request and response data structures, and response codes. + The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have + previously created an "Individual subscription" resource with a matching filter. See clause 7.4.6.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -126,10 +118,8 @@ paths: get: description: | - The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, - e.g. during subscription. - This method shall follow the provisions specified in the tables 7.4.6.3.2-1 and 7.4.6.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method allows the API producer to test the notification endpoint that is provided by the + API consumer, e.g. during subscription. See clause 7.4.6.3.2. responses: 204: $ref: '#/components/responses/AlarmClearedNotification.Get.204' @@ -158,11 +148,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Notify. - The POST method notifies a VNF alarm or that the alarm list has been rebuilt. - The API consumer shall have previously created an "Individual subscription resource" with a matching filter. - This method shall follow the provisions specified in the tables 7.4.6.3.1-1 and 7.4.6.3.1-2 - for URI query parameters, request and response data structures, and response codes. + The POST method notifies a VNF alarm or that the alarm list has been rebuilt. The API consumer shall have + previously created an "Individual subscription" resource with a matching filter. See clause 7.4.6.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -187,10 +174,8 @@ paths: get: description: | - The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, - e.g. during subscription. - This method shall follow the provisions specified in the tables 7.4.6.3.2-1 and 7.4.6.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method allows the API producer to test the notification endpoint that is provided by the + API consumer, e.g. during subscription. See clause 7.4.6.3.2. responses: 204: $ref: '#/components/responses/AlarmListRebuiltNotification.Get.204' diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index cef0b8a0..d2d037e9 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -18,8 +18,8 @@ info: version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - url: http://127.0.0.1/vnfind/v1 @@ -40,10 +40,7 @@ paths: #SOL003 location: 8.4.2 get: description: | - Get Indicator Value. - The GET method queries multiple VNF indicators. - This method shall follow the provisions specified in the tables 8.4.2.3.2-1 and 8.4.2.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method queries multiple VNF indicators. See clause 8.4.2.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -83,10 +80,7 @@ paths: - $ref: '#/components/parameters/VnfInstanceId' get: description: | - Get Indicator Value. - The GET method queries multiple VNF indicators related to a VNF instance. - This method shall follow the provisions specified in the tables 8.4.3.3.2-1 and 8.4.3.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method queries multiple VNF indicators related to a VNF instance. See clause 8.4.3.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -128,10 +122,7 @@ paths: - $ref: '#/components/parameters/VnfInstanceId' get: description: | - Get Indicator Value. - The GET method reads a VNF indicator. - This method shall follow the provisions specified in the tables 8.4.4.3.2-1 and 8.4.4.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method reads a VNF indicator. See clause 8.4.4.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -172,20 +163,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Subscribe. - The POST method creates a new subscription. - As the result of successfully executing this method, a new "Individual subscription" resource - as defined in clause 8.4.6 shall have been created. This method shall not trigger any notification. - Creation of two "Individual subscription" resources with the same callback URI and the same filter - can result in performance degradation and will provide duplicates of notifications to the NFVO, - and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating - a new "Individual subscription" resource if another "Individual subscription" resource with the - same filter and callback URI already exists (in which case it shall return the "201 Created" response code), - or may decide to not create a duplicate "Individual subscription" resource (in which case it shall return - a "303 See Other" response code referencing the existing "Individual subscription" resource with the same - filter and callback URI). - This method shall follow the provisions specified in the tables 8.4.5.3.1-1 and 8.4.5.3.1-2 - for URI query parameters, request and response data structures, and response codes. + The POST method creates a new subscription. See clause 8.4.5.3.1. requestBody: $ref: '#/components/requestBodies/VnfIndicatorSubscriptionRequest' responses: @@ -227,11 +205,8 @@ paths: get: description: | - Query Subscription Information. - The GET method queries the list of active subscriptions of the functional block that - invokes the method. It can be used e.g. for resynchronization after error situations. - This method shall follow the provisions specified in the tables 8.4.5.3.2-1 and 8.4.5.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method queries the list of active subscriptions of the functional block that invokes the method. + It can be used e.g. for resynchronization after error situations. See clause 8.4.5.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker @@ -271,10 +246,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version get: description: | - Query Subscription Information. - The GET method reads an individual subscription. - This method shall follow the provisions specified in the tables 8.4.6.3.2-1 and 8.4.6.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method reads an individual subscription. See clause 8.4.6.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: @@ -303,16 +275,7 @@ paths: delete: description: | - Terminate Subscription. - The DELETE method terminates an individual subscription. - This method shall follow the provisions specified in the tables 8.4.6.3.5-1 and 8.4.6.3.5-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, the "Individual subscription" resource - shall not exist any longer. This means that no notifications for that subscription shall be - sent to the formerly-subscribed API consumer. - - NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed - API consumer for a certain time period after the deletion. + The DELETE method terminates an individual subscription. See clause 8.4.6.3.5. responses: 204: $ref: '#/components/responses/IndividualSubscription.Delete.204' diff --git a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml index cbf33e42..296725d5 100644 --- a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -18,8 +18,8 @@ info: version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - url: http://127.0.0.1/callback/v1 @@ -33,11 +33,8 @@ paths: #SOL003 location: 8.4.7 post: description: | - Notify. - The POST method delivers a notification from the API producer to an API consumer. - The API consumer shall have previously created an "Individual subscription resource" with a matching filter. - This method shall follow the provisions specified in the tables 8.4.7.3.1-1 and 8.4.7.3.1-2 - for URI query parameters, request and response data structures, and response codes. + The POST method delivers a notification from the API producer to an API consumer. The API consumer shall + have previously created an "Individual subscription" resource with a matching filter. See clause 8.4.7.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version @@ -63,10 +60,8 @@ paths: get: description: | - The GET method allows the API producer to test the notification endpoint that is provided by - the API consumer, e.g. during subscription. - This method shall follow the provisions specified in the tables 8.4.7.3.2-1 and 8.4.7.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. See clause 8.4.7.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index dccf4965..c0ed1bdb 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -18,8 +18,8 @@ info: version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - url: http://127.0.0.1/vnflcm/v1 @@ -43,25 +43,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - The POST method creates a new VNF instance resource based on a VNF package that is onboarded and in - "ENABLED" state. - This method shall follow the provisions specified in the tables 5.4.2.3.1-1 and 5.4.2.3.1-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, a new "Individual VNF instance" - resource as defined in clause 5.4.3 shall have been created, and the value of the - "instantiationState" attribute in the representation of that resource shall be "NOT_INSTANTIATED". - A notification of type VnfIdentifierCreationNotification shall be triggered as part of successfully - executing this method as defined in clause 5.5.2.18. - When initiating the creation of a VNF instance resource, the passed metadata values can differ from - the default values for metadata, if any, declared in the VNFD. - The VNFM shall apply the "metadata" attributes in the "CreateVnfRequest" data structure in the payload - body to the "metadata" attribute in the "VnfInstance" data structure on top of the default values that - were obtained from the VNFD according to the rules of JSON Merge Patch (see IETF RFC 7396). - For all metadata keys defined in the VNFD, the VNFM shall ensure that the content of the resulting - "metadata" attributes is valid against the data type definitions in the VNFD. The absence of a metadata - item that is marked "required" in the VNFD shall not be treated as an error. In case a "metadata" child - attribute is not defined in the VNFD, the VNFM shall consider it valid in case it is a valid JSON structure. - In case of an error, the operation shall be rejected with a "422 Unprocessable Entity" error. + The POST method creates a new VNF instance resource based on a VNF package that is onboarded + and in "ENABLED" state. See clause 5.4.2.3.1. requestBody: $ref: '#/components/requestBodies/CreateVnfRequest' responses: @@ -90,8 +73,7 @@ paths: get: description: | - Query VNF. - The GET method queries information about multiple VNF instances. + The GET method queries information about multiple VNF instances. See clause 5.4.2.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/all_fields @@ -134,11 +116,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version get: description: | - Query VNF. - The GET method retrieves information about a VNF instance by reading an "Individual VNF instance" resource. - This method shall follow the provisions specified in the tables 5.4.3.3.2-1 and 5.4.3.3.2-2 - for URI query parameters, request and response data structures, and response codes. + See clause 5.4.3.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: @@ -168,47 +147,7 @@ paths: patch: #SOL003 location: 5.4.3.3.4 description: | - Modify VNF Information. - This method modifies an "Individual VNF instance" resource. - Changes to the VNF configurable properties are applied to the configuration in the VNF instance, - and are reflected in the representation of this resource. - Other changes are applied to the VNF instance information managed by the VNFM, and are reflected - in the representation of this resource. - This method shall follow the provisions specified in the tables 5.4.3.3.4-1 and 5.4.3.3.4-2 - for URI query parameters, request and response data structures, and response codes. - The steps and conditions that apply as the result of successfully executing this method are - specified in clause 5.4.1.2. - - The VNFM shall apply the "metadata", "extensions" and "vnfConfigurableProperties" attributes in the - "VnfInfoModificationRequest" data structure in the payload body to the existing "extensions" and - "vnfConfigurableProperties" attributes from the "VnfInstance" data structure according to the - rules of JSON Merge Patch (see IETF RFC 7396). - The VNFM shall ensure that the content of the child attributes of the resulting "metadata", "extensions" - and "vnfConfigurableProperties" attributes is valid against the data types definitions of these child - attributes in the VNFD. - - In case a "metadata" child attribute is not defined in the VNFD, the VNFM shall consider it valid in - case it is a valid JSON structure. - - NOTE: "Extensions" and "vnfConfigurableProperties" child attributes are always declared in the VNFD. - - If the VNF instance is in the "INSTANTIATED" state, the validation shall also include - ensuring the presence of all "extensions" and "vnfConfigurableProperties" child attributes that are - marked as "required" in the VNFD. - - NOTE: This allows to build the set of "extensions" and "vnfConfigurableProperties" incrementally - prior VNF instantiation but ensures their completeness for an instantiated VNF instance. - - The absence of a metadata item that is marked "required" in the VNFD shall not be treated as an error. - - In case of an error during validation, the operation shall be automatically rolled back, and - appropriate error information shall be provided in the "VnfLcmOperationOccurrenceNotification" - message and the "VnfLcmOpOcc" data structure. - The processing of changes to the "metadata" / "extensions" / "vnfConfigurableProperties" attributes - shall be performed in the "PROCESSING" phase of the LCM operation. The change shall be atomic, i.e. the - result of intermediate stages shall not be visible in the API. In case of successful completion of the - processing and validation, the attributes shall be provided in the "VnfInstance" data structure and - the operation shall proceed towards successful completion. + This method modifies an "Individual VNF instance" resource. See clause 5.4.3.3.4. requestBody: $ref: '#/components/requestBodies/VnfInfoModificationRequest' responses: @@ -244,14 +183,7 @@ paths: delete: #SOL003 location: 5.4.3.3.5 description: | - Delete VNF Identifier. - This method deletes an "Individual VNF instance" resource. - This method shall follow the provisions specified in the tables 5.4.3.3.5-1 and 5.4.3.3.5-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, the "Individual VNF instance" resource - shall not exist any longer. - A notification of type "VnfIdentifierDeletionNotification" shall be triggered as part of successfully - executing this method as defined in clause 5.5.2.19. + This method deletes an "Individual VNF instance" resource. See clause 5.4.3.3.5. responses: 204: $ref: '#/components/responses/IndividualVnfInstance.Delete.204' @@ -292,32 +224,7 @@ paths: post: #SOL003 location: 5.4.4.3.1 description: | - Instantiate VNF. - The POST method instantiates a VNF instance. - This method shall follow the provisions specified in the tables 5.4.4.3.1-1 and 5.4.4.3.1-2 - for URI query parameters, request and response data structures, and response codes. - The steps and conditions that apply as the result of successfully executing this method - are specified in clause 5.4.1.2. - In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, - it shall set the "instantiationState" attribute to the value "INSTANTIATED" and the "vnfState" - attribute to the value "STARTED" in the representation of the "Individual VNF instance" resource. - - When instantiating a VNF instance, the values of the extensions and/or VNF configurable properties - passed in the instantiation request can differ from the values in the "VnfInstance" data structure - that were initialized from default values, if any, declared in the VNFD. - The VNFM shall apply the "extensions" and "vnfConfigurableProperties" attributes in the - "InstantiateVnfRequest" data structure in the payload body to the existing "extensions" and - "vnfConfigurableProperties" attributes from the "VnfInstance" data structure according to the rules - of JSON Merge Patch (see IETF RFC 7396). The VNFM shall ensure that the content of the resulting - "extensions" and "vnfConfigurableProperties" attributes is valid against the VNFD (including the - presence of all child attributes that are marked as "required" in the VNFD). In case of an error - during validation, the operation shall be automatically rolled back, and appropriate error information - shall be provided in the "VnfLcmOperationOccurrenceNotification" message and the "VnfLcmOpOcc" - data structure. The processing of changes to the "extensions" / "vnfConfigurableProperties" attributes - shall be performed in the "STARTING" phase of the LCM operation. The change shall be atomic, i.e. - the result of intermediate stages shall not be visible in the API. In case of successful completion - of the processing and validation, the attributes shall be provided in the "VnfInstance" data structure - and the operation shall proceed to obtain the grant. + The POST method instantiates a VNF instance. See clause 5.4.4.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -368,15 +275,7 @@ paths: post: #SOL003 location: 5.4.5.3.1 description: | - Scale VNF. - The POST method requests to scale a VNF instance resource incrementally. - This method shall follow the provisions specified in the tables 5.4.5.3.1-1 and 5.4.5.3.1-2 - for URI query parameters, request and response data structures, and response codes. - The steps and conditions that apply as the result of successfully executing this method are - specified in clause 5.4.1.2. - In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, - it shall reflect the result of scaling the VNF instance by updating the "scaleStatus" attribute - in the representation of the "Individual VNF instance" resource. + The POST method requests to scale a VNF instance resource incrementally. See clause 5.4.5.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -436,15 +335,7 @@ paths: post: #SOL003 location: 5.4.6.3.1 description: | - Scale VNF to Level. - The POST method requests to scale a VNF instance resource to a target level. - This method shall follow the provisions specified in the tables 5.4.6.3.1-1 and 5.4.6.3.1-2 - for URI query parameters, request and response data structures, and response codes. - The steps and conditions that apply as the result of successfully executing this method are - specified in clause 5.4.1.2. - In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, - it shall reflect the result of scaling the VNF instance by updating the "scaleStatus" attribute - in the representation of the "Individual VNF instance" resource. + The POST method requests to scale a VNF instance resource to a target level. See clause 5.4.6.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -503,31 +394,7 @@ paths: - $ref: '#/components/parameters/VnfInstanceId' post: description: | - Change VNF Flavour. - This method shall follow the provisions specified in the tables 5.4.7.3.1-1 and 5.4.7.3.1-2 - for URI query parameters, request and response data structures, and response codes. - The steps and conditions that apply as the result of successfully executing this method - are specified in clause 5.4.1.2. - In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, - it shall set the "flavourId" attribute in the representation of the "Individual VNF instance" - resource to the value of the "newFlavourId" attribute passed in the "ChangeVnfFlavourRequest" - data in the POST request. - - When initiating a change of the current VNF flavour, the values of the extensions and/or VNF - configurable properties, can differ between the new flavour and the old flavour of the VNF instance. - The VNFM shall apply the "extensions" and "vnfConfigurableProperties" attributes in the - "ChangeVnfFlavourRequest" data structure in the payload body to the existing "extensions" and - "vnfConfigurableProperties" attributes from the "VnfInstance" data structure according to the rules - of JSON Merge Patch (see IETF RFC 7396). The VNFM shall ensure that the content of the resulting - "extensions" and "vnfConfigurableProperties" attributes is valid against the VNFD (which includes - ensuring the presence of all child attributes that are marked as "required" in the VNFD). In case - of an error, the operation shall be automatically rolled back, and appropriate error information - shall be provided in the "VnfLcmOperationOccurrenceNotification" message and the "VnfLcmOpOcc" data - structure. The processing of changes to the "extensions" / "vnfConfigurableProperties" attributes - shall be performed in the "STARTING" phase of the LCM operation. The change shall be atomic, i.e. - the result of intermediate stages shall not be visible in the API. In case of successful completion - of the processing and validation, the attributes shall be provided in the "VnfInstance" data structure - and the operation shall proceed to obtain the grant. + The POST method changes the deployment flavour of a VNF instance. See clause 5.4.7.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -586,16 +453,8 @@ paths: - $ref: '#/components/parameters/VnfInstanceId' post: description: | - Terminate VNF. - The POST method triggers the VNFM to terminate a VNF instance and to request to the VIM - the release of its used virtualised resources. - This method shall follow the provisions specified in the tables 5.4.8.3.1-1 and 5.4.8.3.1-2 - for URI query parameters, request and response data structures, and response codes. - The steps and conditions that apply as the result of successfully executing this method - are specified in clause 5.4.1.2. - In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, - it shall set the "instantiationState" attribute in the representation of the "Individual VNF instance" - resource to the value "NOT_INSTANTIATED". + The POST method triggers the VNFM to terminate a VNF instance and to request to the VIM the + release of its used virtualised resources. See clause 5.4.8.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -644,12 +503,7 @@ paths: - $ref: '#/components/parameters/VnfInstanceId' post: description: | - Heal VNF. - The POST method requests to heal a VNF instance. - This method shall follow the provisions specified in the tables 5.4.9.3.1-1 and 5.4.9.3.1-2 - for URI query parameters, request and response data structures, and response codes. - The steps and conditions that apply as the result of successfully executing this method - are specified in clause 5.4.1.2. + The POST method requests to heal a VNF instance. See clause 5.4.9.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -708,15 +562,7 @@ paths: - $ref: '#/components/parameters/VnfInstanceId' post: description: | - Operate VNF. - The POST method changes the operational state of a VNF instance resource. - This method shall follow the provisions specified in the tables 5.4.10.3.1-1 and 5.4.10.3.1-2 - for URI query parameters, request and response data structures, and response codes. - The steps and conditions that apply as the result of successfully executing this method - are specified in clause 5.4.1.2. - In addition, once the VNFM has successfully completed the underlying VNF LCM operation occurrence, - it shall set the "vnfState" attribute in the representation of the "Individual VNF instance" resource - to the value of the "changeStateTo" attribute passed in the "OperateVnfRequest" data in the POST request. + The POST method changes the operational state of a VNF instance. See clause 5.4.10.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -775,12 +621,7 @@ paths: - $ref: '#/components/parameters/VnfInstanceId' post: description: | - Change External VNF Connectivity. - The POST method changes the external connectivity of a VNF instance. - This method shall follow the provisions specified in the tables 5.4.11.3.1-1 and 5.4.11.3.1-2 - for URI query parameters, request and response data structures, and response codes. - The steps and conditions that apply as the result of successfully executing this method - are specified in clause 5.4.1.2. + The POST method changes the external connectivity of a VNF instance. See clause 5.4.11.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -828,15 +669,7 @@ paths: - $ref: '#/components/parameters/VnfInstanceId' post: description: | - The POST method changes the current VNF package on which the VNF instance is based. - This method shall follow the provisions specified in the tables 5.4.11a.3.1-1 and - 5.4.11a.3.1-2 for URI query parameters, request and response data structures, and - response codes. - The steps and conditions that apply as the result of successfully executing this method - are specified in clause 5.4.1.2. - During a change of the current VNF package, the allowed and required extensions and/or - VNF configurable properties and their data types, as well as the metadata data types, - can differ between the source and the destination VNFD. + The POST method changes the current VNF package on which the VNF instance is based. See clause 5.4.11a.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -882,11 +715,8 @@ paths: #SOL003 location: 5.4.12 get: description: | - Get Operation Status. - The API consumer can use this method to query status information about multiple - VNF lifecycle management operation occurrences. - This method shall follow the provisions specified in the tables 5.4.12.3.2-1 and 5.4.12.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The API consumer can use this method to query status information about multiple VNF lifecycle management + operation occurrences. See clause 5.4.12.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -947,11 +777,8 @@ paths: - $ref: '#/components/parameters/VnfLcmOpOccId' get: description: | - Get Operation Status. - The API consumer can use this method to retrieve status information about a VNF lifecycle - management operation occurrence by reading an "Individual VNF LCM operation occurrence" resource. - This method shall follow the provisions specified in the tables 5.4.13.3.2-1 and 5.4.13.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The API consumer can use this method to retrieve status information about a VNF lifecycle management operation + occurrence by reading an "Individual VNF LCM operation occurrence" resource. See clause 5.4.13.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -987,15 +814,9 @@ paths: - $ref: '#/components/parameters/VnfLcmOpOccId' post: description: | - The POST method initiates retrying a VNF lifecycle operation if that operation - has experienced a temporary failure, i.e. the related "Individual VNF LCM operation occurrence" - resource is in "FAILED_TEMP" state. - This method shall follow the provisions specified in the tables 5.4.14.3.1-1 and 5.4.14.3.1-2 - for URI query parameters, request and response data structures, and response codes. - In case of success of processing the asynchronous request, the "operationState" attribute - in the representation of the parent resource shall be changed to "PROCESSING" and the applicable - "start" notification according to clause 5.6.2.2 shall be emitted to indicate that the underlying - VNF LCM operation occurrence proceeds. + The POST method initiates retrying a VNF lifecycle operation if that operation has experienced a temporary + failure, i.e. the related "Individual VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + See clause 5.4.14.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version @@ -1049,19 +870,9 @@ paths: - $ref: '#/components/parameters/VnfLcmOpOccId' post: description: | - The POST method initiates rolling back a VNF lifecycle operation if that operation - has experienced a temporary failure, i.e. the related "Individual VNF LCM operation occurrence" - resource is in "FAILED_TEMP" state. - In case of rolling back an occurrence of the "InstantiateVnf" operation, the VNFM shall - request to the VIM the release of the virtualised resources that were allocated for the related VNF instance. - The "rollback" task shall be supported by the VNFM for any VNF LCM operation occurrence that represents an - "InstantiateVnf" operation in FAILED_TEMP state. - This method shall follow the provisions specified in the tables 5.4.15.3.1-1 and 5.4.15.3.1-2 - for URI query parameters, request and response data structures, and response codes. - In case of success of processing the asynchronous request, the "operationState" attribute - in the representation of the parent resource shall be changed to "ROLLING_BACK" and the applicable - "start" notification according to clause 5.6.2.2 shall be emitted to indicate that rollback of the - underlying VNF LCM operation occurrence is attempted. + The POST method initiates rolling back a VNF lifecycle operation if that operation has experienced a temporary + failure, i.e. the related "Individual VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + See clause 5.4.15.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version @@ -1115,14 +926,8 @@ paths: - $ref: '#/components/parameters/VnfLcmOpOccId' post: description: | - The POST method marks a VNF lifecycle management operation occurrence as "finally failed" - if that operation occurrence is in "FAILED_TEMP" state. - This method shall follow the provisions specified in the tables 5.4.16.3.1-1 and 5.4.16.3.1-2 - for URI query parameters, request and response data structures, and response codes. - In case of success, the "operationState" attribute in the representation of the parent resource - shall be changed to "FAILED" and the applicable "result" notification according to clause 5.6.2.2 - shall be emitted to indicate that the execution of the underlying VNF LCM operation occurrence - has finally and unrecoverably failed. + The POST method marks a VNF lifecycle management operation occurrence as "finally failed" if that operation + occurrence is in "FAILED_TEMP" state. See clause 5.4.16.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -1177,30 +982,9 @@ paths: - $ref: '#/components/parameters/VnfLcmOpOccId' post: description: | - The POST method initiates cancelling an ongoing VNF lifecycle operation while - it is being executed or rolled back, i.e. the related "Individual VNF LCM operation occurrence" - resource is either in "STARTING" or "PROCESSING" or "ROLLING_BACK" state. - This method shall follow the provisions specified in the tables 5.4.17.3.1-1 and 5.4.17.3.1-2 - for URI query parameters, request and response data structures, and response codes. - Before returning the "202 Accepted" response, the VNFM shall update the "isCancelPending" - and "cancelMode" attributes in the representation of the parent resource according to the - provisions in clause 5.5.2.13. - - In case of success of processing the asynchronous request: - 1) If the request has been processed in "STARTING" state, the "operationState" attribute - in the representation of the parent resource shall be changed to "ROLLED_BACK". - 2) If the request has been processed in "PROCESSING" or "ROLLING_BACK" state, - the "operationState" attribute in the representation of the parent resource - shall be changed to "FAILED_TEMP". - - In both cases, the VNFM shall update the "isCancelPending" and "cancelMode" attributes - in the representation of the parent resource according to the provisions in clause 5.5.2.13 - to reflect the new status, and the applicable "result" notification according to clause 5.6.2.2 - shall be emitted to indicate that the execution of the underlying VNF LCM operation occurrence - has temporarily failed. - Due to race conditions, the processing of the actual operation that is to be cancelled may eventually - still succeed, in which case the "operationState" attribute in the representation of the parent - resource shall represent the result of that operation, rather than the result of the cancellation. + The POST method initiates cancelling an ongoing VNF lifecycle operation while it is being executed or rolled + back, i.e. the related "Individual VNF LCM operation occurrence" resource is either in "STARTING" or + "PROCESSING" or "ROLLING_BACK" state. See clause 5.4.17.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version @@ -1246,20 +1030,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Subscribe. - The POST method creates a new subscription. - This method shall follow the provisions specified in the tables 5.4.18.3.1-1 and 5.4.18.3.1-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, a new "Individual subscription" - resource as defined in clause 5.4.3 shall have been created. This method shall not trigger any notification. - Creation of two "Individual subscription" resources with the same callback URI and the same filter - can result in performance degradation and will provide duplicates of notifications to the NFVO, - and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating - an "Individual subscription" resource if another "Individual subscription" resource with the same - filter and callback URI already exists (in which case it shall return the "201 Created" response code), - or may decide to not create a duplicate "Individual subscription" resource (in which case it shall - return a "303 See Other" response code referencing the existing "Individual subscription" resource - with the same filter and callback URI). + The POST method creates a new subscription. See clause 5.4.18.3.1. requestBody: $ref: '#/components/requestBodies/LccnSubscriptionRequest' responses: @@ -1297,10 +1068,8 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504" get: description: | - Query Subscription Information. - The GET method queries the list of active subscriptions of the - functional block that invokes the method. It can be used e.g. for - resynchronization after error situations. + The GET method queries the list of active subscriptions of the functional block that invokes the method. + It can be used e.g. for resynchronization after error situations. See clause 5.4.18.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker @@ -1337,10 +1106,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version get: description: | - Query Subscription Information. The GET method retrieves information about a subscription by reading an "Individual subscription" resource. - This method shall follow the provisions specified in the tables 5.4.19.3.2-1 and 5.4.19.3.2-2 - for URI query parameters, request and response data structures, and response codes. + See clause 5.4.19.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: @@ -1367,17 +1134,7 @@ paths: delete: description: | - Terminate Subscription. - The DELETE method terminates an individual subscription. - This method shall follow the provisions specified in the tables 5.4.19.3.5-1 and 5.4.19.3.5-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, the "Individual subscription" resource - shall not exist any longer. This means that no notifications for that subscription shall be - sent to the formerly-subscribed API consumer. - - NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed - - API consumer for a certain time period after the deletion. + The DELETE method terminates an individual subscription. See clause 5.4.19.3.5. responses: 204: $ref: '#/components/responses/IndividualSubscription.Delete.204' @@ -1409,19 +1166,8 @@ paths: - $ref: '#/components/parameters/VnfInstanceId' post: description: | - The POST method requests taking a snapshot a VNF instance and populating a - previously created VNF snapshot resource (refer to clause 5.4.23.3.1) with - the snapshot content. - The steps and conditions that apply as the result of successfully executing - this method are specified in clause 5.4.1.2. - In addition, once the VNFM has successfully completed the underlying VNF LCM - operation occurrence, it shall reflect the result of the VNF snapshot creation - by updating the corresponding "Individual VNF snapshot" resource indicated by - the "vnfSnapshotInfoId" attribute of the "CreateVnfSnapshotRequest" that is - included in the payload body of the request. - This method shall follow the provisions specified in the tables 5.4.21.3.1-1 - and 5.4.21.3.1-2 for URI query parameters, request and response data structures, - and response codes. + The POST method requests taking a snapshot a VNF instance and populating a previously created VNF snapshot + resource (refer to clause 5.4.23.3.1) with the snapshot content. See clause 5.4.21.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -1484,10 +1230,7 @@ paths: - $ref: '#/components/parameters/VnfInstanceId' post: description: | - The POST method requests reverting a VNF instance to a VNF snapshot. - This method shall follow the provisions specified in the tables 5.4.22.3.1-1 - and 5.4.22.3.1-2 for URI query parameters, request and response data structures, - and response codes. + The POST method requests reverting a VNF instance to a VNF snapshot. See clause 5.4.22.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -1550,32 +1293,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - The POST method creates a new "Individual VNF snapshot" resource. - - As a result of successfully executing this method, a new "Individual VNF snapshot" - resource as defined in clause 5.4.24 shall have been created. - - The creation of an "Individual VNF snapshot" resource can be performed for two reasons: - - To create an "Individual VNF snapshot" resources that can later be populated by a - new VNF snapshot taken from a VNF instance (refer to clause 5.4.21.3.1). - - To create an "Individual VNF snapshot" resource that can be populated with information - gathered from a VNF snapshot package extraction. In this case, the API consumer indicates - the source of the VNF snapshot package in the payload body of the POST request to the - present resource. - - In the second case, for a successful execution of the operation, the values in the - "VnfSnapshotInfo" data structure representing the "Individual VNF snapshot" resource - shall be applied as follows: - - If the request (refer to clause 5.5.2.20) includes the "vnfSnapshot" attribute, - the VNFM shall apply the "VnfSnapshotInfo" with such provided information. - - If the request (refer to clause 5.5.2.20) does not include the "vnfSnapshot" - attribute, the VNFM shall first fetch the VNF snapshot record from the source VNF - snapshot package signalled by the "vnfSnapshotPkgId" attribute in the request and - then apply the "VnfSnapshotInfo" from the fetched VNF snapshot record. - - This method shall follow the provisions specified in the tables 5.4.23.3.1-1 - and 5.4.23.3.1-2 for URI query parameters, request and response data structures, - and response codes. + The POST method creates a new "Individual VNF snapshot" resource. See clause 5.4.23.3.1. requestBody: $ref: '#/components/requestBodies/CreateVnfSnapshotInfoRequest' responses: @@ -1650,10 +1368,8 @@ paths: get: #SOL003 location: 5.4.24.3.2 description: | - The GET method retrieves information about a VNF snapshot by reading an "Individual VNF snapshot" - resource. - This method shall follow the provisions specified in the tables 5.4.24.3.2-1 and 5.4.24.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method retrieves information about a VNF snapshot by reading an "Individual VNF snapshot" resource. + See clause 5.4.24.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: @@ -1683,16 +1399,7 @@ paths: patch: #SOL003 location: 5.4.24.3.4 description: | - This method modifies an "Individual VNF snapshot" resource. - - Changes are applied to the VNF snapshot information managed by the VNFM and are reflected in the - representation of this resource. The VNFM shall reject the modification request if the "vnfSnapshot" - attribute in the "VnfSnapshotInfo" structure representing the "Individual VNF snapshot" resource - is not empty, or the resource is associated to an ongoing VNF snapshot operation (e.g., a VNF - snapshot creation process has started). - - This method shall follow the provisions specified in the tables 5.4.24.3.4-1 and 5.4.24.3.4-2 - for URI query parameters, request and response data structures, and response codes. + This method modifies an "Individual VNF snapshot" resource. See clause 5.4.24.3.4. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -1729,13 +1436,8 @@ paths: delete: #SOL003 location: 5.4.24.3.5 description: | - This method deletes an "Individual VNF snapshot" resource and the associated VNF snapshot - information managed by the VNFM, and any resource associated to the VNF snapshot managed - by the VIM. - As the result of successfully executing this method, the "Individual VNF snapshot" resource - shall not exist any longer. - This method shall follow the provisions specified in the tables 5.4.24.3.5-1 and 5.4.24.3.5-2 - for URI query parameters, request and response data structures, and response codes. + This method deletes an "Individual VNF snapshot" resource and the associated VNF snapshot information + managed by the VNFM, and any resource associated to the VNF snapshot managed by the VIM. See clause 5.4.24.3.5. responses: 204: $ref: '#/components/responses/IndividualVnfSnapshot.Delete.204' diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 829ae34d..3e9298a5 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -18,8 +18,8 @@ info: version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - url: http://127.0.0.1/callback/v1 @@ -35,11 +35,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Notify. - The POST method delivers a notification from the API producer to an API consumer. - The API consumer shall have previously created an "Individual subscription" resource with a matching filter. - This method shall follow the provisions specified in the tables 5.4.20.3.1-1 and 5.4.20.3.1-2 for - URI query parameters, request and response data structures, and response codes. + The POST method delivers a notification from the API producer to an API consumer. The API consumer shall + have previously created an "Individual subscription" resource with a matching filter. See clause 5.4.20.3.1. requestBody: $ref: '#/components/requestBodies/VnfLcmOperationOccurrenceNotification' responses: @@ -62,10 +59,8 @@ paths: get: description: | - The GET method allows the API producer to test the notification endpoint that is provided by the - API consumer, e.g. during subscription. - This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. See clause 5.4.20.3.2. responses: 204: $ref: '#/components/responses/VnfLcmOperationOccurrenceNotification.Get.204' @@ -93,11 +88,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Notify. - The POST method delivers a notification from the API producer to an API consumer. - The API consumer shall have previously created an "Individual subscription" resource with a matching filter. - This method shall follow the provisions specified in the tables 5.4.20.3.1-1 and 5.4.20.3.1-2 for - URI query parameters, request and response data structures, and response codes. + The POST method delivers a notification from the API producer to an API consumer. The API consumer shall + have previously created an "Individual subscription" resource with a matching filter. See clause 5.4.20.3.1. requestBody: $ref: '#/components/requestBodies/VnfIdentifierCreationNotification' responses: @@ -121,9 +113,7 @@ paths: get: description: | The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, - e.g. during subscription. - This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 - for URI query parameters, request and response data structures, and response codes. + e.g. during subscription. See clause 5.4.20.3.2. responses: 204: $ref: '#/components/responses/VnfIdentifierCreationNotification.Get.204' @@ -151,11 +141,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Notify. - The POST method delivers a notification from the API producer to an API consumer. - The API consumer shall have previously created an "Individual subscription" resource with a matching filter. - This method shall follow the provisions specified in the tables 5.4.20.3.1-1 and 5.4.20.3.1-2 for - URI query parameters, request and response data structures, and response codes. + The POST method delivers a notification from the API producer to an API consumer. The API consumer shall + have previously created an "Individual subscription" resource with a matching filter. See clause 5.4.20.3.1. requestBody: $ref: '#/components/requestBodies/VnfIdentifierDeletionNotification' responses: @@ -179,9 +166,7 @@ paths: get: description: | The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, - e.g. during subscription. - This method shall follow the provisions specified in the tables 5.4.20.3.2-1 and 5.4.20.3.2-2 - for URI query parameters, request and response data structures, and response codes. + e.g. during subscription. See clause 5.4.20.3.2. responses: 204: $ref: '#/components/responses/VnfIdentifierDeletionNotification.Get.204' diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index d30029b2..a65e4a1a 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml @@ -18,8 +18,8 @@ info: version: "1.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - url: http://127.0.0.1/grant/v1 @@ -39,15 +39,7 @@ paths: #SOL003 location: 9.4.2 post: description: | - Grant Lifecycle Operation. - The POST method requests a grant for a particular VNF lifecycle operation. - This method shall follow the provisions specified in the tables 9.4.2.3.1-1 and 9.4.2.3.1-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully processing this request, a new "Individual grant" resource - shall be created. In the synchronous case which is indicated by responding with "201 Created", - that resource shall be created before the 200 OK response is returned. In the asynchronous - case which is indicated by responding with "202 Accepted", this resource may be created - after the response is returned. + The POST method requests a grant for a particular VNF lifecycle operation. See clause 9.4.2.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -93,10 +85,7 @@ paths: - $ref: '#/components/parameters/GrantId' get: description: | - Grant Lifecycle Operation. - The GET method reads a grant. - This method shall follow the provisions specified in the tables 9.4.3.3.2-1 and 9.4.3.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method reads a grant. See clause 9.4.3.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 25d7f72d..e4dbbcdf 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -18,8 +18,8 @@ info: version: "2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - url: http://127.0.0.1/vnfpkgm/v2 @@ -39,10 +39,7 @@ paths: #SOL003 location: 10.4.2 get: description: | - Query VNF Package Info. - The GET method queries the information of the VNF packages matching the filter. - This method shall follow the provisions specified in the tables 10.4.2.3.2-1 and 10.4.2.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method queries the information of the VNF packages matching the filter. See clause 10.4.2.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -77,6 +74,9 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504" + /vnf_packages: + $ref: '#paths/~1onboarded_vnf_packages' + ############################################################################### # Individual VNF package # ############################################################################### @@ -85,11 +85,7 @@ paths: - $ref: '#/components/parameters/VnfPkgId' get: description: | - Query VNF Package Info. - The GET method reads the information of an individual VNF package. - This method shall follow the provisions specified in the tables - 10.4.3.3.2-1 and 10.4.3.3.2-2 for URI query parameters, - request and response data structures, and response codes. + The GET method reads the information of an individual VNF package. Clause 10.4.3.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -122,11 +118,7 @@ paths: - $ref: '#/components/parameters/VnfdId' get: description: | - Query VNF Package Info. - The GET method reads the information of an individual VNF package. - This method shall follow the provisions specified in the tables - 10.4.3.3.2-1 and 10.4.3.3.2-2 for URI query parameters, - request and response data structures, and response codes. + The GET method reads the information of an individual VNF package. Clause 10.4.3.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -163,94 +155,7 @@ paths: - $ref: '#/components/parameters/VnfPkgId' get: description: | - Query VNF Package Info - - The GET method reads the content of the VNFD within a VNF package. - The VNFD is implemented as a collection of one or more files. - A ZIP archive embedding these files shall be returned when reading this resource. - The default format of the ZIP archive shall be the one specified in ETSI GS NFV-SOL 004 - where only the files representing the VNFD and information needed to navigate the ZIP - archive and to identify the file that is the entry point for parsing the VNFD, and, - if requested, further security information are included. This means that the structure - of the ZIP archive shall correspond to the directory structure used in the VNF package - and that the archive shall contain the following files from the package: - • TOSCA.meta (if available in the package) - • The main TOSCA definitions YAML file (either as referenced from TOSCA.meta - or available as a file with the extension ".yml" or ".yaml" from the root of the archive) - • Every component of the VNFD referenced (recursively) from the main TOSCA definitions YAML file - • The related security information, if the "include_signatures" URI parameter is provided, as follows: - - the manifest file - - the singleton certificate file in the root of the VNF package (if available in the package) - - the signing certificates of the individual files included in the ZIP archive (if available in the package) - - the signatures of the individual files (if available in the package) - Three examples are provided below. - - NOTE: These examples do not show the security related files. - - EXAMPLE 1: Assuming a request is sent for the following VNF package - (as described in clause A.1 in ETSI GS NFV-SOL 004): - !------TOSCA-Metadata - !----- TOSCA.meta (metadata for navigating the ZIP file) - !------Definitions - !----- MRF.yaml (main VNFD file) - !----- OtherTemplates (e.g. type definitions, referenced by the main VNFD file) - !------Files - !----- ChangeLog.txt - !----- image(s) - !----- other artifacts - !------Tests - !----- file(s) - !------Licenses - !----- file(s) - !------Scripts - !----- install.sh - !----- MRF.mf - - The NFVO will return a ZIP file of the following format: - !------TOSCA-Metadata - !----- TOSCA.meta - !------Definitions - !----- MRF.yaml - !----- OtherTemplates - - EXAMPLE 2: Assuming a request is sent for the following VNF package - (a VNF package without a TOSCA-Metadata directory, as - described in clause A.2 in ETSI GS NFV-SOL 004): - !------MRF.yaml (main VNFD file) - !------MRF.mf - !------ChangeLog.txt - !------Tests - !----- file(s) - !------Licenses - !----- file(s) - !------Artifacts - !----- install.sh - !----- start.yang - - The NFVO will return a ZIP file of the following format: - !------MRF.yaml - - EXAMPLE 3: Assuming a request is sent for the following VNF package - (a VNF package with the YANG VNFD without a TOSCA-Metadata directory, - as described in clause A.3 in ETSI GS NFV SOL 004): - !----CompanyVNFD.yaml - !----CompanyVNFD.xml - !----CompanyVNFD.mf - !----ChangeLog.txt - !-----Files - !-----Instance Data Files - !---- start.xml - !-----Licenses - !-----Scripts - !----- install.sh - - The NFVO will return a ZIP file of the following format: - !----CompanyVNFD.yaml - !----CompanyVNFD.xml (indicated in the yang_definitions metadata in CompanyVNFD.yaml) - - This method shall follow the provisions specified in the tables 10.4.4.3.2-1 - and 10.4.4.3.2-2 for URI query parameters, request and response data structures, - nd response codes. + The GET method reads the content of the VNFD within a VNF package. See clause 10.4.4.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -292,94 +197,7 @@ paths: - $ref: '#/components/parameters/VnfdId' get: description: | - Query VNF Package Info - - The GET method reads the content of the VNFD within a VNF package. - The VNFD is implemented as a collection of one or more files. - A ZIP archive embedding these files shall be returned when reading this resource. - The default format of the ZIP archive shall be the one specified in ETSI GS NFV-SOL 004 - where only the files representing the VNFD and information needed to navigate the ZIP - archive and to identify the file that is the entry point for parsing the VNFD, and, - if requested, further security information are included. This means that the structure - of the ZIP archive shall correspond to the directory structure used in the VNF package - and that the archive shall contain the following files from the package: - • TOSCA.meta (if available in the package) - • The main TOSCA definitions YAML file (either as referenced from TOSCA.meta - or available as a file with the extension ".yml" or ".yaml" from the root of the archive) - • Every component of the VNFD referenced (recursively) from the main TOSCA definitions YAML file - • The related security information, if the "include_signatures" URI parameter is provided, as follows: - - the manifest file - - the singleton certificate file in the root of the VNF package (if available in the package) - - the signing certificates of the individual files included in the ZIP archive (if available in the package) - - the signatures of the individual files (if available in the package) - Three examples are provided below. - - NOTE: These examples do not show the security related files. - - EXAMPLE 1: Assuming a request is sent for the following VNF package - (as described in clause A.1 in ETSI GS NFV-SOL 004): - !------TOSCA-Metadata - !----- TOSCA.meta (metadata for navigating the ZIP file) - !------Definitions - !----- MRF.yaml (main VNFD file) - !----- OtherTemplates (e.g. type definitions, referenced by the main VNFD file) - !------Files - !----- ChangeLog.txt - !----- image(s) - !----- other artifacts - !------Tests - !----- file(s) - !------Licenses - !----- file(s) - !------Scripts - !----- install.sh - !----- MRF.mf - - The NFVO will return a ZIP file of the following format: - !------TOSCA-Metadata - !----- TOSCA.meta - !------Definitions - !----- MRF.yaml - !----- OtherTemplates - - EXAMPLE 2: Assuming a request is sent for the following VNF package - (a VNF package without a TOSCA-Metadata directory, as - described in clause A.2 in ETSI GS NFV-SOL 004): - !------MRF.yaml (main VNFD file) - !------MRF.mf - !------ChangeLog.txt - !------Tests - !----- file(s) - !------Licenses - !----- file(s) - !------Artifacts - !----- install.sh - !----- start.yang - - The NFVO will return a ZIP file of the following format: - !------MRF.yaml - - EXAMPLE 3: Assuming a request is sent for the following VNF package - (a VNF package with the YANG VNFD without a TOSCA-Metadata directory, - as described in clause A.3 in ETSI GS NFV SOL 004): - !----CompanyVNFD.yaml - !----CompanyVNFD.xml - !----CompanyVNFD.mf - !----ChangeLog.txt - !-----Files - !-----Instance Data Files - !---- start.xml - !-----Licenses - !-----Scripts - !----- install.sh - - The NFVO will return a ZIP file of the following format: - !----CompanyVNFD.yaml - !----CompanyVNFD.xml (indicated in the yang_definitions metadata in CompanyVNFD.yaml) - - This method shall follow the provisions specified in the tables 10.4.4.3.2-1 - and 10.4.4.3.2-2 for URI query parameters, request and response data structures, - nd response codes. + The GET method reads the content of the VNFD within a VNF package. See clause 10.4.4.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -424,12 +242,7 @@ paths: - $ref: '#/components/parameters/VnfPkgId' get: description: | - Query VNF Package Manifest - - The GET method reads the content of the manifest within a VNF package. - This method shall follow the provisions specified in the tables 10.4.4a.3.2-1 - and 10.4.4a.3.2-2 for URI query parameters, request and response data structures, - and response codes. + The GET method reads the content of the manifest within a VNF package. See clause 10.4.4a.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -466,12 +279,7 @@ paths: - $ref: '#/components/parameters/VnfdId' get: description: | - Query VNF Package Manifest - - The GET method reads the content of the manifest within a VNF package. - This method shall follow the provisions specified in the tables 10.4.4a.3.2-1 - and 10.4.4a.3.2-2 for URI query parameters, request and response data structures, - and response codes. + The GET method reads the content of the manifest within a VNF package. See clause 10.4.4a.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -511,21 +319,8 @@ paths: - $ref: '#/components/parameters/VnfPkgId' get: description: | - Fetch VNF Package. - The GET method fetches the content of a VNF package identified by the - VNF package identifier allocated by the NFVO. - The content of the package is provided as onboarded, i.e. depending on - the security option used, the CSAR or the CSAR wrapped in a ZIP archive - together with an external signature is returned, as defined in clause - 5.1 of ETSI GS NFV-SOL 004. - - NOTE: Information about the applicable security option can be obtained - by evaluating the "packageSecurityOption" attribute in the "VnfPkgInfo" - structure. - - This method shall follow the provisions specified in the tables - 10.4.5.3.2-1 and 10.4.5.3.2-2 for URI query parameters, request - and response data structures, and response codes. + The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO. + See clause 10.4.5.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -576,21 +371,8 @@ paths: - $ref: '#/components/parameters/VnfdId' get: description: | - Fetch VNF Package. - The GET method fetches the content of a VNF package identified by the - VNF package identifier allocated by the NFVO. - The content of the package is provided as onboarded, i.e. depending on - the security option used, the CSAR or the CSAR wrapped in a ZIP archive - together with an external signature is returned, as defined in clause - 5.1 of ETSI GS NFV-SOL 004. - - NOTE: Information about the applicable security option can be obtained - by evaluating the "packageSecurityOption" attribute in the "VnfPkgInfo" - structure. - - This method shall follow the provisions specified in the tables - 10.4.5.3.2-1 and 10.4.5.3.2-2 for URI query parameters, request - and response data structures, and response codes. + The GET method fetches the content of a VNF package identified by the VNF package identifier allocated by the NFVO. + See clause 10.4.5.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -644,30 +426,9 @@ paths: - $ref: '#/components/parameters/VnfPkgId' get: description: | - Fetch VNF Package Artifacts. - - The GET method shall return an archive that contains a set of artifacts - according to the provisions for inclusion/exclusion defined below, - embedded in a directory structure being the same as in the VNF package. - The criteria for exclusion/inclusion of an artifact in the archive are defined as follows: - - Artifacts that are software images shall be excluded from the archive. - - Artifacts that are not software images and that are external to the VNF package shall be - excluded from the archive unless the URI query parameter "include_external_artifacts" has - been provided. External artifacts shall be included in the archive using the content of - the "artifactPath" attribute as the path. - - All additional artifacts included in the VNF package that are MANO artifacts shall - be included in the archive, unless the URI query parameter "exclude_all_mano_artifacts" - has been provided, in which case such artifacts shall be excluded. - - All additional artifacts included in the VNF package that are non-MANO artifacts - shall be included in the archive, unless: -  the URI query parameter "exclude_all_non_mano_artifacts" has been provided, - in which case such artifacts shall be excluded; -  the URI query parameter "select_non_mano_artifact_sets" has been provided and - is supported by the NFVO, in which case only those non-MANO artifacts shall be - included whose non-MANO artifact set identifier matches one of the values of the query parameter. - Package metadata such as manifest file or VNFD shall not be included in the archive. - This method shall follow the provisions specified in the tables 10.4.5a.3.2-1 and - 10.4.5a.3.2-2 for URI query parameters, request and response data structures, and response codes. + The GET method shall return an archive that contains a set of artifacts according to the provisions for + inclusion/exclusion defined below, embedded in a directory structure being the same as in the VNF package. + See clause 10.4.5a.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -706,30 +467,9 @@ paths: - $ref: '#/components/parameters/VnfdId' get: description: | - Fetch VNF Package Artifacts. - - The GET method shall return an archive that contains a set of artifacts - according to the provisions for inclusion/exclusion defined below, - embedded in a directory structure being the same as in the VNF package. - The criteria for exclusion/inclusion of an artifact in the archive are defined as follows: - - Artifacts that are software images shall be excluded from the archive. - - Artifacts that are not software images and that are external to the VNF package shall be - excluded from the archive unless the URI query parameter "include_external_artifacts" has - been provided. External artifacts shall be included in the archive using the content of - the "artifactPath" attribute as the path. - - All additional artifacts included in the VNF package that are MANO artifacts shall - be included in the archive, unless the URI query parameter "exclude_all_mano_artifacts" - has been provided, in which case such artifacts shall be excluded. - - All additional artifacts included in the VNF package that are non-MANO artifacts - shall be included in the archive, unless: -  the URI query parameter "exclude_all_non_mano_artifacts" has been provided, - in which case such artifacts shall be excluded; -  the URI query parameter "select_non_mano_artifact_sets" has been provided and - is supported by the NFVO, in which case only those non-MANO artifacts shall be - included whose non-MANO artifact set identifier matches one of the values of the query parameter. - Package metadata such as manifest file or VNFD shall not be included in the archive. - This method shall follow the provisions specified in the tables 10.4.5a.3.2-1 and - 10.4.5a.3.2-2 for URI query parameters, request and response data structures, and response codes. + The GET method shall return an archive that contains a set of artifacts according to the provisions for + inclusion/exclusion defined below, embedded in a directory structure being the same as in the VNF package. + See clause 10.4.5a.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -772,11 +512,7 @@ paths: - $ref: '#/components/parameters/VnfPkgId' get: description: | - Fetch VNF Package Artifacts. - The GET method fetches the content of an artifact within a VNF package. - This method shall follow the provisions specified in the tables - 10.4.6.3.2-1 and 10.4.6.3.2-2 for URI query parameters, request - and response data structures, and response codes. + The GET method fetches the content of an artifact within a VNF package. See clause 10.4.6.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -834,11 +570,7 @@ paths: - $ref: '#/components/parameters/VnfdId' get: description: | - Fetch VNF Package Artifacts. - The GET method fetches the content of an artifact within a VNF package. - This method shall follow the provisions specified in the tables - 10.4.6.3.2-1 and 10.4.6.3.2-2 for URI query parameters, request - and response data structures, and response codes. + The GET method fetches the content of an artifact within a VNF package. See clause 10.4.6.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -900,25 +632,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Subscribe. - The POST method creates a new subscription. - This method shall follow the provisions specified in the tables - 10.4.7.3.1-1 and 10.4.7.3.1-2 for URI query parameters, request - and response data structures, and response codes. - As the result of successfully executing this method, a new - "Individual subscription" resource as defined in clause 10.4.8 - shall have been created. This method shall not trigger any notification. - Creation of two "Individual subscription" resources with the same - callback URI and the same filter can result in performance degradation - and will provide duplicates of notifications to the VNFM, and might - make sense only in very rare use cases. Consequently, the NFVO may - either allow creating a new "Individual subscription" resource if - another "Individual subscription" resource with the same filter and - callback URI already exists (in which case it shall return the - "201 Created" response code), or may decide to not create a duplicate - "Individual subscription" resource (in which case it shall return a - "303 See Other" response code referencing the existing "Individual subscription" - resource with the same filter and callback URI). + The POST method creates a new subscription. See clause 10.4.7.3.1. requestBody: $ref: '#/components/requestBodies/PkgmSubscriptionRequest' responses: @@ -957,11 +671,8 @@ paths: get: description: | - Query Subscription Information. - The GET method queries the list of active subscriptions of the functional block - that invokes the method. It can be used e.g. for resynchronization after error situations. - This method shall follow the provisions specified in the tables 10.4.7.3.2-1 and 10.4.7.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method queries the list of active subscriptions of the functional block that invokes the method. + It can be used e.g. for resynchronization after error situations. See clause 10.4.7.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker @@ -1000,11 +711,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version get: description: | - Query Subscription Information. - The GET method reads an individual subscription. - This method shall follow the provisions specified in the tables - 10.4.8.3.2-1 and 10.4.8.3.2-2 for URI query parameters, - request and response data structures, and response codes. + The GET method reads an individual subscription. See clause 10.4.8.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: @@ -1033,16 +740,7 @@ paths: delete: description: | - Terminate subscription. - The DELETE method terminates an individual subscription. - This method shall follow the provisions specified in the tables 10.4.8.3.5-1 and 10.4.8.3.5-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, the "Individual subscription" resource - shall not exist any longer. This means that no notifications for that subscription shall be - sent to the formerly-subscribed API consumer. - - NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed - API consumer for a certain time period after the deletion. + The DELETE method terminates an individual subscription. See clause 10.4.8.3.5. responses: 204: $ref: '#/components/responses/IndividualSubscription.Delete.204' @@ -2084,4 +1782,4 @@ components: style: simple explode: false schema: - type: string \ No newline at end of file + type: string diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index a37d18dd..d49a0e3e 100644 --- a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -18,8 +18,8 @@ info: version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - url: http://127.0.0.1/callback/v2 @@ -36,11 +36,9 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Notify. The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have previously created an "Individual subscription" resource with a matching filter. - This method shall follow the provisions specified in the tables 10.4.9.3.1-1 and 10.4.9.3.1-2 - for URI query parameters, request and response data structures, and response codes. + See clause 10.4.9.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -65,10 +63,8 @@ paths: get: description: | - The GET method allows the API producer to test the notification endpoint that is provided by - the API consumer e.g. during subscription. - This method shall follow the provisions specified in the tables 10.4.9.3.2-1 and 10.4.9.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. See clause 10.4.9.3.2. responses: 204: $ref: '#/components/responses/VnfPackageOnboardingNotification.Get.204' @@ -97,11 +93,9 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Notify. The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have previously created an "Individual subscription" resource with a matching filter. - This method shall follow the provisions specified in the tables 10.4.9.3.1-1 and 10.4.9.3.1-2 - for URI query parameters, request and response data structures, and response codes. + See clause 10.4.9.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -126,10 +120,8 @@ paths: get: description: | - The GET method allows the API producer to test the notification endpoint that is provided by - the API consumer e.g. during subscription. - This method shall follow the provisions specified in the tables 10.4.9.3.2-1 and 10.4.9.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during subscription. See clause 10.4.9.3.2. responses: 204: $ref: '#/components/responses/VnfPackageChangeNotification.Get.204' diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 56594fd0..dde9c942 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -18,8 +18,8 @@ info: version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - url: http://127.0.0.1/vnfpm/v2 @@ -44,12 +44,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Create PM Job. - The POST method creates a PM job. - This method shall follow the provisions specified in the tables 6.4.2.3.1-1 and 6.4.2.3.1-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, a new "Individual PM job" resource as defined - in clause 6.4.3 shall have been created. + The POST method creates a PM job. See clause 6.4.2.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -80,11 +75,7 @@ paths: get: description: | - Query PM Job. - The API consumer can use this method to retrieve information about PM jobs. - This method shall follow the provisions specified in the tables 6.4.2.3.2-1 and 6.4.2.3.2-2 - for URI query parameters, request and response data structures, and response codes. - The API consumer can use this method to retrieve information about PM jobs. + The API consumer can use this method to retrieve information about PM jobs. See clause 6.4.2.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/all_fields @@ -127,10 +118,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version get: description: | - Query PM Job. - The API consumer can use this method for reading an individual PM job. - This method shall follow the provisions specified in the tables 6.4.3.3.2-1 and 6.4.3.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The API consumer can use this method for reading an individual PM job. See clause 6.4.3.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: @@ -159,10 +147,7 @@ paths: patch: description: | - This method allows to modify an "Individual PM job" resource. - This method shall follow the provisions specified in the tables - 6.4.3.3.4-1 and 6.4.3.3.4-2 for URI query parameters, request - and response data structures, and response codes. + This method allows to modify an "Individual PM job" resource. See clause 6.4.3.3.4. responses: 200: $ref: '#/components/responses/IndividualPMJob.Patch.200' @@ -191,11 +176,7 @@ paths: delete: description: | - Delete PM Job. - This method terminates an individual PM job. - This method shall follow the provisions specified in the tables 6.4.3.3.5-1 and 6.4.3.3.5-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, the "Individual PM job" resource shall not exist any longer. + This method terminates an individual PM job. See clause 6.4.3.3.5. responses: 204: $ref: '#/components/responses/IndividualPMJob.Delete.200' @@ -230,9 +211,7 @@ paths: - $ref: '#/components/parameters/ReportId' get: description: | - The API consumer can use this method for reading an individual performance report. - This method shall follow the provisions specified in the tables 6.4.4.3.2-1 and 6.4.4.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The API consumer can use this method for reading an individual performance report. See clause 6.4.4.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization @@ -272,12 +251,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Create Threshold. - The POST method can be used by the API consumer to create a threshold. - This method shall follow the provisions specified in the tables 6.4.5.3.1-1 and 6.4.5.3.1-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, a new "Individual threshold" resource - as defined in clause 6.4.6 shall have been created. + The POST method can be used by the API consumer to create a threshold. See clause 6.4.5.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -308,10 +282,7 @@ paths: get: description: | - Query Threshold. - The API consumer can use this method to query information about thresholds. - This method shall follow the provisions specified in the tables 6.4.5.3.2-1 and 6.4.5.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The API consumer can use this method to query information about thresholds. See clause 6.4.5.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker @@ -350,10 +321,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version get: description: | - Query Threshold. - The API consumer can use this method for reading an individual threshold - This method shall follow the provisions specified in the tables 6.4.6.3.2-1 and 6.4.6.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The API consumer can use this method for reading an individual threshold. See clause 6.4.6.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: @@ -382,10 +350,7 @@ paths: patch: description: | - This method allows to modify an "Individual threshold" resource. - This method shall follow the provisions specified in the tables - 6.4.6.3.4-1 and 6.4.6.3.4-2 for URI query parameters, request - and response data structures, and response codes. + This method allows to modify an "Individual threshold" resource. See clause 6.4.6.3.4. responses: 200: $ref: '#/components/responses/IndividualThreshold.Patch.200' @@ -414,12 +379,7 @@ paths: delete: description: | - Delete Threshold. - This method allows to delete a threshold. - This method shall follow the provisions specified in the tables 6.4.6.3.5-1 and 6.4.6.3.5-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, the "Individual threshold" resource - shall not exist any longer. + This method allows to delete a threshold. See clause 6.4.6.3.5. responses: 204: $ref: '#/components/responses/IndividualThreshold.Delete.200' diff --git a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index d756a944..d379b74f 100644 --- a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -18,8 +18,8 @@ info: version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - url: http://127.0.0.1/callback/v2 @@ -36,12 +36,9 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Notify. - The POST method delivers a notification regarding a performance management - event from the API producer to an API consumer. - The API consumer shall have previously created an "Individual PM Job" or "Individual threshold" resource. - This method shall follow the provisions specified in the tables 6.4.9.3.1-1 and 6.4.9.3.1-2 - for URI query parameters, request and response data structures, and response codes. + The POST method delivers a notification regarding a performance management event from API producer to an + API consumer. The API consumer shall have previously created an "Individual PM job" resource + or "Individual threshold" resource. See clause 6.4.9.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -66,10 +63,8 @@ paths: get: description: | - The GET method allows the API producer to test the notification endpoint that is provided - by the API consumer, e.g. during the creation of the PM job or threshold resource. - This method shall follow the provisions specified in the tables 6.4.9.3.2-1 and 6.4.9.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during creation of the PM job or threshold resource. See clause 6.4.9.3.2. responses: 204: $ref: '#/components/responses/PerformanceInformationAvailableNotification.Get.204' @@ -98,12 +93,9 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version post: description: | - Notify. - The POST method delivers a notification regarding a performance management - event from the API producer to an API consumer. - The API consumer shall have previously created an "Individual subscription resource" with a matching filter. - This method shall follow the provisions specified in the tables 6.4.9.3.1-1 and 6.4.9.3.1-2 - for URI query parameters, request and response data structures, and response codes. + The POST method delivers a notification regarding a performance management event from API producer to an + API consumer. The API consumer shall have previously created an "Individual PM job" resource + or "Individual threshold" resource. See clause 6.4.9.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -128,10 +120,8 @@ paths: get: description: | - The GET method allows the API producer to test the notification endpoint that is provided - by the API consumer e.g. during subscription. - This method shall follow the provisions specified in the tables 6.4.9.3.2-1 and 6.4.9.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method allows the API producer to test the notification endpoint that is provided by the API consumer, + e.g. during creation of the PM job or threshold resource. See clause 6.4.9.3.2. responses: 204: $ref: '#/components/responses/ThresholdCrossedNotification.Get.204' diff --git a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml index c6934ecd..d613c5b9 100644 --- a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml +++ b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml @@ -18,8 +18,8 @@ info: version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - url: http://0.0.0.1/vnfsnapshotpkgm/v1 @@ -38,7 +38,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The GET method queries the information of the VNF packages matching the filter. + The GET method queries the information of the VNF packages matching the filter. See clause 12.4.2.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -79,7 +79,7 @@ paths: - $ref: '#/components/parameters/VnfSnapshotPkgId' get: description: | - The GET method reads the information of an individual VNF snapshot package. + The GET method reads the information of an individual VNF snapshot package. See clause 12.4.3.3.2 parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -120,7 +120,7 @@ paths: - $ref: '#/components/parameters/VnfSnapshotPkgId' get: description: | - The GET method fetches the content of a VNF snapshot package. + The GET method fetches the content of a VNF snapshot package. See clause 12.4.4.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -164,7 +164,7 @@ paths: - $ref: '#/components/parameters/ArtifactPath' get: description: | - The GET method fetches the content of an artifact within the VNF snapshot package. + The GET method fetches the content of an artifact within the VNF snapshot package. See clause 12.4.5.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index ec0d3cb3..d16a5f09 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -19,8 +19,8 @@ info: version: "1.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - url: http://127.0.0.1/vrqan/v1 @@ -42,22 +42,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization post: description: | - Subscribe. - The POST method creates a new subscription. - This method shall follow the provisions specified in the tables 11.4.2.3.1-1 and 11.4.2.3.1-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, a new "Individual subscription" - resource as defined in clause 11.4.3 shall have been created. This method shall not - trigger any notification. - Creation of two "Individual subscription" resources with the same callback URI and - the same filter can result in performance degradation and will provide duplicates - of notifications to the VNFM, and might make sense only in very rare use cases. - Consequently, the NFVO may either allow creating a new "Individual subscription" - resource if another "Individual subscription" resource with the same filter and - callback URI already exists (in which case it shall return the "201 Created" response code), - or may decide to not create a duplicate "Individual subscription" resource (in which case - it shall return a "303 See Other" response code referencing the existing "Individual subscription" - resource with the same filter and callback URI). + The POST method creates a new subscription. See clause 11.4.2.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -99,11 +84,8 @@ paths: get: description: | - Query Subscription Information. The GET method queries the list of active subscriptions of the functional block that invokes the method. - It can be used e.g. for resynchronization after error situations. - This method shall follow the provisions specified in the tables 11.4.2.3.2-1 and 11.4.2.3.2-2 - for URI query parameters, request and response data structures, and response codes. + It can be used e.g. for resynchronization after error situations. See clause 11.4.2.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker @@ -143,10 +125,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - Query Subscription Information. - The GET method reads an individual subscription. - This method shall follow the provisions specified in the tables 11.4.3.3.2-1 and 11.4.3.3.2-2 - for URI query parameters, request and response data structures, and response codes. + The GET method reads an individual subscription. See clause 11.4.3.3.2. responses: 200: $ref: '#/components/responses/IndividualSubscription.Get.200' @@ -173,15 +152,7 @@ paths: delete: description: | - Terminate subscription. - The DELETE method terminates an individual subscription. - This method shall follow the provisions specified in the tables 11.4.3.3.5-1 and 11.4.3.3.5-2 - for URI query parameters, request and response data structures, and response codes. - As the result of successfully executing this method, the "Individual subscription" resource - shall not exist any longer. This means that no notifications for that subscription shall be - sent to the formerly-subscribed API consumer. - NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed - API consumer for a certain time period after the deletion. + The DELETE method terminates an individual subscription. See clause 11.4.3.3.5. responses: 204: $ref: '#/components/responses/IndividualSubscription.Delete.204' -- GitLab From 2bb765290283c926a405aef9a407376d7adb3227 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 5 May 2021 15:18:38 +0200 Subject: [PATCH 44/66] removed summary --- src/endpoints/SOL002SOL003_endpoints.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/src/endpoints/SOL002SOL003_endpoints.yaml b/src/endpoints/SOL002SOL003_endpoints.yaml index 49c2850d..cdba0ab3 100644 --- a/src/endpoints/SOL002SOL003_endpoints.yaml +++ b/src/endpoints/SOL002SOL003_endpoints.yaml @@ -5,7 +5,6 @@ endpoints: parameters: - $ref: ../components/SOL002SOL003_params.yaml#/components/parameters/Version get: - summary: Retrieve API version information description: > The GET method reads API version information. This method shall follow the provisions specified in table 9.3.3.3.2-1 of SOL013 for request and response data structures, and response codes. URI query parameters are not supported. -- GitLab From 994742030135ddb8143462ba7ce08c882048ecee Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 5 May 2021 15:49:57 +0200 Subject: [PATCH 45/66] upd API version endpoint --- src/endpoints/SOL002SOL003_endpoints.yaml | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/endpoints/SOL002SOL003_endpoints.yaml b/src/endpoints/SOL002SOL003_endpoints.yaml index cdba0ab3..ffdef1cf 100644 --- a/src/endpoints/SOL002SOL003_endpoints.yaml +++ b/src/endpoints/SOL002SOL003_endpoints.yaml @@ -6,8 +6,8 @@ endpoints: - $ref: ../components/SOL002SOL003_params.yaml#/components/parameters/Version get: description: > - The GET method reads API version information. This method shall follow the provisions specified in table 9.3.3.3.2-1 - of SOL013 for request and response data structures, and response codes. URI query parameters are not supported. + The GET method reads API version information. This method shall follow the provisions specified in SOL013 table 9.3.3.3.2-1 + for request and response data structures, and response codes. URI query parameters are not supported. responses: "200": $ref: '#/components/responses/ApiVersions.Get' @@ -40,28 +40,28 @@ endpoints: post: description: > This method is not supported. When this method is requested on this resource, the API producer shall return a "405 - Method Not Allowed" response as defined in clause 6.4. + Method Not Allowed" response as defined in SOL013 clause 6.4. responses: 405: $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/405 put: description: > This method is not supported. When this method is requested on this resource, the API producer shall return a "405 - Method Not Allowed" response as defined in clause 6.4. + Method Not Allowed" response as defined in SOL013 clause 6.4. responses: 405: $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/405 patch: description: > This method is not supported. When this method is requested on this resource, the API producer shall return a "405 - Method Not Allowed" response as defined in clause 6.4. + Method Not Allowed" response as defined in SOL013 clause 6.4. responses: 405: $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/405 delete: description: > This method is not supported. When this method is requested on this resource, the API producer shall return a "405 - Method Not Allowed" response as defined in clause 6.4. + Method Not Allowed" response as defined in SOL013 clause 6.4. responses: 405: $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/405 @@ -70,11 +70,9 @@ components: responses: ApiVersions.Get: description: > - 200 OK - API version information was read successfully. - The response body shall contain 4.4 API version - information, as defined in clause 4.4.1.13. + The response body shall contain API version + information, as defined in clause 7.1.6. headers: Content-Type: description: The MIME type of the body of the response. -- GitLab From 67d0662e84c74e0e3668b7179d585590bcea7a6c Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Thu, 6 May 2021 02:30:24 +0200 Subject: [PATCH 46/66] Added notes and references --- src/SOL002/APIVersion/APIVersion.yaml | 8 +- .../VNFConfiguration/VNFConfiguration.yaml | 6 +- .../SOL002VNFConfiguration_def.yaml | 8 +- .../VNFFaultManagement.yaml | 10 +- .../VNFFaultManagementNotification.yaml | 4 +- src/SOL002/VNFIndicator/VNFIndicator.yaml | 7 +- .../VNFIndicatorNotification.yaml | 4 +- .../SOL002VNFIndicatorNotification_def.yaml | 13 +- .../VNFLifecycleCoordination.yaml | 13 +- .../SOL002VNFLifecycleCoordination_def.yaml | 10 + .../VNFLifecycleManagement.yaml | 61 ++-- .../SOL002VNFLifecycleManagement_def.yaml | 306 +++++++++--------- .../VNFLifecycleManagementNotification.yaml | 19 +- ...NFLifecycleManagementNotification_def.yaml | 41 +-- .../VNFPerformanceManagement.yaml | 58 ++-- .../VNFPerformanceManagementNotification.yaml | 15 +- 16 files changed, 299 insertions(+), 284 deletions(-) diff --git a/src/SOL002/APIVersion/APIVersion.yaml b/src/SOL002/APIVersion/APIVersion.yaml index dee16ad3..642b771b 100644 --- a/src/SOL002/APIVersion/APIVersion.yaml +++ b/src/SOL002/APIVersion/APIVersion.yaml @@ -12,11 +12,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V3.3.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.03.01_60/gs_NFV-SOL002v030301p.pdf + description: ETSI GS NFV-SOL 002 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf paths: /vnfconfig/api_versions: @@ -28,4 +28,6 @@ paths: /vnflcm/api_versions: $ref: ../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions /vnfpm/api_versions: + $ref: ../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions + /lcmcoord/api_versions: $ref: ../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions \ No newline at end of file diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index a437fd19..d24bbeaf 100644 --- a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml +++ b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml @@ -12,11 +12,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V3.3.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.03.01_60/gs_NFV-SOL002v030301p.pdf + description: ETSI GS NFV-SOL 002 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf servers: - url: http://127.0.0.1/vnfconfig/v1 diff --git a/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml index d56c1edc..2eb1cdde 100644 --- a/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml +++ b/src/SOL002/VNFConfiguration/definitions/SOL002VNFConfiguration_def.yaml @@ -76,6 +76,8 @@ definitions: VnfConfigurationData: description: > This type represents configuration parameters of a VNF instance. + * NOTE: ETSI GS NFV-SOL 001 specifies the structure and format of + the VNFD based on TOSCA specifications. type: object properties: extCpConfig: @@ -92,12 +94,14 @@ definitions: vnfSpecificData: description: > Additional configurable properties of the VNF instance declared in the - VNFD as "VnfConfigurableProperties". + VNFD as "VnfConfigurableProperties". see note. $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs' VnfcConfigurationData: description: > This type represents configuration parameters of a VNFC instance. + * NOTE: ETSI GS NFV-SOL 001 specifies the structure and format + of the VNFD based on TOSCA specifications. type: object required: - vnfcInstanceId @@ -121,7 +125,7 @@ definitions: vnfcSpecificData: description: > Additional configurable properties of the VNFC instance declared in the - VNFD as "VnfcConfigurableProperties". + VNFD as "VnfcConfigurableProperties". See note. $ref: '../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs' CpConfiguration: diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 46a38fcc..77a35b18 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -15,8 +15,8 @@ info: version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V3.3.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.03.01_60/gs_NFV-SOL002v030301p.pdf + description: ETSI GS NFV-SOL 002 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf servers: - url: http://127.0.0.1/vnffm/v1 @@ -592,7 +592,8 @@ components: IndividualSubscription.Get: description: | 200 OK - Shall be returned when information about an individual subscription has been read successfully. The response body shall contain a representation of the "Individual subscription" resource. + Shall be returned when information about an individual subscription has been read successfully. + The response body shall contain a representation of the "Individual subscription" resource. headers: Version: description: The used API version. @@ -602,7 +603,8 @@ components: type: string WWW-Authenticate: description: | - Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. + Challenge if the corresponding HTTP request has not provided authorization, or error + details if the corresponding HTTP request has provided an invalid authorization token. style: simple explode: false schema: diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index 67dafb76..94784582 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -15,8 +15,8 @@ info: version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V3.3.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.03.01_60/gs_NFV-SOL002v030301p.pdf + description: ETSI GS NFV-SOL 002 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf servers: - url: http://127.0.0.1/callback/v1 diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index 7a4f7f7d..af632465 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -18,8 +18,8 @@ info: version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V3.3.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.03.01_60/gs_NFV-SOL002v030301p.pdf + description: ETSI GS NFV-SOL 002 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf servers: - url: http://127.0.0.1/vnfind/v1 @@ -520,7 +520,8 @@ components: VnfIndicatorSubscription.Get: description: | 200 OK - Shall be returned when information about an individual subscription has been read successfully. The response body shall contain the representation of the "Individual subscription" resource. + Shall be returned when information about an individual subscription has been read successfully. + The response body shall contain the representation of the "Individual subscription" resource. headers: Version: description: The used API version. diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 059e02f7..b59a46f0 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -18,8 +18,8 @@ info: version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V3.3.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.03.01_60/gs_NFV-SOL002v030301p.pdf + description: ETSI GS NFV-SOL 002 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf servers: - url: http://127.0.0.1/callback/v1 diff --git a/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml b/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml index 8b90980c..bc95b94f 100644 --- a/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml +++ b/src/SOL002/VNFIndicatorNotification/definitions/SOL002VNFIndicatorNotification_def.yaml @@ -5,6 +5,8 @@ definitions: VnfIndicatorValueChangeNotification: description: > This type represents a VNF indicator value change notification. + * NOTE: ETSI GS NFV-SOL 001 specifies the structure and + format of the VNFD based on TOSCA specifications. type: object required: - id @@ -45,7 +47,8 @@ definitions: type: string value: description: > - Provides the value of the VNF indicator. The value format is defined in the VNFD. + Provides the value of the VNF indicator. The value format is defined in the VNFD. + See note. type: object vnfInstanceId: description: > @@ -71,8 +74,10 @@ definitions: SupportedIndicatorsChangeNotification: description: | - This type represents a notification to inform the receiver that the set of indicators supported by a VNF instance - has changed. + This type represents a notification to inform the receiver that the set of indicators + supported by a VNF instance has changed. + * NOTE: ETSI GS NFV-SOL 001 specifies the structure and + format of the VNFD based on TOSCA specifications. type: object required: - id @@ -120,7 +125,7 @@ definitions: name: description: | Human readable name of the VNF indicator. Shall be present if defined in the VNFD. - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + See note. type: string _links: description: | diff --git a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml index 58bc9a24..f11a33e7 100644 --- a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml +++ b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml @@ -12,11 +12,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 002 V3.5.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.03.01_60/gs_NFV-SOL002v030301p.pdf + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf servers: - url: http://127.0.0.1/lcmcoord/v1 @@ -33,7 +33,7 @@ paths: post: description: | This POST method requests the coordination of an LCM operation occurrence with - a management operation executed in the API producer. + a management operation executed in the API producer. See clause 10.4.2.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -74,7 +74,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The GET method reads a coordination result. + The GET method reads a coordination result. See clause 10.4.3.3.2. responses: "200": $ref: '#/components/responses/IndividualLcmCoord.Get' @@ -111,6 +111,7 @@ paths: post: description: | The POST method initiates the cancellation of an ongoing coordination action. + See clause 10.4.4.3.1. responses: "202": $ref: '#/components/responses/coordinationCancel.Post' @@ -169,7 +170,6 @@ components: responses: Coordination.Post: description: | - 201 CREATED Shall be returned when the API producer has chosen the synchronous mode, which may be chosen for coordination actions that finish within the time frame in which an HTTP response is expected. @@ -216,7 +216,6 @@ components: Coordination_async.Post: description: | - 202 Accepted Shall be returned when the API producer has chosen the asynchronous mode and the request has been accepted for processing. The response body shall be empty. @@ -260,7 +259,6 @@ components: IndividualLcmCoord.Get: description: | - 200 OK Shall be returned when the coordination is finished and the coordination result has been read successfully. A representation of the "Individual coordination action" resource shall be returned in the response body. headers: @@ -291,7 +289,6 @@ components: coordinationCancel.Post: description: | - 202 Accepted Shall be returned when the cancellation request has been accepted for processing. The response shall have an empty payload body. headers: diff --git a/src/SOL002/VNFLifecycleCoordination/definitions/SOL002VNFLifecycleCoordination_def.yaml b/src/SOL002/VNFLifecycleCoordination/definitions/SOL002VNFLifecycleCoordination_def.yaml index 633f418c..ce9dbbe9 100644 --- a/src/SOL002/VNFLifecycleCoordination/definitions/SOL002VNFLifecycleCoordination_def.yaml +++ b/src/SOL002/VNFLifecycleCoordination/definitions/SOL002VNFLifecycleCoordination_def.yaml @@ -132,3 +132,13 @@ definitions: description: > Related VNF instance. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + + inputParams: + type: object + required: + - vnfcInstanceIds + properties: + vnfcInstanceIds: + description: > + Identifier of the VNF instance which this coordination request is related to. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index e05122db..ae038b9c 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -15,8 +15,8 @@ info: version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V3.3.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.03.01_60/gs_NFV-SOL002v030301p.pdf + description: ETSI GS NFV-SOL 002 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf servers: - url: http://127.0.0.1/vnflcm/v1 @@ -32,7 +32,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The GET method queries information about multiple VNF instances. + The GET method queries information about multiple VNF instances. See clause 5.4.2.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter @@ -72,6 +72,7 @@ paths: post: description: | The POST method creates a new VNF instance resource based on a VNF package that is onboarded and in "ENABLED" state. + See clause 5.4.2.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -112,7 +113,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - Information about a VNF instance by reading an "Individual VNF instance". + Information about a VNF instance by reading an "Individual VNF instance". See clause 5.4.3.3.2. responses: "200": $ref: '#/components/responses/IndividualVnfInstance.Get' @@ -143,7 +144,7 @@ paths: delete: description: | - This method deletes an "Individual VNF instance" resource. + This method deletes an "Individual VNF instance" resource. See clause 5.4.3.3.5. responses: "204": $ref: '#/components/responses/IndividualVnfInstance.Delete' @@ -176,10 +177,7 @@ paths: patch: description: | - This method modifies an "Individual VNF instance" resource. Changes to the VNF configurable properties are - applied to the configuration in the VNF instance, and are reflected in the representation of this resource. - Other changes are applied to the VNF instance information managed by the VNFM, and are reflected in the - representation of this resource. + This method modifies an "Individual VNF instance" resource. See clause 5.4.3.3.4. requestBody: $ref: '#/components/requestBodies/VnfInstanceModificationRequest' responses: @@ -221,7 +219,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization post: description: | - The POST method instantiates a VNF instance. + The POST method instantiates a VNF instance. See clause 5.4.4.3.1. requestBody: $ref: '#/components/requestBodies/VnfInstanceInstantiationRequest' responses: @@ -261,7 +259,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization post: description: | - The POST method requests to scale a VNF instance resource incrementally. + The POST method requests to scale a VNF instance resource incrementally. See clause 5.4.5.3.1. requestBody: $ref: '#/components/requestBodies/VnfInstanceScaleRequest' responses: @@ -301,7 +299,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization post: description: | - The POST method requests to scale a VNF instance resource to a target level. + The POST method requests to scale a VNF instance resource to a target level. See clause 5.4.6.3.1. requestBody: $ref: '#/components/requestBodies/VnfInstanceScaleToLevelRequest' responses: @@ -341,7 +339,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization post: description: | - The POST method changes the deployment flavour of a VNF instance. + The POST method changes the deployment flavour of a VNF instance. See clause 5.4.7.3.1. requestBody: $ref: '#/components/requestBodies/VnfInstanceChangeFlavourRequest' responses: @@ -382,7 +380,7 @@ paths: post: description: | The POST method triggers the VNFM to terminate a VNF instance and to request to the VIM the release of its - used virtualised resources. + used virtualised resources. See clause 5.4.8.3.1. requestBody: $ref: '#/components/requestBodies/VnfInstanceTerminationRequest' responses: @@ -422,7 +420,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization post: description: | - The POST method requests to heal a VNF instance. + The POST method requests to heal a VNF instance. See clause 5.4.9.3.1. requestBody: $ref: '#/components/requestBodies/VnfInstanceHealRequest' responses: @@ -462,7 +460,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization post: description: | - The POST method changes the operational state of a VNF instance. + The POST method changes the operational state of a VNF instance. See clause 5.4.10.3.1. requestBody: $ref: '#/components/requestBodies/VnfInstanceOperateRequest' responses: @@ -502,7 +500,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization post: description: | - The POST method changes the external connectivity of a VNF instance. + The POST method changes the external connectivity of a VNF instance. See clause 5.4.11.3.1. requestBody: $ref: '#/components/requestBodies/VnfInstanceChangeExtConnRequest' responses: @@ -543,6 +541,7 @@ paths: post: description: | The POST method changes the current VNF package on which the VNF instance is based. + See clause 5.4.11a.3.1. requestBody: $ref: '#/components/requestBodies/VnfInstanceChangeVnfPkgRequest' responses: @@ -581,7 +580,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The client can use this method to query status information about multiple VNF lifecycle management operation occurrences. + The client can use this method to query status information about multiple VNF lifecycle + management operation occurrences. See clause 5.4.12.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/all_fields @@ -625,7 +625,7 @@ paths: get: description: | The client can use this method to retrieve status information about a VNF lifecycle management operation occurrence - by reading an "Individual VNF LCM operation occurrence" resource. + by reading an "Individual VNF LCM operation occurrence" resource. See clause 5.4.13.3.2. responses: "200": $ref: '#/components/responses/IndividualVnfLcmOpOcc.Get' @@ -663,6 +663,7 @@ paths: description: | The POST method initiates retrying a VNF lifecycle operation if that operation has experienced a temporary failure, i.e. the related "Individual VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + See clause 5.4.14.3.1. responses: "202": $ref: '#/components/responses/VnfLcmOpOccRetry.Post' @@ -702,6 +703,7 @@ paths: description: | The POST method initiates rolling back a VNF lifecycle operation if that operation has experienced a temporary failure, i.e. the related "Individual VNF LCM operation occurrence" resource is in "FAILED_TEMP" state. + See clause 5.4.15.3.1. responses: "202": $ref: '#/components/responses/VnfLcmOpOccRollback.Post' @@ -740,7 +742,7 @@ paths: post: description: | The POST method marks a VNF lifecycle management operation occurrence as "finally failed" if that operation - occurrence is in "FAILED_TEMP" state. + occurrence is in "FAILED_TEMP" state. See clause 5.4.16.3.1. responses: "200": $ref: '#/components/responses/VnfLcmOpOccFail.Post' @@ -780,6 +782,7 @@ paths: description: | The POST method initiates cancelling an ongoing VNF lifecycle operation while it is being executed or rolled back, i.e. the related "Individual VNF LCM operation occurrence" is either in "PROCESSING" or "ROLLING_BACK" state. + See clause 5.4.17.3.1. responses: "202": $ref: '#/components/responses/VnfLcmOpOccCancel.Post' @@ -817,7 +820,7 @@ paths: get: description: | The GET method queries the list of active subscriptions of the functional block that invokes the method. It can - be used e.g. for resynchronization after error situations. + be used e.g. for resynchronization after error situations. See clause 5.4.18.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker @@ -851,7 +854,7 @@ paths: post: description: | - The POST method creates a new subscription. + The POST method creates a new subscription. See clause 5.4.18.3.1. requestBody: $ref: '#/components/requestBodies/VnfLcmSubscriptionRequest' responses: @@ -892,6 +895,7 @@ paths: get: description: | The GET method retrieves information about a subscription by reading an "Individual subscription" resource. + See clause 5.4.19.3.2. responses: "200": $ref: '#/components/responses/IndividualSubscription.Get' @@ -922,7 +926,7 @@ paths: delete: description: | - The DELETE method terminates an individual subscription. + The DELETE method terminates an individual subscription. See clause 5.4.19.3.5. responses: "204": $ref: '#/components/responses/IndividualSubscription.Delete' @@ -959,7 +963,7 @@ paths: post: description: | The POST method requests tacking a VNF instance snapshot and populating a previously created VNF snapshot resource - (refer to clause 5.4.23.3.1) with the snapshot content. + (refer to clause 5.4.23.3.1) with the snapshot content. See clause 5.4.21.3.1. requestBody: $ref: '#/components/requestBodies/VnfInstanceCreateSnapshotRequest' responses: @@ -999,7 +1003,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization post: description: | - The POST method requests reverting a VNF/VNFC instance to a VNF/VNFC snapshot. + The POST method requests reverting a VNF/VNFC instance to a VNF/VNFC snapshot. See clause 5.4.22.3.1. requestBody: $ref: '#/components/requestBodies/VnfInstanceRevertToSnapshotRequest' responses: @@ -1038,7 +1042,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization post: description: | - The POST method creates a new individual VNF snapshot resource. + The POST method creates a new individual VNF snapshot resource. See clause 5.4.23.3.1. requestBody: $ref: '#/components/requestBodies/VnfSnapshotsRequest' responses: @@ -1073,7 +1077,7 @@ paths: get: description: | - The GET method queries information about multiple VNF/VNFC snapshots. + The GET method queries information about multiple VNF/VNFC snapshots. See clause 5.4.23.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter @@ -1118,6 +1122,7 @@ paths: get: description: | The GET method retrieves information about a VNF /VNFC snapshot by reading an individual VNF snapshot resource. + See clause 5.4.24.3.2. responses: "200": $ref: '#/components/responses/IndividualVnfSnapshot.Get' @@ -1149,7 +1154,7 @@ paths: delete: description: | This method deletes an individual VNF snapshot resource and the associated VNF snapshot information managed by - the VNFM, and any resource associated to the VNF/VNFC snapshot managed by the VIM. + the VNFM, and any resource associated to the VNF/VNFC snapshot managed by the VIM. See clause 5.4.24.3.5. responses: "200": $ref: '#/components/responses/IndividualVnfSnapshot.Delete' diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index c706704e..49817600 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -5,6 +5,33 @@ definitions: VnfInstance: description: > This type represents a VNF instance. + * NOTE 1: Modifying the value of this attribute shall not be performed when conflicts exist + between the previous and the newly referred VNF package, i.e. when the new VNFD is + changed with respect to the previous VNFD in other aspects than merely referencing + to other VNF software images. In order to avoid misalignment of the VnfInstance with + the current VNF's on-boarded VNF package, the values of attributes in the VnfInstance + that have corresponding attributes in the VNFD shall be kept in sync with the values in the VNFD. + * NOTE 2: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + * NOTE 3: VNF configurable properties are sometimes also referred to as configuration parameters + applicable to a VNF. Some of these are set prior to instantiation and cannot be modified + if the VNF is instantiated, some are set prior to instantiation (are part of initial configuration) + and can be modified later, and others can be set only after instantiation. + The applicability of certain configuration may depend on the VNF and the required operation of + the VNF at a certain point in time. + * NOTE 4: Upon creation of the VnfInstance structure, the VNFM shall create and initialize all child + attributes of "vnfConfigurableProperties", "metadata" and "extensions" that were declared + in the VNFD with a defined initial value. The defined initial values can be declared in the VNFD, + and/or, in case of "metadata", obtained from the "CreateVnfRequest" structure. Child attributes of + "vnfConfigurableProperties", "metadata" and "extensions" that have no defined initial value shall + not be created, in order to be consistent with the semantics of the JSON Merge Patch method + (see IETF RFC 7396) that interprets null values as deletion request. + * NOTE 5: It is possible to have several ExtManagedVirtualLinkInfo for the same VNF internal VL in case + of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkInfo corresponding + to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc + and externally-managed multi-site VL instance (refer to clause 5.5.3.5). + * NOTE 6: Even though externally-managed internal VLs are also used for VNF-internal connectivity, + they shall not be listed in the "vnfVirtualLinkResourceInfo" attribute as this would be redundant. + type: object required: - id @@ -32,16 +59,7 @@ definitions: type: string vnfdId: description: > - Identifier of the VNFD on which the VNF instance is based. - This attribute can be modified with the PATCH method. - Modifying the value of this attribute shall not be performed - when conflicts exist between the previous and the newly referred - VNF package, i.e. when the new VNFD is not changed with respect - to the previous VNFD apart from referencing to other VNF software - images. In order to avoid misalignment of the VnfInstance with - the current VNF's on-boarded VNF package, the values of attributes - in the VnfInstance that have corresponding attributes in the VNFD - shall be kept in sync with the values in the VNFD. + Identifier of the VNFD on which the VNF instance is based. See note 1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfProvider: description: > @@ -74,16 +92,9 @@ definitions: Configurable properties referred in these attributes shall be declared in the VNFD. The declaration of configurable properties in the VNFD can optionally - contain the specification of initial values. - ETSI GS NFV-SOL 001 specifies the structure and format of the - VNFD based on TOSCA specifications. - VNF configurable properties are sometimes also referred to as configuration - parameters applicable to a VNF. Some of these are set prior to instantiation - and cannot be modified if the VNF is instantiated, some are set prior to - instantiation (are part of initial configuration) and can be modified later, - and others can be set only after instantiation. The applicability of certain - configuration may depend on the VNF and the required operation of the VNF at - a certain point in time. + contain the specification of initial values. See note 2, note 3 and note 4. The VNFM + shall reject requests to write configurable properties that are not declared in the + VNFD with a "422 Unprocessable entity" error response as defined in clause 6.4 of ETSI GS NFV SOL 013. These configurable properties include the following standard attributes, which are declared in the VNFD if auto-scaling and/or auto-healing are supported by the VNF: @@ -93,7 +104,11 @@ definitions: - isAutohealEnabled: If present, the VNF supports auto-healing. If set to true, auto-healing is currently enabled. If set to false, auto-healing is currently disabled. - This attributeThese attributes can be modified with the PATCH method. + These configurable properties can be initialized with default values from the VNFD (see note 4). + Configurable properties can be modified with values passed in the request structures of certain + LCM operations, such as the InstantiateVnfRequest structure. + Further, these configurable properties can be created, modified or deleted with the PATCH method. + In addition, the provisions in clause 5.7 shall apply. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" instantiationState: description: > @@ -125,6 +140,8 @@ definitions: description: > Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how "big" the VNF has been scaled w.r.t. that aspect. + This attribute shall be present if the VNF supports scaling. + See clause B.2 for an explanation of VNF scaling. type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo" @@ -222,15 +239,14 @@ definitions: Modifying the values of these attributes has no effect on the VNF instance, it only affects the information represented in the VnfInstance structure. - Metadata that VNF provider foresees shall be declared in the VNFD. The VNFM shall - accept requests to write metadata that are not are declared in the VNFD. + Metadata that VNF provider foresees shall be declared in the VNFD. The declaration of metadata in + the VNFD can optionally contain the specification of initial values. See note 2 and note 4. The VNFM shall + accept requests to write metadata that are not are declared in the VNFD. - These attributes can be initialized with default values from VNFD and/or with values + These attributes can be initialized with default values from VNFD (see note 4) and/or with values passed in the CreateVnfRequest structure (see clause 5.5.2.3). - This attribute can be modified with the PATCH method. - - ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + These attributes can be created, modified or removed with the PATCH method. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > @@ -338,6 +354,13 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" InstantiateVnfRequest: + description: > + This type represents request parameters for the "Instantiate VNF" operation. + * NOTE: The indication of externally-managed internal VLs is needed in case networks have been + pre-configured for use with certain VNFs, for instance to ensure that these networks have certain + properties such as security or acceleration features, or to address particular network topologies. + The present document assumes that externally-managed internal VLs are managed by the NFVO and + created towards the VIM. type: object required: - flavourId @@ -360,11 +383,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" extManagedVirtualLinks: description: > - Information about external VLs to connect the VNF to. - The indication of externally-managed internal VLs is needed in case networks have been pre-configured for - use with certain VNFs, for instance to ensure that these networks have certain properties such as security - or acceleration features, or to address particular network topologies. The present document assumes that - externally-managed internal VLs are managed by the NFVO and created towards the VIM. + Information about external VLs to connect the VNF to. See note. type: array items: $ref: "#/definitions/ExtManagedVirtualLinkData" @@ -395,6 +414,11 @@ definitions: ChangeVnfFlavourRequest: description: > This type represents request parameters for the "Change VNF flavour" operation. + * NOTE: The indication of externally-managed internal VLs is needed in case networks have been + pre-configured for use with certain VNFs, for instance to ensure that these networks have certain + properties such as security or acceleration features, or to address particular network topologies. + The present document assumes that externally-managed internal VLs are managed by the NFVO and + created towards the VIM. type: object required: - newFlavourId @@ -417,11 +441,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" extManagedVirtualLinks: description: > - Information about external VLs to connect the VNF to. - The indication of externally-managed internal VLs is needed in case networks have been pre-configured for use - with certain VNFs, for instance to ensure that these networks have certain properties such as security or - acceleration features, or to address particular network topologies. The present document assumes that - externally-managed internal VLs are managed by the NFVO and created towards the VIM. + Information about external VLs to connect the VNF to. See note. type: array items: $ref: "#/definitions/ExtManagedVirtualLinkData" @@ -445,13 +465,19 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" TerminateVnfRequest: + description: > + This type represents request parameters for the "Terminate VNF" operation. + * NOTE: In case of forceful termination, the VNF instance is terminated immediately. + If the VNF is still in service, this can adversely impact the network service, + and therefore, the EM needs to determine if forceful termination is applicable + in the particular situation. type: object required: - terminationType properties: terminationType: description: > - Indicates the type of termination is requested. + Indicates the type of termination is requested. See note. Permitted values: * FORCEFUL: The VNFM will shut down the VNF and release the resources immediately after accepting the request. * GRACEFUL: The VNFM will first arrange to take the VNF out of service after accepting the request. Once the @@ -508,6 +534,13 @@ definitions: OperateVnfRequest: description: > This type represents request parameters for the "Operate VNF" operation. + * NOTE: The "stopType" and "gracefulStopTimeout" attributes shall be absent, when the "changeStateTo" + attribute is equal to "STARTED". The "gracefulStopTimeout" attribute shall be present, when the + "changeStateTo" is equal to "STOPPED" and the "stopType" attribute is equal to "GRACEFUL". + The "gracefulStopTimeout" attribute shall be absent, when the "changeStateTo" attribute is equal to + "STOPPED" and the "stopType" attribute is equal to "FORCEFUL". The request shall be treated as if + the "stopType" attribute has been set to "FORCEFUL", when the "changeStateTo" attribute is equal + to "STOPPED" and the "stopType" attribute is absent. type: object required: - changeStateTo @@ -526,13 +559,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfOperationalStateType" stopType: description: > - It signals whether forceful or graceful stop is requested. - The "stopType" and "gracefulStopTimeout" attributes shall be absent, when the "changeStateTo" attribute is - equal to "STARTED". The "gracefulStopTimeout" attribute shall be present, when the "changeStateTo" is equal to - "STOPPED" and the "stopType" attribute is equal to "GRACEFUL". The "gracefulStopTimeout" attribute shall be - absent, when the "changeStateTo" attribute is equal to "STOPPED" and the "stopType" attribute is equal to - "FORCEFUL". The request shall be treated as if the "stopType" attribute has been set to "FORCEFUL", when the - "changeStateTo" attribute is equal to "STOPPED" and the "stopType" attribute is absent. + It signals whether forceful or graceful stop is requested. See note type: string enum: - FORCEFUL @@ -540,13 +567,7 @@ definitions: gracefulStopTimeout: description: > The time interval (in seconds) to wait for the VNF to be taken out of service during graceful stop, - before stopping the VNF. - The "stopType" and "gracefulStopTimeout" attributes shall be absent, when the "changeStateTo" attribute is - equal to "STARTED". The "gracefulStopTimeout" attribute shall be present, when the "changeStateTo" is equal to - "STOPPED" and the "stopType" attribute is equal to "GRACEFUL". The "gracefulStopTimeout" attribute shall be - absent, when the "changeStateTo" attribute is equal to "STOPPED" and the "stopType" attribute is equal to - "FORCEFUL". The request shall be treated as if the "stopType" attribute has been set to "FORCEFUL", when the - "changeStateTo" attribute is equal to "STOPPED" and the "stopType" attribute is absent. + before stopping the VNF. See note. type: integer additionalParams: description: > @@ -581,6 +602,11 @@ definitions: description: > This type represents request parameters for the "Change current VNF package" operation to replace the VNF package on which a VNF instance is based. + * NOTE: The indication of externally-managed internal VLs is needed in case networks have been + pre-configured for use with certain VNFs, for instance to ensure that these networks have certain + properties such as security or acceleration features, or to address particular network topologies. + The present document assumes that externally-managed internal VLs are managed by the NFVO and created + towards the VIM. type: object required: - vnfdId @@ -598,11 +624,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtVirtualLinkData" extManagedVirtualLinks: description: > - Information about internal VLs that are managed by other entities than the VNFM. - The indication of externally-managed internal VLs is needed in case networks have been pre-configured for use - with certain VNFs, for instance to ensure that these networks have certain properties such as security or - acceleration features, or to address particular network topologies. The present document assumes that - externally-managed internal VLs are managed by the NFVO and created towards the VIM. + Information about internal VLs that are managed by other entities than the VNFM. See note. type: array items: $ref: "#/definitions/ExtManagedVirtualLinkData" @@ -630,7 +652,6 @@ definitions: i.e. modifications to a resource representation based on the "VnfInstance" data type. The attributes of "VnfInstance" that can be modified according to the provisions in clause 5.5.2.2 are included in the "VnfInfoModificationRequest" data type. - The "VnfInfoModificationRequest" data type shall comply with the provisions defined in table 5.5.2.12-1. type: object properties: vnfInstanceName: @@ -667,6 +688,22 @@ definitions: description: > Modifications of certain entries in the "vnfcInfo" attribute array in the "instantiatedVnfInfo" attribute of "VnfInstance" to be used as "newList" as defined below this table. + The following provisions shall apply when modifying an attribute that is an array of objects of type + "VnfcInfo" by supplying an array of objects of type "VnfcInfoModifications". + Assumptions: + 1) "oldList" is the "VnfcInfo" array to be modified and "newList" is the "VnfcInfoModifications" + array that contains the changes. + 2) "oldEntry" is an entry in "oldList" and "newEntry" is an entry in "newList". + 3) A "newEntry" has a "corresponding entry" if there exists an "oldEntry" that has the same content + of the "id" attribute as the "newEntry"; a "newEntry" has no corresponding entry if no such "oldEntry" exists. + 4) In any array of "VnfcInfo" resp. "VnfcInfoModifications" structures, the content of "id" is unique + (i.e. there are no two entries with the same content of "id"). + Provisions: + 1) For each "newEntry" in "newList" that has no corresponding entry in "oldList", + the "oldList" array shall be modified by adding that "newEntry". + 2) For each "newEntry" in "newList" that has a corresponding "oldEntry" in "oldList", + the value of "oldEntry" shall be updated with the content of "newEntry" as specified for + the data type of "newEntry (refer to clause 5.5.3.24 for the data type "VnfcInfoModifications"). type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcInfoModifications" @@ -727,14 +764,14 @@ definitions: description: | This type represents request parameters for the creation of an "Individual VNF snapshot" resource which can be populated with content obtained by invoking the "Create VNF snapshot" LCM operation or extracted from a VNF - snapshot package. It shall comply with the provisions defined in table 5.5.2.20-1. + snapshot package. + * NOTE: The present attribute shall be provided if the "Individual VNF snapshot" resource + is requested to be created and be filled from a VNF snapshot package extraction. type: object properties: vnfSnapshotPkgId: description: | - Identifier of the VNF snapshot package information held by the NFVO. - The present attribute shall be provided if the "Individual VNF snapshot" resource is requested to be created - and be filled from a VNF snapshot package extraction. + Identifier of the VNF snapshot package information held by the NFVO. See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" VnfSnapshotInfo: @@ -828,6 +865,14 @@ definitions: VnfcSnapshotInfo: description: > This type represents a VNFC snapshot. + * NOTE 1: The identifier of the compute snapshot resource is assigned during creation of a VNFC + snapshot being returned from the VIM as output data in the response message of the individual + resource operations. This attribute shall only be present for a VNFC snapshot that has been + newly created by the VNFM as a result of the "Create VNF snapshot task". + NOTE 2: The identifier of the storage snapshot resource is assigned during creation of a VNFC snapshot + being returned from the VIM as output data in the response message of the individual resource + operations. This attribute shall only be present for a VNFC snapshot with an associated storage + resource and that has been newly created by the VNFM as a result of the "Create VNF snapshot task". type: object required: - id @@ -864,10 +909,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcInfo" computeSnapshotResource: description: > - Reference to a compute snapshot resource. The identifier of the compute snapshot resource is - assigned during creation of a VNFC snapshot being returned from the VIM as output data in the response message - of the individual resource operations. This attribute shall only be present for a VNFC snapshot that has been - newly created by the VNFM as a result of the "Create VNF snapshot task". + Reference to a compute snapshot resource. See note 1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" storageSnapshotResources: description: > @@ -884,10 +926,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" storageSnapshotResource: description: > - Reference to a storage snapshot resource. The identifier of the storage snapshot resource is assigned during - creation of a VNFC snapshot being returned from the VIM as output data in the response message of the individual - resource operations. This attribute shall only be present for a VNFC snapshot with an associated storage resource - and that has been newly created by the VNFM as a result of the "Create VNF snapshot task". + Reference to a storage snapshot resource. See note 2. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" userDefinedData: description: > @@ -907,6 +946,10 @@ definitions: - GRACEFUL ExtManagedVirtualLinkData: + description: > + This type represents an externally-managed internal VL. + * NOTE: The information about the VIM connection referenced by the VIM connection id is known to the VNFM. + Moreover, the identifier of the VIM connection provides scope to the resourceId. type: object required: - id @@ -927,7 +970,7 @@ definitions: description: > Identifier of the VIM connection to manage this resource. This attribute shall only be supported and present if VNF-related - resource management in direct mode is applicable. + resource management in direct mode is applicable. See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" resourceProviderId: description: > @@ -981,6 +1024,11 @@ definitions: description: > This type represents the information on virtualised compute and storage resources used by a VNFC in a VNF instance. + * NOTE 1: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + * NOTE 2: A VNFC CP is "connected to" an external CP if the VNFC CP is connected to an internal VL that + exposes an external CP. A VNFC CP is "exposed as" an external CP if it is connected directly + to an external VL. + * NOTE 3: The information can be omitted because it is already available as part of the external CP information. type: object required: - id @@ -993,7 +1041,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" vduId: description: > - Reference to the applicable VDU in the VNFD. + Reference to the applicable VDU in the VNFD. See note 1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" vnfdId: description: > @@ -1020,11 +1068,6 @@ definitions: vnfcCpInfo: description: > All the CPs of the VNFC instance. - Shall be present when that particular CP of the VNFC instance is exposed as an external CP of the VNF instance - or is connected to an external CP of the VNF instance. - A VNFC CP is "connected to" an external CP if the VNFC CP is connected to an internal VL that exposes an external CP. - A VNFC CP is "exposed as" an external CP if it is connected directly to an external VL. - May be present otherwise. type: array items: type: object @@ -1039,20 +1082,18 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" cpdId: description: > - Identifier of the VDU CPD, cpdId, in the VNFD. + Identifier of the VDU CPD, cpdId, in the VNFD. See note 1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" vnfExtCpId: description: > Identifier of the related external CP. Shall be present when the VNFC CP is exposed as an external CP of - the VNF instance or connected to an external CP of the VNF instance (see note) and shall be absent otherwise. - - NOTE: A VNFC CP is "connected to" an external CP if the VNFC CP is connected to an internal VL that exposes - an external CP. A VNFC CP is "exposed as" an external CP if it is connected directly to an external VL. + the VNF instance or connected to an external CP of the VNF instance (see note 2) and shall be absent otherwise. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" cpProtocolInfo: description: > Network protocol information for this CP. May be omitted if the VNFC CP is exposed as an external CP. The information can be omitted because it is already available as part of the external CP information. + See note 3. type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/CpProtocolInfo" @@ -1306,11 +1347,7 @@ definitions: description: > Reference to the VirtualNetwork resource. Detailed information is (for new and modified resources) or has been (for removed - resources) available from the VIM. - When signalling the addition (LINK_PORT_ADDED) or removal (LINK_PORT_REMOVED) of VNF link ports, the - "networkResource" attribute refers to the affected virtual link instance, not the link port instance. - The resource handles of the affected VNF link ports can be found by dereferencing the identifiers in - the "vnfLinkPortIds" attribute. + resources) available from the VIM. See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" vnfLinkPortIds: description: > @@ -1391,6 +1428,20 @@ definitions: description: > This type represents a VNF lifecycle management operation occurrence. Shall be set to the value of the "id" attribute in the "Grant" representing the associated "Individual Grant", if such grant exists. + * NOTE 1: This allows the API consumer to obtain the information contained in the latest "result" + notification if it has not received it due to an error or a wrongly configured subscription filter. + * NOTE 2: Not more than one of changedInfo and modificationsTriggeredByVnfPkgChange shall be present. + * NOTE 3: For a particular affected VL, there shall be as many "AffectedVirtualLink" entries as needed + for signalling the different types of changes, i.e. one per virtual link and change type. + For instance, in the case of signaling affected VL instances involving the addition of a + particular VL instance with links ports, one "AffectedVirtualLink" entry signals the addition + of the VL by using the "changeType" attribute of "AffectedVirtualLink" structure equal to "ADDED", + and another "AffectedVirtualLink" entry signals the addition of VNF link ports of the VL by using the + "changeType" equal to "LINK_PORT_ADDED". + * NOTE 4: A coordination action has timed out if the VNFM has not been able to read the + "Individual coordination action" resource within a timeout interval after requesting the coordination + to be started or to be cancelled. The length of the timeout interval is defined by means outside + the scope of the present document. type: object oneOf: - required: @@ -1494,57 +1545,35 @@ definitions: affectedVnfcs: description: > Information about VNFC instances that were affected during the - lifecycle operation. - This allows the API consumer to obtain the information contained in - the latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. + lifecycle operation. See note 1. type: array items: $ref: "#/definitions/AffectedVnfc" affectedVirtualLinks: description: > Information about VL instances that were affected during the - lifecycle operation. - This allows the API consumer to obtain the information contained in - the latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. - For a particular affected VL, there shall be as many "AffectedVirtualLink" - entries as needed for signalling the different types of changes, i.e., - one per virtual link and change type. For instance, in the case of - signaling affected VL instances involving the addition of a particular VL - instance with links ports, one "AffectedVirtualLink" entry signals the - addition of the VL by using the "changeType" attribute of "AffectedVirtualLink" - structure equal to "ADDED", and another "AffectedVirtualLink" entry signals - the addition of VNF link ports of the VL by using the "changeType" equal to - "LINK_PORT_ADDED". + lifecycle operation. See note 1 and note 3. type: array items: $ref: "#/definitions/AffectedVirtualLink" affectedExtLinkPorts: description: > - Information about external VNF link ports that were affected during the lifecycle operation. This allows - the API consumer to obtain the information contained in the latest "result" notification if it has not - received it due to an error or a wrongly configured subscription filter. + Information about external VNF link ports that were affected during the lifecycle operation. + See note 1. type: array items: $ref: "#/definitions/AffectedExtLinkPort" affectedVirtualStorages: description: > Information about virtualised storage instances that were affected - during the lifecycle operation. - This allows the API consumer to obtain the information contained - in the latest "result" notification if it has not received it due to - an error or a wrongly configured subscription filter. + during the lifecycle operation. See note 1. type: array items: $ref: "#/definitions/AffectedVirtualStorage" changedInfo: description: > Information about the changed VNF instance information, including - VNF configurable properties, if applicable. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. + VNF configurable properties, if applicable. See note 1 and note 2. $ref: "#/definitions/VnfInfoModifications" affectedVipCps: description: > @@ -1555,10 +1584,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/AffectedVipCp" changedExtConnectivity: description: > - Information about changed external connectivity, if applicable. - This allows the NFVO to obtain the information contained in the - latest "result" notification if it has not received it due to an - error or a wrongly configured subscription filter. + Information about changed external connectivity, if applicable. See note 1. type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtVirtualLinkInfo" @@ -1566,9 +1592,7 @@ definitions: description: > Information about performed changes of "VnfInstance" attributes triggered by changing the current VNF package, if applicable. Shall be absent if the "operation" attribute is different from "CHANGE_VNFPKG". - This allows the API consumer to obtain the information contained in the latest "result" notification if it has - not received it due to an error or a wrongly configured subscription filter. - Not more than one of changedInfo and modificationsTriggeredByVnfPkgChange shall be present. + See note 1 and note 2. $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ModificationsTriggeredByVnfPkgChange" vnfSnapshotInfoId: description: > @@ -1601,14 +1625,7 @@ definitions: coordinationResult: description: > The result of executing the coordination action which also implies the action to - be performed by the VNFM as the result of this coordination. - - Shall be present if the coordination has been finished. Shall be absent if the - coordination is ongoing or has timed out (see note 4). - NOTE: A coordination action has timed out if the VNFM has not been able to - read the "Individual coordination action" resource within a timeout interval - after requesting the coordination to be started or to be cancelled. The length - of the timeout interval is defined by means outside the scope of the present document. + be performed by the VNFM as the result of this coordination. See note 4. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmCoordResultType" startTime: description: > @@ -1619,10 +1636,6 @@ definitions: The end time of the coordination action. Shall be present for a coordination action that has finished or timed out (see note 4) and shall be absent if the coordination is ongoing. - NOTE: A coordination action has timed out if the VNFM has not been able to - read the "Individual coordination action" resource within a timeout interval - after requesting the coordination to be started or to be cancelled. The length - of the timeout interval is defined by means outside the scope of the present document. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" endpointType: description: > @@ -1736,6 +1749,10 @@ definitions: "VnfInfoModificationRequest" data structure, and additional attributes of the "VnfInstance" data structure that were modified implicitly e.g. when modifying the referenced VNF package. + * NOTE: If present, this attribute (which depends on the value of the "vnfdId" attribute) + was modified implicitly following a request to modify the "vnfdId" attribute, by + copying the value of this attribute from the VNFD in the VNF Package identified + by the "vnfdId" attribute. type: object properties: vnfInstanceName: @@ -1771,22 +1788,12 @@ definitions: vnfProvider: description: > If present, this attribute signals modifications of the - "vnfProvider" attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. + "vnfProvider" attribute in "VnfInstance". See note. type: string vnfProductName: description: > If present, this attribute signals modifications of the - "vnfProductName" attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfPkgId" attribute) was modified implicitly following a request to - modify the "vnfPkgId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfPkgId” attribute. + "vnfProductName" attribute in "VnfInstance". See note. type: string vnfSoftwareVersion: description: > @@ -1796,12 +1803,7 @@ definitions: vnfdVersion: description: > If present, this attribute signals modifications of the - "vnfdVersion" attribute in "VnfInstance". - If present, this attribute (which depends on the value of the - "vnfdId" attribute) was modified implicitly following a request to - modify the "vnfdId" attribute, by copying the value of this - attribute from the VNFD in the VNF Package identified by the - "vnfdId” attribute. + "vnfdVersion" attribute in "VnfInstance". See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" vnfcInfoModifications: description: > diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 413fff58..adb08831 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -16,8 +16,8 @@ info: version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V3.3.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.03.01_60/gs_NFV-SOL002v030301p.pdf + description: ETSI GS NFV-SOL 002 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf servers: - url: http://127.0.0.1/callback/v1 @@ -31,7 +31,7 @@ paths: get: description: | The GET method allows the server to test the notification endpoint that is provided by the API consumer, - e.g. during subscription. + e.g. during subscription. See clause 5.4.20.3.2. responses: "204": $ref: '#/components/responses/VNFLCMNotification.Get' @@ -52,9 +52,8 @@ paths: post: description: | - Notify The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have - previously created an "Individual subscription" resource with a matching filter. + previously created an "Individual subscription" resource with a matching filter. See clause 5.4.20.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -84,7 +83,7 @@ paths: get: description: | The GET method allows the server to test the notification endpoint that is provided by the API consumer, - e.g. during subscription. + e.g. during subscription. See clause 5.4.20.3.2. responses: "204": $ref: '#/components/responses/VNFLCMNotification.Get' @@ -105,9 +104,8 @@ paths: post: description: | - Notify The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have - previously created an "Individual subscription" resource with a matching filter. + previously created an "Individual subscription" resource with a matching filter. See clause 5.4.20.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -137,7 +135,7 @@ paths: get: description: | The GET method allows the server to test the notification endpoint that is provided by the API consumer, - e.g. during subscription. + e.g. during subscription. See clause 5.4.20.3.2. responses: "204": $ref: '#/components/responses/VNFLCMNotification.Get' @@ -158,9 +156,8 @@ paths: post: description: | - Notify The POST method delivers a notification from the API producer to an API consumer. The API consumer shall have - previously created an "Individual subscription" resource with a matching filter. + previously created an "Individual subscription" resource with a matching filter. See clause 5.4.20.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: diff --git a/src/SOL002/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml b/src/SOL002/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml index 8dcb453b..e7bc25ca 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/definitions/SOL002VNFLifecycleManagementNotification_def.yaml @@ -34,6 +34,18 @@ definitions: been executed. The new state shall be set in the "Individual VNF LCM operation occurrence" resource before the notification about the state change is sent. + * NOTE 1: Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set + to "FULL" and the operation has performed any resource modification. Shall be absent otherwise. + This attribute contains information about the cumulative changes to virtualised resources that + were performed so far by the VNF LCM operation occurrence and by any of the error handling + procedures for that operation occurrence. + NOTE 2: For a particular affected VL, there shall be as many "AffectedVirtualLink" entries as needed + for signalling the different types of changes, i.e. one per virtual link and change type. + For instance, in the case of signaling affected VL instances involving the addition of a particular + VL instance with links ports, one "AffectedVirtualLink" entry signals the addition of the VL by using + the "changeType" attribute of "AffectedVirtualLink" structure equal to "ADDED", and another + "AffectedVirtualLink" entry signals the addition of VNF link ports of the VL by using the + "changeType" equal to "LINK_PORT_ADDED". type: object required: - id @@ -116,49 +128,28 @@ definitions: affectedVnfcs: description: > Information about VNFC instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. + lifecycle operation. See note 1. type: array items: $ref: "../../VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/AffectedVnfc" affectedVirtualLinks: description: > Information about VL instances that were affected during the - lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. + lifecycle operation. See note 1 and note 2. type: array items: $ref: "../../VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink" affectedExtLinkPorts: description: > Information about external VNF link ports that were affected during the lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT", the "verbosity" attribute is set to "FULL" - and the operation has performed any resource modification. Shall be absent otherwise. This attribute contains - information about the cumulative changes to virtualised resources that were performed so far by the VNF LCM - operation occurrence and by any of the error handling procedures for that operation occurrence. + See note 1. type: array items: $ref: "../../VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/AffectedExtLinkPort" affectedVirtualStorages: description: > Information about virtualised storage instances that were affected - during the lifecycle operation. - Shall be present if the "notificationStatus" is set to "RESULT" and - the operation has performed any resource modification. Shall be - absent otherwise. This attribute contains information about the - cumulative changes to virtualised resources that were performed so - far by the VNF LCM operation occurrence and by any of the error - handling procedures for that operation occurrence. + during the lifecycle operation. See note 1. type: array items: $ref: "../../VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/AffectedVirtualStorage" diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 6c82924c..b0931616 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -15,8 +15,8 @@ info: version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V3.3.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.03.01_60/gs_NFV-SOL002v030301p.pdf + description: ETSI GS NFV-SOL 002 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf servers: - url: http://127.0.0.1/vnfpm/v2 @@ -32,7 +32,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The API consumer can use this method to retrieve information about PM jobs. + The API consumer can use this method to retrieve information about PM jobs. See clause 6.4.2.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -72,8 +72,7 @@ paths: post: description: | - The POST method creates a PM job. As the result of successful executing this method, a new "Individual PM job" - resource as defined in clause 6.4.3 shall have been created. + The POST method creates a PM job. See clause 6.4.2.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -114,7 +113,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The API consumer can use this method for reading an individual PM job. + The API consumer can use this method for reading an individual PM job. See clause 6.4.3.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: @@ -147,8 +146,7 @@ paths: delete: description: | - This method terminates an individual PM job. As the result of successfully executing this method, the - "Individual PM job" resource shall not exist any longer. + This method terminates an individual PM job. See clause 6.4.3.3.5. responses: "204": $ref: '#/components/responses/IndividualPmJob.Delete' @@ -179,9 +177,7 @@ paths: patch: description: | - This method allows to modify an "individual PM job" resource. This method shall follow the provisions specified - in the tables 6.4.3.3.4-1 and 6.4.3.3.4-2 for URI query parameters, request and response data structures, - and response codes. + This method allows to modify an "individual PM job" resource. See clause 6.4.3.3.4. requestBody: $ref: '#/components/requestBodies/PmJobModificationRequest' responses: @@ -224,7 +220,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The API consumer can use this method for reading an individual performance report. + The API consumer can use this method for reading an individual performance report. See clause 6.4.4.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: @@ -261,7 +257,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The API cosumer can use this method to query information about thresholds. + The API cosumer can use this method to query information about thresholds. See clause 6.4.5.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter @@ -296,9 +292,7 @@ paths: post: description: | - The POST method can be used by API consumer to create a threshold. - As the result of successfully executing this method, a new - "Individual threshold" resource as defined in clause 6.4.6 shall have been created. + The POST method can be used by API consumer to create a threshold. See clause 6.4.5.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -339,7 +333,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: description: | - The client can use this method for reading an individual threshold. + The client can use this method for reading an individual threshold. See clause 6.4.6.3.2. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: @@ -372,8 +366,7 @@ paths: delete: description: | - This method allows to delete a threshold. As the result of successfully executing this method, the - "Individual threshold" resource shall not exist any longer. + This method allows to delete a threshold. See clause 6.4.6.3.5. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: @@ -406,9 +399,7 @@ paths: patch: description: | - This method allows to modify an "Individual threshold" resource. This method shall follow the provisions - specified in the tables 6.4.6.3.4-1 and 6.4.6.3.4-2 for URI query parameters, request and response data - structures, and response codes. + This method allows to modify an "Individual threshold" resource. See clause 6.4.6.3.4. requestBody: $ref: '#/components/requestBodies/ThresholdModificationRequest' responses: @@ -646,7 +637,8 @@ components: type: string WWW-Authenticate: description: | - Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. + Challenge if the corresponding HTTP request has not provided authorization, or error details + if the corresponding HTTP request has provided an invalid authorization token. style: simple explode: false schema: @@ -725,7 +717,12 @@ components: description: | 200 OK Information about zero or more thresholds was queried successfully. - If the "filter" URI parameter was supplied in the request, the data in the response body shall have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV SOL 013. The response body shall contain in an array the representations of zero or more thresholds, as defined in clause 6.5.2.9. If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + If the "filter" URI parameter was supplied in the request, the data in the response body shall have + been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV SOL 013. + The response body shall contain in an array the representations of zero or more thresholds, + as defined in clause 6.5.2.9. If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 + of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in this response shall + follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. headers: Version: description: The used API version. @@ -735,7 +732,8 @@ components: type: string WWW-Authenticate: description: | - Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. + Challenge if the corresponding HTTP request has not provided authorization, or error details if + the corresponding HTTP request has provided an invalid authorization token. style: simple explode: false schema: @@ -763,7 +761,9 @@ components: Thresholds.Post: description: | 201 CREATED - Shall be returned when a threshold has been created successfully. The response body shall contain a representation of the created "Individual threshold" resource. The HTTP response shall include a "Location" HTTP header that contains the resource URI of the created resource. + Shall be returned when a threshold has been created successfully. The response body shall contain a + representation of the created "Individual threshold" resource. The HTTP response shall include a + "Location" HTTP header that contains the resource URI of the created resource. headers: Version: description: The used API version. @@ -773,7 +773,8 @@ components: type: string WWW-Authenticate: description: | - Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. + Challenge if the corresponding HTTP request has not provided authorization, or error details if + the corresponding HTTP request has provided an invalid authorization token. style: simple explode: false schema: @@ -840,7 +841,8 @@ components: type: string WWW-Authenticate: description: | - Challenge if the corresponding HTTP request has not provided authorization, or error details if the corresponding HTTP request has provided an invalid authorization token. + Challenge if the corresponding HTTP request has not provided authorization, or error details if + the corresponding HTTP request has provided an invalid authorization token. style: simple explode: false schema: diff --git a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index bceab6dd..da9d716e 100644 --- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -16,8 +16,8 @@ info: version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 002 V3.3.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.03.01_60/gs_NFV-SOL002v030301p.pdf + description: ETSI GS NFV-SOL 002 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf servers: - url: http://127.0.0.1/callback/v1 @@ -31,7 +31,7 @@ paths: get: description: | The GET method allows the server to test the notification endpoint that is provided by the client, - e.g. during subscription. + e.g. during subscription. See clause 6.4.9.3.2. responses: "204": $ref: '#/components/responses/VNFPMNotification.Get' @@ -52,9 +52,8 @@ paths: post: description: | - Notify The POST method delivers a notification regarding a performance management event from API producer to an API - consumer. The API consumer shall have previously created an "Individual subscription" resource with a matching filter. + consumer. See clause 6.4.9.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: @@ -84,7 +83,7 @@ paths: get: description: | The GET method allows the server to test the notification endpoint that is provided by the client, - e.g. during subscription. + e.g. during subscription. See clause 6.4.9.3.2. responses: "204": $ref: '#/components/responses/VNFPMNotification.Get' @@ -105,10 +104,8 @@ paths: post: description: | - Notify The POST method delivers a notification regarding a performance management event from API producer to an API - consumer. The API consumer shall have previously created an "Individual subscription" resource with a matching - filter. + consumer. See clause 6.4.9.3.1. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType requestBody: -- GitLab From 2fcc1d744a2191ebc81f9158568d2506b11f623c Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Thu, 6 May 2021 03:20:24 +0200 Subject: [PATCH 47/66] added notes in common SOL002SOL003_def.yaml file --- src/definitions/SOL002SOL003_def.yaml | 244 +++++++++++--------------- 1 file changed, 101 insertions(+), 143 deletions(-) diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index d833759f..0ce395f4 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -92,6 +92,12 @@ definitions: description: > This type represents subscription filter criteria to match VNF instances. + * NOTE 1: The attributes "vnfdIds" and "vnfProductsFromProviders" are alternatives to reference to VNF instances + that are based on certain VNFDs in a filter. They should not be used both in the same filter instance, + but one alternative should be chosen. + NOTE 2: The attributes "vnfInstanceIds" and "vnfInstanceNames" are alternatives to reference to particular VNF + instances in a filter. They should not be used both in the same filter instance, but one alternative + should be chosen. type: object anyOf: - oneOf: @@ -108,22 +114,14 @@ definitions: vnfdIds: description: > If present, match VNF instances that were created based on a VNFD - identified by one of the vnfdId values listed in this attribute. - The attributes "vnfdIds" and "vnfProductsFromProviders" are - alternatives to reference to VNF instances that are based on certain - VNFDs in a filter. They should not be used both in the same filter - instance, but one alternative should be chosen. + identified by one of the vnfdId values listed in this attribute. See note 1. type: array items: $ref: "#/definitions/Identifier" vnfProductsFromProviders: description: > If present, match VNF instances that belong to VNF products from - certain providers. - The attributes "vnfdIds" and "vnfProductsFromProviders" are - alternatives to reference to VNF instances that are based on certain - VNFDs in a filter. They should not be used both in the same filter - instance, but one alternative should be chosen. + certain providers. See note 1. type: array items: type: object @@ -175,22 +173,14 @@ definitions: vnfInstanceIds: description: > If present, match VNF instances with an instance identifier listed - in this attribute. - The attributes "vnfInstanceIds" and "vnfInstanceNames" are - alternatives to reference to particular VNF Instances in a filter. - They should not be used both in the same filter instance, but one - alternative should be chosen. + in this attribute. See note 2. type: array items: $ref: "#/definitions/Identifier" vnfInstanceNames: description: > If present, match VNF instances with a VNF Instance Name listed in - this attribute. - The attributes "vnfInstanceIds" and "vnfInstanceNames" are - alternatives to reference to particular VNF Instances in a filter. - They should not be used both in the same filter instance, but one - alternative should be chosen. + this attribute. See note 2. type: array items: type: string @@ -199,10 +189,17 @@ definitions: description: > This type represents parameters to connect to a VIM for managing the resources of a VNF instance. - This structure is used to convey VIM-related parameters over the Or-Vnfm - interface. Additional parameters for a VIM may be configured into the - VNFM by means outside the scope of the present document, and bound to - the identifier of that VIM. + * NOTE 1: If applicable, this attribute also provides information about the resourceGroupIds + that are accessible using a particular set of credentials. See definition of + "resourceGroupId" in clause 9.5.3.3. + * NOTE 2: Once the connectivity between VNFM and VIM is provided through a secure connection over + HTTP Secure (HTTP over SSL/TLS), and the connection might also be established through a VPN + (for example TLS-based VPN tunnelling) for site-to-site connection, the "accessInfo" JSON data + structure, and the sensitive data related information ("username"/"password" as required properties + for authentication purpose), will be transmitted as plain text through a TLS tunnel without additional + encoding/encryption before transmitting it, making the sensitive data visible to the endpoint. + The base64 encoded certificates are only used by the VNFM to verify the authenticity of the + interface endpoint of the VIM. type: object required: - vimType @@ -239,7 +236,7 @@ definitions: description: > Authentication credentials for accessing the VIM, and other access-related information such as tenants or infrastructure - resource groups (see note). The applicable keys are dependent on the + resource groups (see note 1). The applicable keys are dependent on the content of vimType. If the VimConnectionInfo structure is part of an HTTP response payload body, sensitive attributes that are children of this attributes @@ -249,19 +246,7 @@ definitions: as passwords) shall be present if they have not been provisioned out of band. - If applicable, this attribute also provides information about the - resourceGroupIds that are accessible using a particular set of credentials. - See definition of "resourceGroupId" in clause 9.5.3.3. - - Once the connectivity between VNFM and VIM is provided through a secure - connection over HTTP Secure (HTTP over SSL/TLS), and the connection might - also be established through a VPN (for example TLS-based VPN tunnelling) - for site-to-site connection, the "accessInfo" JSON data structure, - and the sensitive data related information ("username"/"password" as required - properties for authentication purpose), will be transmitted as plain text through - a TLS tunnel without additional encoding/encryption before transmitting it, - making the sensitive data visible to the endpoint. The base64 encoded certificates - are only used by the VNFM to verify the authenticity of the interface endpoint of the VIM. + See note 2. $ref: "#/definitions/KeyValuePairs" extra: description: > @@ -310,19 +295,28 @@ definitions: VnfExtCpData: description: > - This type represents configuration information for external CPs created - from a CPD. + This type represents configuration information for external CPs created. + * NOTE 1: In case this identifier refers to a CPD with trunking enabled, the external CP instances created + from this CPD will represent ports in a trunk. + * NOTE 2: Within one VNF instance, all VNFC instances created from a particular VDU have the same external + connectivity. Thus, given a particular value of the "cpdId" attribute, there shall be one + "cpConfig" entry for each VNFC instance that has been or can be created from a VDU which includes + a CPD identified by the "cpdId" attribute. If the cpConfig represents a subport in a trunk, + all "cpConfig" entries in this list shall have the same segmentationId, which means they are + connected to the same set of external VLs via the trunk. + * NOTE 3: The map entry value shall be set to "null" in order to delete a "VnfExtCpConfig" entry identified + by a particular key value from the map, i.e. for the disconnection of an existing external + CP instance addressed by cpInstanceId in the deleted map entry from a particular external + virtual link, and deletion of that instance in case it represents a subport. Deleting the + last key from the map removes the affected instance of the "VnfExtCpData" structure from + its parent data structure. type: object required: - cpdId properties: cpdId: description: > - The identifier of the CPD in the VNFD. In case this identifier refers to a CPD with trunking enabled, - the external CP instances created from this CPD will represent ports in a trunk. - - NOTE: In case this identifier refers to a CPD with trunking enabled, the external CP instances created - from this CPD will represent ports in a trunk. + The identifier of the CPD in the VNFD. See note 1. $ref: "#/definitions/IdentifierInVnfd" cpConfig: description: > @@ -330,16 +324,7 @@ definitions: created from the respective CPD. The key of the map which identifies the individual VnfExtCpConfig entries is managed by the API consumer. The entries shall be applied by the VNFM according to the rules of JSON Merge Patch (see IETF RFC 7396). - Within one VNF instance, all VNFC instances created from a particular VDU have the same external connectivity. - Thus, given a particular value of the “cpdId” attribute, there shall be one “cpConfig” entry for each VNFC - instance that has been or can be created from a VDU which includes a CPD identified by the “cpdId” attribute. - If the cpConfig represents a subport in a trunk, all “cpConfig” entries in this list shall have the same - segmentationId, which means they are connected to the same set of external VLs via the trunk. - The map entry value shall be set to "null" in order to delete a "VnfExtCpConfig" entry identified by a - particular key value from the map, i.e. for the disconnection of an existing external CP instance addressed - by cpInstanceId in the deleted map entry from a particular external virtual link, and deletion of that instance - in case it represents a subport. Deleting the last key from the map removes the affected instance of the - "VnfExtCpData" structure from its parent data structure. + See note 2 and note 3. type: object additionalProperties: $ref: "#/definitions/VnfExtCpConfig" @@ -352,6 +337,20 @@ definitions: external CP to the external VL. In a link port is not provided, the VNFM shall create a link port on the external VL, and use that link port to connect the external CP to the external VL. + * NOTE: The following conditions apply to the attributes "linkPortId" and "cpProtocolData": + 1) Void. + 2) At least one of the "linkPortId" and "cpProtocolData" attributes shall be present for an external + CP instance representing a subport that is to be created, or an external CP instance that is to be + created by creating the corresponding VNFC or VNF instance during the current or a subsequent LCM + operation, or for an existing external CP instance that is to be re-configured or added to a + particular external virtual link. + 3) If the "linkPortId" attribute is absent, the VNFM shall create a link port. + 4) If the "cpProtocolData" attribute is absent, the "linkPortId" attribute shall be provided referencing + a pre created link port, and the VNFM can use means outside the scope of the present document to obtain + the pre-configured address information for the connection point from the resource representing + the link port. + 5) If both "cpProtocolData" and "linkportId" are provided, the API consumer shall ensure that the + cpProtocolData can be used with the pre-created link port referenced by "linkPortId". anyOf: - required: - linkPortId @@ -369,22 +368,7 @@ definitions: linkPortId: description: > Identifier of a pre-configured link port to which the external CP - will be associated. - The following conditions apply to the attributes "linkPortId" and - "cpProtocolData": - 1) At least one of the "linkPortId" and "cpProtocolData" attributes shall - be present for a to-be-created external CP instance or an existing external - CP instance. - 2) If the "linkPortId" attribute is absent, the VNFM shall create a - link port. - 3) If the "cpProtocolData" attribute is absent, the "linkPortId" - attribute shall be provided referencing a pre-created link port, - and the VNFM can use means outside the scope of the present - document to obtain the pre-configured address information for the - connection point from the resource representing the link port. - 4) If both "cpProtocolData" and "linkportId" are provided, the API - consumer shall ensure that the cpProtocolData can be used with the - pre-created link port referenced by "linkPortId". + will be associated. See note $ref: "#/definitions/Identifier" createExtLinkPort: @@ -399,26 +383,7 @@ definitions: cpProtocolData: description: > Parameters for configuring the network protocols on the link port - that connects the CP to a VL. - The following conditions apply to the attributes "linkPortId" and - "cpProtocolData": - 1) Void - 2) At least one of the "linkPortId" and "cpProtocolData" attributes - shall be present for an external CP instance representing a subport - that is to be created, or an external CP instance that is to be created - by creating the corresponding VNFC or VNF instance during the current or - a subsequent LCM operation, or for an existing external CP instance - that is to be re-configured or added to a particular external virtual link. - 3) If the "linkPortId" attribute is absent, the VNFM shall create a - link port. - 4) If the "cpProtocolData" attribute is absent, the "linkPortId" - attribute shall be provided referencing a pre-created link port, - and the VNFM can use means outside the scope of the present - document to obtain the pre-configured address information for the - connection point from the resource representing the link port. - 5) If both "cpProtocolData" and "linkportId" are provided, the API - consumer shall ensure that the cpProtocolData can be used with the - pre-created link port referenced by "linkPortId". + that connects the CP to a VL. See note. type: array items: $ref: "#/definitions/CpProtocolData" @@ -426,17 +391,16 @@ definitions: CpProtocolData: description: > This type represents network protocol data. + * NOTE: This attribute allows to signal the addition of further types of layer and protocol + in future versions of the present document in a backwards-compatible way. In the current + version of the present document, only IP over Ethernet is supported. type: object required: - layerProtocol properties: layerProtocol: description: > - Identifier of layer(s) and protocol(s). - This attribute allows to signal the addition of further types of - layer and protocol in future versions of the present document in a - backwards-compatible way. In the current version of the present - document, only IP over Ethernet is supported. + Identifier of layer(s) and protocol(s). See note. type: string enum: - IP_OVER_ETHERNET @@ -450,6 +414,16 @@ definitions: IpOverEthernetAddressData: description: > This type represents network address data for IP over Ethernet. + * NOTE 1: At least one of "macAddress" or "ipAddresses" shall be present. + * NOTE 2: Exactly one of "fixedAddresses", "numDynamicAddresses" or "ipAddressRange" shall be present. + * NOTE 3: If the CP instance represents a subport in a trunk, segmentationId shall be present. + Otherwise it shall not be present. + * NOTE 4: Depending on the NFVI networking infrastructure, the segmentationId may indicate the actual + network segment value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the transport header + of the packets or it may be an identifier used between the application and the NFVI networking + infrastructure to identify the network sub-interface of the trunk port in question. In the latter + case the NFVI infrastructure will map this local segmentationId to whatever segmentationId is + actually used by the NFVI’s transport technology. type: object anyOf: - required: @@ -467,8 +441,7 @@ definitions: macAddress: description: > MAC address. If this attribute is not present, it shall be chosen by - the VIM. - At least one of "macAddress" or "ipAddresses" shall be present. + the VIM. See note 1. $ref: "#/definitions/MacAddress" segmentationType: description: > @@ -485,20 +458,14 @@ definitions: segmentationId: description: > - Identification of the network segment to which the CP instance connects to. If the CP instance represents a - subport in a trunk, segmentationId shall be present. Otherwise it shall not be present. - Depending on the NFVI networking infrastructure, the segmentationId may indicate the actual network segment - value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the transport header of the packets or it may be an - identifier used between the application and the NFVI networking infrastructure to identify the network - sub-interface of the trunk port in question. In the latter case the NFVI infrastructure will map this local - segmentationId to whatever segmentationId is actually used by the NFVI’s transport technology. + Identification of the network segment to which the CP instance connects to. See note 3 and note 4. type: string ipAddresses: description: > List of IP addresses to assign to the CP instance. Each entry represents IP address data for fixed or dynamic IP address assignment per subnet. - If this attribute is not present, no IP address shall be assigned. + If this attribute is not present, no IP address shall be assigned. See note 1. type: array items: type: object @@ -516,25 +483,21 @@ definitions: fixedAddresses: description: > Fixed addresses to assign (from the subnet defined by - "subnetId" if provided). - Exactly one of "fixedAddresses", "numDynamicAddresses" or - "ipAddressRange" shall be present. + "subnetId" if provided). See note 2. type: array items: $ref: "#/definitions/IpAddress" numDynamicAddresses: description: > Number of dynamic addresses to assign (from the subnet defined - by "subnetId" if provided). - Exactly one of "fixedAddresses", "numDynamicAddresses" or - "ipAddressRange" shall be present. + by "subnetId" if provided). See note 2. type: integer addressRange: description: > An IP address range to be used, e.g. in case of egress connections. In case this attribute is present, IP addresses from the range - will be used. + will be used. See note 2. type: object required: - minAddress @@ -560,6 +523,16 @@ definitions: ExtVirtualLinkData: description: > This type represents an external VL. + * NOTE 1: The information about the VIM connection referenced by the VIM connection id is known to the VNFM. + Moreover, the identifier of the VIM connection provides scope to the resourceId. + * NOTE 2: A link port is not needed for an external CP instance that exposes a VIP CP in the following cases: + 1 For a VIP CP directly exposed as extCP: + 1.1 No dedicated IP address is allocated as VIP address, as indicated in the VNFD. + 1.2 A dedicated IP addresss is allocated as VIP address, but the NFVO indicates that no port + is needed (createExtLinkPort in VnfExtCpconfig set to false). + 2 For a VIP CP exposed as extCP via a floating IP address: + 2.1 No dedicated IP address is allocated as VIP address, as indicated in the VNFD, and the VNFC + CP associated to the VIP CP is also exposed via a floating IP addresss. type: object required: - id @@ -575,7 +548,7 @@ definitions: description: > Identifier of the VIM connection to manage this resource. This attribute shall only be supported and present if VNF-related - resource management in direct mode is applicable. + resource management in direct mode is applicable. See note 1. $ref: "#/definitions/Identifier" resourceProviderId: description: > @@ -602,15 +575,7 @@ definitions: connection points to this external VL. If this attribute is not present, the VNFM shall create the link ports on the external VL unless the extCp exposes a VIP CP and a link port is not needed - for it based on the conditions defined below. - A link port is not needed for an external CP instance that exposes a VIP CP in the following cases: - 1 For a VIP CP directly exposed as extCP: - 1.1 No dedicated IP address is allocated as VIP address, as indicated in the VNFD. - 1.2 A dedicated IP address is allocated as VIP address, but the NFVO indicates that no - port is needed (createExtLinkPort in VnfExtCpConfig set to false). - 2 For a VIP CP exposed as extCP via a floating IP address: - 2.1 No dedicated IP address is allocated as VIP address, as indicated in the VNFD, and - the VNFC CP associated to the VIP CP is also exposed via a floating IP address. + for it based on the conditions defined below. See note 2. type: array items: $ref: "#/definitions/ExtLinkPortData" @@ -727,6 +692,7 @@ definitions: description: > This type represents an externally provided link port to be used to connect an external connection point to an external VL. + * NOTE: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute. type: object required: - id @@ -746,9 +712,7 @@ definitions: description: > Identifier of the trunk resource in the VIM. Shall be present if the present link port corresponds to the parent - port that the trunk resource is associated with. - The value of \"trunkResourceId\" is scoped by the value of - \"vimConnectionId\" in the \"resourceHandle\" attribute. + port that the trunk resource is associated with. See note. $ref: "#/definitions/IdentifierInVim" GrantedLcmOperationType: @@ -823,17 +787,17 @@ definitions: #SOL003 location: 4.3.5.3 description: > The definition of the general "ProblemDetails" data structure from - IETF RFC 7807 [19] is reproduced inthis structure. Compared to the - general framework defined in IETF RFC 7807 [19], the "status" and + IETF RFC 7807 is reproduced inthis structure. Compared to the + general framework defined in IETF RFC 7807, the "status" and "detail" attributes are mandated to be included by the present document, to ensure that the response contains additional textual information about - an error. IETF RFC 7807 [19] foresees extensibility of the + an error. IETF RFC 7807 foresees extensibility of the "ProblemDetails" type. It is possible that particular APIs in the present document, or particular implementations, define extensions to define additional attributes that provide more information about the error. The description column only provides some explanation of the meaning to Facilitate understanding of the design. For a full description, see - IETF RFC 7807 [19]. + IETF RFC 7807. type: object required: - status @@ -841,7 +805,7 @@ definitions: properties: type: description: > - A URI reference according to IETF RFC 3986 [5] that identifies the + A URI reference according to IETF RFC 3986 that identifies the problem type. It is encouraged that the URI provides human-readable documentation for the problem (e.g. using HTML) when dereferenced. When this member is not present, its value is assumed to be @@ -879,6 +843,10 @@ definitions: #TODO: How to express "any additional attributes"? SubscriptionAuthentication: + description: > + * NOTE: The clientId and clientPassword passed in a subscription shall not be the same as the clientId and + clientPassword that are used to obtain authorization for API requests. Client credentials may differ between + subscriptions. The value of clientPassword should be generated by a random process type: object required: - authType @@ -935,23 +903,13 @@ definitions: description: > Client identifier to be used in the access token request of the OAuth 2.0 client credentials grant type. - Shall be present if it has not been provisioned out of band. - The clientId and clientPassword passed in a subscription shall - not be the same as the clientId and clientPassword that are used - to obtain authorization for API requests. Client credentials may - differ between subscriptions. The value of clientPassword should - be generated by a random process. + Shall be present if it has not been provisioned out of band. See note. type: string clientPassword: description: > Client password to be used in the access token request of the OAuth 2.0 client credentials grant type. - Shall be present if it has not been provisioned out of band. - The clientId and clientPassword passed in a subscription shall - not be the same as the clientId and clientPassword that are used - to obtain authorization for API requests. Client credentials may - differ between subscriptions. The value of clientPassword should - be generated by a random process. + Shall be present if it has not been provisioned out of band. See note. type: string tokenEndpoint: description: > -- GitLab From 59e7c05a975ad94a5d0ca53ea477f5de767ff09c Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Thu, 6 May 2021 03:45:52 +0200 Subject: [PATCH 48/66] Added notes for SOL002 resources --- ...OL002SOL003VNFLifecycleManagement_def.yaml | 44 +++++++++++++------ 1 file changed, 30 insertions(+), 14 deletions(-) diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 4e508d99..b4a1e577 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -150,6 +150,23 @@ definitions: description: > List of identifiers entries to be deleted from the 'vnfcInfoModifications" attribute array to be used as "deleteIdList" as defined below this table. + The following provisions shall apply when modifying an attribute that is an array of objects of type + "VnfcInfo" by supplying an array of objects of type "VnfcInfoModifications". + Assumptions: + 1) "oldList" is the "VnfcInfo" array to be modified and "newList" is the "VnfcInfoModifications" + array that contains the changes. + 2) "oldEntry" is an entry in "oldList" and "newEntry" is an entry in "newList". + 3) A "newEntry" has a "corresponding entry" if there exists an "oldEntry" that has the same content + of the "id" attribute as the "newEntry"; a "newEntry" has no corresponding entry if no such + "oldEntry" exists. + 4) In any array of "VnfcInfo" resp. "VnfcInfoModifications" structures, the content of "id" is unique + (i.e. there are no two entries with the same content of "id"). + Provisions: + 1) For each "newEntry" in "newList" that has no corresponding entry in "oldList", the "oldList" array + shall be modified by adding that "newEntry". + 2) For each "newEntry" in "newList" that has a corresponding "oldEntry" in "oldList", + the value of "oldEntry" shall be updated with the content of "newEntry" as specified + for the data type of "newEntry (refer to clause 5.5.3.24 for the data type "VnfcInfoModifications"). type: array items: $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" @@ -310,14 +327,14 @@ definitions: This type represents a link port of an internal VL of a VNF. It shall comply with the provisions defined in table 5.5.3.8 1. - NOTE 1: Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId + NOTE 1: Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId with cpInstanceType set to "VNFC_CP" and vipCpInstanceId (i.e. one or both of them) shall be present for a VnfLinkPortInfo. In case both cpInstanceId with cpInstanceType set to "VNFC_CP" and vipCpInstanceId are present, the two different CP instances share the linkport. - NOTE 2: Annex A.4 of ETSI GS NFV-IFA 007 provides examples for configurations where both vipCpInstanceId + NOTE 2: Annex A.4 of ETSI GS NFV-IFA 007 provides examples for configurations where both vipCpInstanceId and vnfcCpInstanceId are present (UC#5 and UC#5-b), only vnfcCpInstanceId is present (UC#2), or only vipCpInstanceId is present (UC6 and UC#6-b). - NOTE 3: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" + NOTE 3: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute. type: object required: @@ -869,7 +886,9 @@ definitions: VnfcInfoModifications: description: > This type represents modifications of an entry in an array of "VnfcInfo" objects. - It shall comply with the provisions defined in table 5.5.3.24-1. + * NOTE: The attribute "id" in this data type represents the same identifier as the attribute + "vnfcInstanceId" in other related data types in the present document. For reasons of backward + compatibility, this misalignment is not corrected. type: object required: - id @@ -878,22 +897,20 @@ definitions: id: description: > Identifier of the VNFC instance of which the information is to be modified. - The identifier references the "id" attribute in a "VnfcInfo" structure. - The attribute "id" in this data type represents the same identifier as the attribute - "vnfcInstanceId" in other related data types in the present document. For reasons of - backward compatibility, this misalignment is not corrected. + The identifier references the "id" attribute in a "VnfcInfo" structure. See note. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" vnfcConfigurableProperties: description: > Changes of the configurable properties of the VNFC instance. When this structure is part of a request, the modifications signalled in this attribute shall be applied according to the rules of JSON Merge Patch (see IETF RFC 7396). + In addition, the provisions in clause 5.7 shall apply. $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" VnfcInfo: description: > - This type represents the information about a VNFC instance that is part of a VNF instance. It shall comply with the - provisions defined in table 5.5.3.23-1. + This type represents the information about a VNFC instance that is part of a VNF instance. + * NOTE: This allows to represent the error condition that a VNFC instance has lost its resources. type: object required: - id @@ -912,9 +929,7 @@ definitions: vnfcResourceInfoId: description: > Identifier of the VnfcResourceInfo instance representing - the virtualised resources used by this VNFC instance. - Shall be present in case a corresponding VnfcResourceInfo instance exists. - This allows to represent the error condition that a VNFC instance has lost its resources. + the virtualised resources used by this VNFC instance. See note. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" vnfcState: description: > @@ -936,7 +951,8 @@ definitions: VNFC instance. Configurable properties referred in this attribute are declared in the VNFD. - This attribute can be modified with the PATCH method + This attribute can be modified with the PATCH method. + In addition, the provisions in clause 5.7 shall apply. $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" ModificationsTriggeredByVnfPkgChange: -- GitLab From 30e83b7923d3b5a5c84f7a1b5a24e7d4712a68be Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Fri, 7 May 2021 15:15:19 +0200 Subject: [PATCH 49/66] fixed version --- src/SOL002/VNFConfiguration/VNFConfiguration.yaml | 2 +- src/SOL002/VNFIndicator/VNFIndicator.yaml | 2 +- .../VNFIndicatorNotification/VNFIndicatorNotification.yaml | 2 +- .../VNFLifecycleCoordination/VNFLifecycleCoordination.yaml | 5 +++-- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 4 ++-- .../VNFLifecycleManagementNotification.yaml | 4 ++-- src/SOL003/VNFIndicator/VNFIndicator.yaml | 2 +- .../VNFIndicatorNotification/VNFIndicatorNotification.yaml | 2 +- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 4 ++-- .../VNFLifecycleManagementNotification.yaml | 4 ++-- 10 files changed, 16 insertions(+), 15 deletions(-) diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index d24bbeaf..c2433009 100644 --- a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml +++ b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml @@ -12,7 +12,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 002 V3.5.1 diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index af632465..712d15a0 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -15,7 +15,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.3.1-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 002 V3.5.1 diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index b59a46f0..4a02ad71 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -15,7 +15,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.3.1-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 002 V3.5.1 diff --git a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml index f11a33e7..4b56aaf5 100644 --- a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml +++ b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml @@ -3,7 +3,8 @@ openapi: 3.0.2 info: title: SOL002 - VNF LCM Coordination interface description: | - SOL002 - VNF Lifecycle Coordination Interface IMPORTANT: Please note that this file might be not aligned to the current + SOL002 - VNF Lifecycle Coordination Interface + IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues @@ -12,7 +13,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 002 V3.5.1 diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index ae038b9c..17ddfba5 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -19,8 +19,8 @@ externalDocs: url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf servers: - - url: http://127.0.0.1/vnflcm/v1 - - url: https://127.0.0.1/vnflcm/v1 + - url: http://127.0.0.1/vnflcm/v2 + - url: https://127.0.0.1/vnflcm/v2 paths: /api_versions: diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index adb08831..740bb4ab 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -20,8 +20,8 @@ externalDocs: url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf servers: - - url: http://127.0.0.1/callback/v1 - - url: https://127.0.0.1/callback/v1 + - url: http://127.0.0.1/callback/v2 + - url: https://127.0.0.1/callback/v2 paths: /URI_is_provided_by_the_client_when_creating_the_subscription-VnfLcmOperationOccurrenceNotification: diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index d2d037e9..fe3d02e8 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -15,7 +15,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.3.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: description: ETSI GS NFV-SOL 003 V3.5.1 diff --git a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 296725d5..23b2b7a0 100644 --- a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -15,7 +15,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.3.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: description: ETSI GS NFV-SOL 003 V3.5.1 diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index c0ed1bdb..3f8ce640 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -22,8 +22,8 @@ externalDocs: url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - - url: http://127.0.0.1/vnflcm/v1 - - url: https://127.0.0.1/vnflcm/v1 + - url: http://127.0.0.1/vnflcm/v2 + - url: https://127.0.0.1/vnflcm/v2 paths: ############################################################################### diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 3e9298a5..c508598e 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -22,8 +22,8 @@ externalDocs: url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - - url: http://127.0.0.1/callback/v1 - - url: https://127.0.0.1/callback/v1 + - url: http://127.0.0.1/callback/v2 + - url: https://127.0.0.1/callback/v2 paths: ############################################################################### -- GitLab From b86cf70e25f1a452519b7275f55aa96f50bbb087 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Fri, 14 May 2021 17:27:44 +0200 Subject: [PATCH 50/66] fixed comments from SOL WG --- src/SOL002/APIVersion/APIVersion.yaml | 10 +++++++--- src/SOL002/VNFConfiguration/VNFConfiguration.yaml | 8 ++++++-- .../VNFFaultManagement/VNFFaultManagement.yaml | 10 +++++++--- .../VNFFaultManagementNotification.yaml | 10 +++++++--- src/SOL002/VNFIndicator/VNFIndicator.yaml | 7 ++++--- .../VNFIndicatorNotification.yaml | 7 ++++--- .../VNFLifecycleCoordination.yaml | 5 ++++- .../VNFLifecycleManagement.yaml | 10 +++++++--- .../VNFLifecycleManagementNotification.yaml | 9 ++++++--- .../VNFPerformanceManagement.yaml | 10 +++++++--- .../VNFPerformanceManagementNotification.yaml | 13 ++++++++----- 11 files changed, 67 insertions(+), 32 deletions(-) diff --git a/src/SOL002/APIVersion/APIVersion.yaml b/src/SOL002/APIVersion/APIVersion.yaml index 642b771b..6da2dab9 100644 --- a/src/SOL002/APIVersion/APIVersion.yaml +++ b/src/SOL002/APIVersion/APIVersion.yaml @@ -3,10 +3,14 @@ openapi: 3.0.2 info: title: SOL002 - API version interface description: | - SOL002 - API version Interface IMPORTANT: Please note that this file might be not aligned to the current version of - the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies - the published ETSI Group Specification takes precedence. + SOL002 - API version Interface + + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to. In case of + discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index c2433009..cad1201d 100644 --- a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml +++ b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml @@ -3,10 +3,14 @@ openapi: 3.0.2 info: title: SOL002 - VNF Configuration interface description: | - SOL002 - VNF Configuration Interface IMPORTANT: Please note that this file might be not aligned to the current - version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of + SOL002 - VNF Configuration Interface + + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 77a35b18..0f945f31 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -3,10 +3,14 @@ openapi: 3.0.2 info: title: SOL002 - VNF Fault Management interface description: | - SOL002 - VNF Fault Management interface IMPORTANT: Please note that this file might be not aligned to the current - version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. - In case of discrepancies the published ETSI Group Specification takes precedence. + SOL002 - VNF Fault Management interface + + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to. In case of + discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index 94784582..9d04a73b 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -3,10 +3,14 @@ openapi: 3.0.2 info: title: SOL002 - VNF Fault Management Notification interface description: | - SOL002 - VNF Fault Management Notification interface IMPORTANT: Please note that this file might be not aligned to - the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. - In case of discrepancies the published ETSI Group Specification takes precedence. Please report bugs to + SOL002 - VNF Fault Management Notification interface + + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to. In case of + discrepancies the published ETSI Group Specification takes precedence. + https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index 712d15a0..fd3b2968 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -5,11 +5,12 @@ info: description: | SOL002 - VNF Indicator interface - IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it - refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification - takes precedence. + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to. In case of + discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 4a02ad71..3a2f32a2 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -5,11 +5,12 @@ info: description: | SOL002 - VNF Indicator Notification interface - IMPORTANT: Please note that this file might be not aligned to - the current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. - In case of discrepancies the published ETSI Group Specification takes precedence. + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to. In case of + discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml index 4b56aaf5..1fefbbc9 100644 --- a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml +++ b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml @@ -4,10 +4,13 @@ info: title: SOL002 - VNF LCM Coordination interface description: | SOL002 - VNF Lifecycle Coordination Interface + IMPORTANT: Please note that this file might be not aligned to the current - version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. In case of + version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 17ddfba5..f394a6d8 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -3,10 +3,14 @@ openapi: 3.0.2 info: title: SOL002 - VNF Lifecycle Management interface description: | - SOL002 - VNF Lifecycle Management interface IMPORTANT: Please note that this file might be not aligned to the - current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. - In case of discrepancies the published ETSI Group Specification takes precedence. + SOL002 - VNF Lifecycle Management interface + + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to. In case of + discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 740bb4ab..5526ea78 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -4,10 +4,13 @@ info: title: SOL002 - VNF Lifecycle Management Notification interface description: | SOL002 - VNF Lifecycle Management Notification interface - IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification - it refers to and has not been approved by the ETSI NFV ISG. In case of discrepancies the published ETSI Group - Specification takes precedence. + + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to. In case of + discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index b0931616..d7c1dac2 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -3,10 +3,14 @@ openapi: 3.0.2 info: title: SOL002 - VNF Perfomance Management interface description: | - SOL002 - VNF Performance Management interface IMPORTANT: Please note that this file might be not aligned to the - current version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. - In case of discrepancies the published ETSI Group Specification takes precedence. + SOL002 - VNF Performance Management interface + + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to. In case of + discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index da9d716e..3b8a2000 100644 --- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -4,10 +4,13 @@ info: title: SOL002 - VNF Performance Management Notification interface description: | SOL002 - VNF Performance Management Notification interface - IMPORTANT: Please note that this file might be not - aligned to the current version of the ETSI Group Specification it refers to and has not been approved by the - ETSI NFV ISG. In case of discrepancies the published ETSI Group Specification takes precedence. + + IMPORTANT: Please note that this file might be not aligned to the current + version of the ETSI Group Specification it refers to. In case of + discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: @@ -20,8 +23,8 @@ externalDocs: url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/03.05.01_60/gs_NFV-SOL002v030501p.pdf servers: - - url: http://127.0.0.1/callback/v1 - - url: https://127.0.0.1/callback/v1 + - url: http://127.0.0.1/callback/v2 + - url: https://127.0.0.1/callback/v2 paths: '/URI_is_provided_by_the_client_when_creating_the_subscription-PerformanceInformationAvailableNotification': -- GitLab From a6156ac0b56601e8b97461f6b5d593405740cdc0 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Fri, 14 May 2021 17:28:07 +0200 Subject: [PATCH 51/66] fixed comments from SOL WG (SOL003) --- src/SOL003/APIVersion/APIVersion.yaml | 12 ++++++----- .../VNFFaultManagement.yaml | 1 + .../VNFFaultManagementNotification.yaml | 1 + src/SOL003/VNFIndicator/VNFIndicator.yaml | 1 + .../VNFIndicatorNotification.yaml | 1 + .../VNFLifecycleManagement.yaml | 21 ++----------------- .../VNFLifecycleManagementNotification.yaml | 1 + .../VNFLifecycleOperationGranting.yaml | 1 + .../VNFPackageManagement.yaml | 3 ++- .../VNFPackageManagementNotification.yaml | 1 + .../VNFPerformanceManagement.yaml | 1 + .../VNFPerformanceManagementNotification.yaml | 1 + .../VNFSnapshotPackageManagement.yaml | 5 +++-- ...edResourcesQuotaAvailableNotification.yaml | 2 +- 14 files changed, 24 insertions(+), 28 deletions(-) diff --git a/src/SOL003/APIVersion/APIVersion.yaml b/src/SOL003/APIVersion/APIVersion.yaml index bdbfce35..b0c11b5c 100644 --- a/src/SOL003/APIVersion/APIVersion.yaml +++ b/src/SOL003/APIVersion/APIVersion.yaml @@ -5,11 +5,13 @@ info: title: SOL003 - API version interface description: > SOL003 - API version Interface + IMPORTANT: Please note that this file might be not aligned to the current - version of the ETSI Group Specification it refers to and has not been - approved by the ETSI NFV ISG. In case of discrepancies the published ETSI - Group Specification takes precedence. + version of the ETSI Group Specification it refers to. In case of + discrepancies the published ETSI Group Specification takes precedence. + Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: @@ -18,8 +20,8 @@ info: version: "1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: - description: ETSI GS NFV-SOL 003 V3.3.4 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.03.01_60/gs_NFV-SOL003v030301p.pdf + description: ETSI GS NFV-SOL 003 V3.5.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf paths: /vrqan/api_versions: diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index f9f8f261..85806ec2 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -10,6 +10,7 @@ info: discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index 0efa8b1d..854815e6 100644 --- a/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL003/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -10,6 +10,7 @@ info: discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index fe3d02e8..104732ae 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -10,6 +10,7 @@ info: discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 23b2b7a0..35e5d783 100644 --- a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -10,6 +10,7 @@ info: discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 3f8ce640..17c9ef32 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -10,6 +10,7 @@ info: discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: @@ -723,25 +724,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/all_fields - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/fields - - in: query - name: exclude_default - description: > - Indicates to exclude the following complex attributes from the response. - See clause 5.3 of ETSI GS NFV-SOL 013 for details. The VNFM shall support this parameter. - The following attributes shall be excluded from the VnfLcmOpOcc structure in the response - body if this parameter is provided, or none of the parameters "all_fields," "fields", - "exclude_fields", "exclude_default" are provided: - - operationParams - - error - - resourceChanges - - changedInfo - - changedExtConnectivity. - - lcmCoordinations - - modificationsTriggeredByVnfPkgChange - - warnings - required: false - schema: - type: string + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/exclude_fields - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/exclude_default - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index c508598e..ad3e8ab0 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -10,6 +10,7 @@ info: discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index a65e4a1a..0a208949 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml @@ -10,6 +10,7 @@ info: discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index e4dbbcdf..d85c9071 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -10,6 +10,7 @@ info: discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: @@ -75,7 +76,7 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504" /vnf_packages: - $ref: '#paths/~1onboarded_vnf_packages' + $ref: '#/paths/~1onboarded_vnf_packages' ############################################################################### # Individual VNF package # diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index d49a0e3e..f6202663 100644 --- a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -10,6 +10,7 @@ info: discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index dde9c942..044f2454 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -10,6 +10,7 @@ info: discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index d379b74f..e4779029 100644 --- a/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL003/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -10,6 +10,7 @@ info: discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml index d613c5b9..2bb0f9ac 100644 --- a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml +++ b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml @@ -6,10 +6,11 @@ info: SOL003 - VNF Snapshot Package Management interface IMPORTANT: Please note that this file might be not aligned to the current - version of the ETSI Group Specification it refers to and has not been approved by the ETSI NFV ISG. - In case of discrepancies the published ETSI Group Specification takes precedence. + version of the ETSI Group Specification it refers to. In case of + discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index d16a5f09..45a5942e 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -5,12 +5,12 @@ info: description: | SOL003 - Virtualised Resources Quota Available Notification interface - IMPORTANT: Please note that this file might be not aligned to the current version of the ETSI Group Specification it refers to. In case of discrepancies the published ETSI Group Specification takes precedence. Please report bugs to https://forge.etsi.org/rep/nfv/SOL002-SOL003/issues + contact: name: NFV-SOL WG license: -- GitLab From bffa88c90d2fddd8a3cc534a5c253a9478928f37 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Mon, 17 May 2021 11:59:35 +0200 Subject: [PATCH 52/66] implemented SOL003ed351 v3.3.7 --- .../SOL003VNFLifecycleManagement_def.yaml | 43 +++++++++++++++++++ .../VNFLifecycleOperationGranting.yaml | 2 +- .../VNFPackageManagement.yaml | 2 +- .../VNFSnapshotPackageManagement.yaml | 6 +-- src/components/SOL002SOL003_params.yaml | 17 ++++++-- 5 files changed, 62 insertions(+), 8 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index f6db8575..85e61b14 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -1594,6 +1594,8 @@ definitions: "Individual coordination action" resource within a timeout interval after requesting the coordination to be started or to be cancelled. The length of the timeout interval is defined by means outside the scope of the present document. + NOTE 5: The list of rejected coordinations may be garbage collected if the LCM operation + occurrence has reached a terminal state, i.e. one of "COMPLETED", "FAILED" and "ROLLED_BACK". type: object oneOf: - required: @@ -1790,6 +1792,47 @@ definitions: The end time of the coordination action. Shall be present for a coordination action that has finished or timed out (see note 4) and shall be absent if the coordination is ongoing. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + delay: + description: > + The end of the delay period. + This attribute shall be present if the last known HTTP response related to this coordination has + contained a "Retry-After" header, and shall be absent otherwise. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + endpointType: + description: > + The endpoint type used by this coordination action. + Valid values: + • MGMT: coordination with other operation supporting management systems (e.g. EM) + • VNF: coordination with the VNF instance + type: string + enum: + - MGMT + - VNF + rejectedLcmCoordinations: + description: > + Information about LCM coordination actions (see clause 10 in ETSI GS NFV-SOL002) that were rejected + by 503 error which means they can be tried again after a delay. See note 5. + type: array + items: + type: object + required: + - coordinationActionName + - rejectionTime + - endpointType + - delay + properties: + coordinationActionName: + description: > + Indicator of the actual coordination action. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + rejectionTime: + description: > + The time when the VNFM has received the 503 response that rejects the actual coordination. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + delay: + description: > + The end of the delay period, as calculated from the startTime and "Retry-After" header. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" endpointType: description: > The endpoint type used by this coordination action. diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index 0a208949..566ea46f 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml @@ -16,7 +16,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "1.4.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.5.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: description: ETSI GS NFV-SOL 003 V3.5.1 diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index d85c9071..08f502f5 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -16,7 +16,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: description: ETSI GS NFV-SOL 003 V3.5.1 diff --git a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml index 2bb0f9ac..4d7359f0 100644 --- a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml +++ b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml @@ -16,15 +16,15 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 003 V3.5.1 url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/03.05.01_60/gs_NFV-SOL003v030501p.pdf servers: - - url: http://0.0.0.1/vnfsnapshotpkgm/v1 - - url: https://0.0.0.1/vnfsnapshotpkgm/v1 + - url: http://127.0.0.1/vnfsnapshotpkgm/v1 + - url: https://127.0.0.1/vnfsnapshotpkgm/v1 paths: ############################################################################### diff --git a/src/components/SOL002SOL003_params.yaml b/src/components/SOL002SOL003_params.yaml index 2211c23c..6870d98c 100644 --- a/src/components/SOL002SOL003_params.yaml +++ b/src/components/SOL002SOL003_params.yaml @@ -40,7 +40,7 @@ components: name: filter description: > Attribute-based filtering expression according to clause 5.2 of ETSI - GS NFV-SOL 013. The NFV-MANO functional entity shall support + GS NFV-SOL 013. The VNFM shall support receiving this parameter as part of the URI query string. The API consumer may supply this parameter. All attribute names that appear in the FmSubscription and in data types referenced from it shall be @@ -89,7 +89,18 @@ components: in: query description: >- Indicates to exclude the following complex attributes from the response. See clause 5.3 of ETSI GS NFV-SOL 013 - for details. The NFV-MANO functional entity shall support this parameter. + for details. The VNFM shall support this parameter. + The following attributes shall be excluded from the VnfLcmOpOcc structure in the response + body if this parameter is provided, or none of the parameters "all_fields," "fields", + "exclude_fields", "exclude_default" are provided: + - operationParams + - error + - resourceChanges + - changedInfo + - changedExtConnectivity. + - lcmCoordinations + - modificationsTriggeredByVnfPkgChange + - warnings required: false schema: type: string @@ -98,7 +109,7 @@ components: name: nextpage_opaque_marker description: > Marker to obtain the next page of a paged response. Shall be supported by - the NFV-MANO functional entity if the entity supports alternative 2 (paging) + the VNFM if the entity supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. in: query required: false -- GitLab From 582891916041df406b5fbf82eddf5467852666e6 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Thu, 27 May 2021 18:49:34 +0200 Subject: [PATCH 53/66] implemented udpates for SOL003ed351 v3.3.8 --- .../SOL003VNFLifecycleOperationGranting_def.yaml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml index cac56837..18150a39 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/definitions/SOL003VNFLifecycleOperationGranting_def.yaml @@ -370,8 +370,14 @@ definitions: This type provides information of an existing or proposed resource used by the VNF. It shall comply with the provisions defined in table 9.5.3.2-1. - NOTE: The use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 provide examples - for such a configuration. + NOTE 1: The use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 provide examples + for such a configuration. + NOTE 2: In the context of an operation that changes the current VNF package, the following applies: If this + ResourceDefinition is related to a resource to be created or modified, the "vnfdId" attribute shall + contain the identifier of the destination VNFD. If this ResourceDefinition is related to a resource + to be deleted, the "vnfdId" attribute shall contain the identifier of the source VNFD. If this + ResourceDefinition is related to a temporary resource, the "vnfdId" attribute shall contain the + identifier of either the source VNFD or the destination VNFD. type: object required: - id @@ -406,8 +412,7 @@ definitions: vnfdId: description: > Identifier of the VNFD to which resourceTemplateId and vduId refer. Shall be present - if at least one of resourceTemplateId and vduId is present and the operation to - be granted changes the current VNF Package. May be absent otherwise. + if the operation to be granted changes the current VNF Package. May be absent otherwise. See note 2. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" resourceTemplateId: description: > @@ -423,7 +428,7 @@ definitions: Shall be present if type="LINKPORT" and the linkport is shared by two external CP instances, one exposing a VNFC CP instance (based on a VnfExtCpd referenced by "resourceTemplateId") and another one exposing a VIP CP instance (based on a VnfExtCpd referenced by this attribute). - Shall be absent otherwise. See note. + Shall be absent otherwise. See note 1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" resource: description: > -- GitLab From 11100b0781e56cbf08237a71595944544481f6e0 Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Mon, 31 May 2021 13:30:35 +0200 Subject: [PATCH 54/66] Added changes for SOL002 v337 --- .../VNFLifecycleCoordination.yaml | 9 +++- .../VNFLifecycleManagement.yaml | 2 +- .../SOL002VNFLifecycleManagement_def.yaml | 50 +++++++++++++++++-- src/definitions/SOL002SOL003_def.yaml | 4 +- 4 files changed, 57 insertions(+), 8 deletions(-) diff --git a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml index 1fefbbc9..649a450e 100644 --- a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml +++ b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml @@ -174,8 +174,8 @@ components: responses: Coordination.Post: description: | - Shall be returned when the API producer has chosen the synchronous mode, - which may be chosen for coordination actions that finish within the time + Shall be returned returned to indicate a finished coordination action when the API producer has + chosen the synchronous mode, which may be selected for coordination actions that finish within the time frame in which an HTTP response is expected. The response body shall contain an LcmCoord data structure that represents the result of the coordination action. @@ -226,6 +226,11 @@ components: The HTTP response shall include a "Location" HTTP header that indicates the URI of the "Individual coordination action" resource that will be created once the coordination operation has finished successfully. + Further, the HTTP response may include a "Retry-After" HTTP header that indicates the + time to wait before sending the next GET request to the "individual coordination" resource + indicated in the "Location" header. If the header is provided, the VNFM shall record the signalled + delay value in the "delay" attribute of the applicable entry in the "lcmCoordinations" array in the + "VnfLcmOpOcc" structure. headers: Version: description: | diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index f394a6d8..180a8ff3 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -16,7 +16,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 002 V3.5.1 diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 49817600..5d130425 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -1442,6 +1442,8 @@ definitions: "Individual coordination action" resource within a timeout interval after requesting the coordination to be started or to be cancelled. The length of the timeout interval is defined by means outside the scope of the present document. + * NOTE 5: The list of rejected coordinations may be garbage collected if the LCM operation occurrence has + reached a terminal state, i.e. one of "COMPLETED", "FAILED" and "ROLLED_BACK". type: object oneOf: - required: @@ -1629,13 +1631,14 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmCoordResultType" startTime: description: > - The time when the coordination action has been started. + The time when the VNFM has received the confirmation that the coordination action has been started. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" endTime: description: > - The end time of the coordination action. Shall be present for a coordination - action that has finished or timed out (see note 4) and shall be absent if - the coordination is ongoing. + The end time when the VNFM has received the confirmation thatof the coordination action + has finished or has been cancelled, or the time when a coordination action has timed out. + Shall be present for a coordination action that has finished or timed out (see note 4) and + shall be absent if the coordination is ongoing. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" endpointType: description: > @@ -1647,6 +1650,45 @@ definitions: enum: - MGMT - VNF + delay: + description: > + The end of the delay period. + This attribute shall be present if the last known HTTP response related to this coordination + has contained a "Retry-After" header, and shall be absent otherwise. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + rejectedLcmCoordinations: + description: > + Information about LCM coordination actions (see clause 10) that were rejected by 503 error which + means they will be tried again after a delay. See note 5. + type: object + required: + - coordinationActionName + - rejectionTime + - endpointType + - delay + properties: + coordinationActionName: + description: > + Indicator of the actual coordination action. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + rejectionTime: + description: > + The time when the VNFM has received the 503 response that rejects the actual coordination. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" + endpointType: + description: > + The endpoint type used by this coordination action. + Valid values: + - MGMT: coordination with other operation supporting management systems (e.g. EM) + - VNF: coordination with the VNF instance + type: string + enum: + - MGMT + - VNF + delay: + description: > + The end of the delay period, as calculated from the startTime and "Retry-After" header. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" warnings: description: > Warning messages that were generated while the operation was executing. diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index 0ce395f4..eec13361 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -565,7 +565,9 @@ definitions: $ref: "#/definitions/IdentifierInVim" extCps: description: > - External CPs of the VNF to be connected to this external VL. + External CPs of the VNF to be connected to this external VL. Entries in the list of external + CP data that are unchanged need not be supplied if the ExtVirtualLinkData structure is part + of a request or response that modifies the external connectivity. type: array items: $ref: "#/definitions/VnfExtCpData" -- GitLab From 55384c3f4eeda82230abf1ea02f0c7ed2ab3cfd7 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 7 Jul 2021 18:54:19 +0200 Subject: [PATCH 55/66] fixed responses ref names --- .../VNFPerformanceManagement.yaml | 417 +----------------- ...edResourcesQuotaAvailableNotification.yaml | 1 - src/endpoints/SOL002SOL003_endpoints.yaml | 4 +- 3 files changed, 12 insertions(+), 410 deletions(-) diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 044f2454..f1939531 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -52,7 +52,7 @@ paths: $ref: '#/components/requestBodies/CreatePmJobRequest' responses: 201: - $ref: '#/components/responses/PMJobs.Post.201' + $ref: '#/components/responses/PmJobs.Post.201' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" 401: @@ -86,7 +86,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: 200: - $ref: '#/components/responses/PMJobs.Get.200' + $ref: '#/components/responses/PmJobs.Get.200' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" 401: @@ -124,7 +124,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: 200: - $ref: '#/components/responses/IndividualPMJob.Get.200' + $ref: '#/components/responses/IndividualPmJob.Get.200' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" 401: @@ -151,7 +151,7 @@ paths: This method allows to modify an "Individual PM job" resource. See clause 6.4.3.3.4. responses: 200: - $ref: '#/components/responses/IndividualPMJob.Patch.200' + $ref: '#/components/responses/IndividualPmJob.Patch.200' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" 401: @@ -180,7 +180,7 @@ paths: This method terminates an individual PM job. See clause 6.4.3.3.5. responses: 204: - $ref: '#/components/responses/IndividualPMJob.Delete.200' + $ref: '#/components/responses/IndividualPmJob.Delete.200' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" 401: @@ -405,403 +405,6 @@ paths: 504: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504" -# ############################################################################## -# # Subscriptions # -# ############################################################################## -# '/subscriptions': -# #SOL003 location: 6.4.7 -# post: -# description: | -# Subscribe. -# The POST method creates a new subscription. -# This method shall follow the provisions specified in the tables 6.4.7.3.1-1 and 6.4.7.3.1-2 -# for URI query parameters, request and response data structures, and response codes. -# As the result of successfully executing this method, a new "Individual subscription" resource -# as defined in clause 6.4.8 shall have been created. This method shall not trigger any notification. -# Creation of two "Individual subscription" resources with the same callbackURI and the same filter -# can result in performance degradation and will provide duplicates of notifications to the NFVO, -# and might make sense only in very rare use cases. Consequently, the VNFM may either allow creating -# a new "Individual subscription" resource if another "Individual subscription" resource with the same -# filter and callbackUri already exists (in which case it shall return the "201 Created" response code), -# or may decide to not create a duplicate "Individual subscription" resource (in which case it shall -# return a "303 See Other" response code referencing the existing "Individual subscription" resource -# with the same filter and callbackUri). -# parameters: -# - name: PmSubscriptionRequest -# description: | -# Details of the subscription to be created. -# in: body -# required: true -# schema: -# $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscriptionRequest" -# - name: Accept -# description: | -# Content-Types that are acceptable for the response. -# Reference: IETF RFC 7231 -# in: header -# required: true -# type: string -# - name: Authorization -# description: | -# The authorization token for the request. -# Reference: IETF RFC 7235 -# in: header -# required: false -# type: string -# - name: Content-Type -# description: | -# The MIME type of the body of the request. -# Reference: IETF RFC 7231 -# in: header -# required: true -# type: string -# - name: Version -# description: | -# Version of the API requested to use when responding to this request. -# in: header -# required: true -# type: string -# responses: -# 201: -# description: | -# 201 CREATED -# -# Shall be returned when the subscription has been created successfully. -# A representation of the created "Individual subscription" resource shall be -# returned in the response body, as defined in clause 6.5.2.3. -# The HTTP response shall include a "Location" HTTP header that contains the -# resource URI of the created "Individual subscription" resource. -# headers: -# Location: -# description: The resource URI of the created VNF instance -# type: string -# format: url -# Content-Type: -# description: | -# The MIME type of the body of the request. -# Reference: IETF RFC 7231 -# type: string -# maximum: 1 -# minimum: 1 -# WWW-Authenticate: -# description: | -# Challenge if the corresponding HTTP request has not provided -# authorization, or error details if the corresponding HTTP -# request has provided an invalid authorization token. -# type: string -# maximum: 1 -# minimum: 0 -# Version: -# description: | -# Version of the API used in the response. -# type: string -# maximum: 1 -# minimum: 1 -# schema: -# $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" -# 303: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/303" -# 400: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" -# 401: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401" -# 403: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" -# 404: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" -# 405: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" -# 406: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" -# 422: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" -# 500: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" -# 503: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503" -# 504: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504" -# -# get: -# description: | -# Query Subscription Information. -# TThe client can use this method to query the list of active subscriptions -# to Performance management notifications subscribed by the client. -# This method shall follow the provisions specified in the tables 6.4.7.3.2-1 and 6.4.7.3.2-2 -# for URI query parameters, request and response data structures, and response codes. -# parameters: -# - name: Accept -# description: | -# Content-Types that are acceptable for the response. -# Reference: IETF RFC 7231 -# in: header -# required: true -# type: string -# - name: Authorization -# description: | -# The authorization token for the request. -# Reference: IETF RFC 7235 -# in: header -# required: false -# type: string -# - name: filter -# description: | -# Attribute-based filtering expression according to clause 5.2 of ETSI GS NFV-SOL 013. -# The VNFM shall support receiving this parameter as part of the -# URI query string. The NFVO may supply this parameter. -# All attribute names that appear in the PmSubscription and in -# data types referenced from it shall be supported by the VNFM -# in the filter expression. -# in: query -# required: false -# type: string -# - name: nextpage_opaque_marker -# description: | -# Marker to obtain the next page of a paged response. Shall be -# supported by the VNFM if the VNFM supports alternative 2 (paging) -# according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource. -# in: query -# required: false -# type: string -# - name: Version -# description: | -# Version of the API requested to use when responding to this request. -# in: header -# required: true -# type: string -# responses: -# 200: -# description: | -# 200 OK -# -# Shall be returned when the list of subscriptions has been queried successfully. -# The response body shall contain in an array the representations of all active subscriptions -# of the functional block that invokes the method, i.e. zero or more representations of -# PM subscriptions as defined in clause 6.5.2.3. -# If the "filter" URI parameter was supplied in the request, the data in the response body -# shall have been transformed according to the rules specified in clause 5.2.2 of ETSI GS NFV-SOL 013. -# If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 -# for this resource, inclusion of the Link HTTP header in this response shall follow the provisions -# in clause 5.4.2.3 of ETSI GS NFV-SOL 013. -# headers: -# Content-Type: -# description: | -# The MIME type of the body of the request. -# Reference: IETF RFC 7231 -# type: string -# maximum: 1 -# minimum: 1 -# WWW-Authenticate: -# description: | -# Challenge if the corresponding HTTP request has not provided -# authorization, or error details if the corresponding HTTP -# request has provided an invalid authorization token. -# type: string -# maximum: 1 -# minimum: 0 -# Version: -# description: | -# Version of the API used in the response. -# type: string -# maximum: 1 -# minimum: 1 -# Link: -# description: | -# Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. -# type: string -# maximum: 1 -# minimum: 0 -# schema: -# type: array -# items: -# $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" -# 400: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" -# 401: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401" -# 403: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" -# 404: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" -# 405: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" -# 406: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" -# 422: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" -# 500: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" -# 503: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503" -# 504: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504" -# -# ############################################################################### -# # Individual subscription # -# ############################################################################### -# '/subscriptions/{subscriptionId}': -# #SOL003 location: 6.4.8 -# parameters: -# - name: subscriptionId -# description: | -# This identifier can be retrieved from the resource referenced by the -# "Location" HTTP header in the response to a POST request creating a -# new "Individual subscription" resource. It can also be retrieved from the "id" -# attribute in the payload body of that response. -# in: path -# type: string -# required: true -# get: -# description: | -# Query Subscription Information. -# The client can use this method for reading an individual subscription about -# Performance management notifications subscribed by the client. -# This method shall follow the provisions specified in the tables 6.4.8.3.2-1 and 6.4.8.3.2-2 -# for URI query parameters, request and response data structures, and response codes. -# parameters: -# - name: Accept -# description: | -# Content-Types that are acceptable for the response. -# Reference: IETF RFC 7231 -# in: header -# required: true -# type: string -# - name: Authorization -# description: | -# The authorization token for the request. -# Reference: IETF RFC 7235 -# in: header -# required: false -# type: string -# - name: Version -# description: | -# Version of the API requested to use when responding to this request. -# in: header -# required: true -# type: string -# responses: -# 200: -# description: | -# 200 OK -# -# Shall be returned when the subscription has been read successfully. -# The response body shall contain a representation of the "Individual subscription" resource, -# as defined in clause 6.5.2.3. -# headers: -# Content-Type: -# description: | -# The MIME type of the body of the request. -# Reference: IETF RFC 7231 -# type: string -# maximum: 1 -# minimum: 1 -# WWW-Authenticate: -# description: | -# Challenge if the corresponding HTTP request has not provided -# authorization, or error details if the corresponding HTTP -# request has provided an invalid authorization token. -# type: string -# maximum: 1 -# minimum: 0 -# Version: -# description: | -# Version of the API used in the response. -# type: string -# maximum: 1 -# minimum: 1 -# schema: -# $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmSubscription" -# 400: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" -# 401: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401" -# 403: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" -# 404: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" -# 405: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" -# 406: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" -# 422: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" -# 500: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" -# 503: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503" -# 504: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504" -# -# delete: -# description: | -# Terminate Subscription. -# This method terminates an individual subscription. -# This method shall follow the provisions specified in the tables 6.4.8.3.5-1 and 6.4.8.3.5-2 -# for URI query parameters, request and response data structures, and response codes. -# As the result of successfully executing this method, the "Individual subscription" resource -# shall not exist any longer. This means that no notifications for that subscription shall -# be sent to the formerly-subscribed API consumer. -# -# NOTE: Due to race conditions, some notifications might still be received by the formerly-subscribed -# API consumer for a certain time period after the deletion. -# parameters: -# - name: Authorization -# description: | -# The authorization token for the request. -# Reference: IETF RFC 7235 -# in: header -# required: false -# type: string -# - name: Version -# description: | -# Version of the API requested to use when responding to this request. -# in: header -# required: true -# type: string -# responses: -# 204: -# description: | -# 204 NO CONTENT -# -# Shall be returned when the "Individual subscription" resource has been deleted successfully. -# The response body shall be empty. -# headers: -# WWW-Authenticate: -# description: | -# Challenge if the corresponding HTTP request has not provided -# authorization, or error details if the corresponding HTTP -# request has provided an invalid authorization token. -# type: string -# maximum: 1 -# minimum: 0 -# Version: -# description: | -# Version of the API used in the response. -# type: string -# maximum: 1 -# minimum: 1 -# 400: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" -# 401: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401" -# 403: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" -# 404: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" -# 405: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" -# 406: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" -# 422: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" -# 500: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" -# 503: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/503" -# 504: -# $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/504" - - components: parameters: PmJobId: @@ -863,7 +466,7 @@ components: required: true responses: - PMJobs.Post.201: + PmJobs.Post.201: description: | 201 CREATED @@ -899,7 +502,7 @@ components: schema: $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob" - PMJobs.Get.200: + PmJobs.Get.200: description: | 200 OK @@ -949,7 +552,7 @@ components: items: $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob" - IndividualPMJob.Get.200: + IndividualPmJob.Get.200: description: | 200 OK @@ -983,7 +586,7 @@ components: schema: $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob" - IndividualPMJob.Patch.200: + IndividualPmJob.Patch.200: description: | 200 OK @@ -1016,7 +619,7 @@ components: schema: $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJobModifications" - IndividualPMJob.Delete.200: + IndividualPmJob.Delete.200: description: | 204 NO CONTENT diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index 45a5942e..28995308 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -196,7 +196,6 @@ components: type: string requestBodies: - VrQuotaAvailSubscriptionRequest: description: | Details of the subscription to be created. diff --git a/src/endpoints/SOL002SOL003_endpoints.yaml b/src/endpoints/SOL002SOL003_endpoints.yaml index ffdef1cf..d6f7328c 100644 --- a/src/endpoints/SOL002SOL003_endpoints.yaml +++ b/src/endpoints/SOL002SOL003_endpoints.yaml @@ -10,7 +10,7 @@ endpoints: for request and response data structures, and response codes. URI query parameters are not supported. responses: "200": - $ref: '#/components/responses/ApiVersions.Get' + $ref: '#/components/responses/ApiVersions.Get.200' "400": $ref: ../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -68,7 +68,7 @@ endpoints: components: responses: - ApiVersions.Get: + ApiVersions.Get.200: description: > API version information was read successfully. The response body shall contain API version -- GitLab From 95ee33b9ed7f9b4c00be5547024b1e7830c4fcd0 Mon Sep 17 00:00:00 2001 From: muhammadh Date: Fri, 9 Jul 2021 17:12:14 +0500 Subject: [PATCH 56/66] Updated Responses and Refs --- .../VNFConfiguration/VNFConfiguration.yaml | 8 +- .../VNFFaultManagement.yaml | 34 ++--- .../VNFFaultManagementNotification.yaml | 18 +-- src/SOL002/VNFIndicator/VNFIndicator.yaml | 28 ++-- .../VNFIndicatorNotification.yaml | 14 +- .../VNFLifecycleCoordination.yaml | 20 +-- .../VNFLifecycleManagement.yaml | 125 +++++++++--------- .../VNFLifecycleManagementNotification.yaml | 18 +-- .../VNFPerformanceManagement.yaml | 44 +++--- .../VNFPerformanceManagementNotification.yaml | 14 +- 10 files changed, 164 insertions(+), 159 deletions(-) diff --git a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml index cad1201d..145af239 100644 --- a/src/SOL002/VNFConfiguration/VNFConfiguration.yaml +++ b/src/SOL002/VNFConfiguration/VNFConfiguration.yaml @@ -40,7 +40,7 @@ paths: See clause 9.4.2.3.2. responses: "200": - $ref: '#/components/responses/Configuration.Get' + $ref: '#/components/responses/Configuration.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -71,7 +71,7 @@ paths: $ref: '#/components/requestBodies/ConfigurationRequest' responses: "200": - $ref: '#/components/responses/Configuration.Patch' + $ref: '#/components/responses/Configuration.Patch.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -111,7 +111,7 @@ components: required: true responses: - Configuration.Get: + Configuration.Get.200: description: | 200 OK Shall be returned when configuration information about a VNF instance has been read successfully. The response @@ -142,7 +142,7 @@ components: schema: $ref: ./definitions/SOL002VNFConfiguration_def.yaml#/definitions/VnfConfiguration - Configuration.Patch: + Configuration.Patch.200: description: | 200 OK Shall be returned when the request has been accepted and completed. The response body shall contain the diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 0f945f31..7f5a8031 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -44,7 +44,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: "200": - $ref: '#/components/responses/Alarms.Get' + $ref: '#/components/responses/Alarms.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -83,7 +83,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType responses: "200": - $ref: '#/components/responses/IndividualAlarm.Get' + $ref: '#/components/responses/IndividualAlarm.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -119,7 +119,7 @@ paths: $ref: '#/components/requestBodies/IndividualAlarmRequest' responses: "200": - $ref: '#/components/responses/IndividualAlarm.Patch' + $ref: '#/components/responses/IndividualAlarm.Patch.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -161,8 +161,8 @@ paths: requestBody: $ref: '#/components/requestBodies/IndividualAlarmEscalateRequest' responses: - "200": - $ref: '#/components/responses/IndividualAlarmEscalate.Post' + "204": + $ref: '#/components/responses/IndividualAlarmEscalate.Post.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -203,7 +203,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: "200": - $ref: '#/components/responses/Subscriptions.Get' + $ref: '#/components/responses/Subscriptions.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -239,7 +239,7 @@ paths: $ref: '#/components/requestBodies/FmSubscriptionRequest' responses: "201": - $ref: '#/components/responses/Subscriptions.Post' + $ref: '#/components/responses/Subscriptions.Post.201' "303": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/303 "400": @@ -281,7 +281,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType responses: "200": - $ref: '#/components/responses/IndividualSubscription.Get' + $ref: '#/components/responses/IndividualSubscription.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -312,7 +312,7 @@ paths: This method terminates an individual subscription. See clause 7.4.6.3.5. responses: "204": - $ref: '#/components/responses/IndividualSubscription.Delete' + $ref: '#/components/responses/IndividualSubscription.Delete.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -392,7 +392,7 @@ components: required: true responses: - Alarms.Get: + Alarms.Get.200: description: | 200 OK Shall be returned when information about zero or more alarms was queried successfully. The response body shall @@ -434,7 +434,7 @@ components: schema: $ref: ./definitions/SOL002VNFFaultManagement_def.yaml#/definitions/Alarm - IndividualAlarm.Get: + IndividualAlarm.Get.200: description: | 200 OK Shall be returned when information about an individual alarm read successfully. The response body shall contain @@ -465,7 +465,7 @@ components: schema: $ref: ./definitions/SOL002VNFFaultManagement_def.yaml#/definitions/Alarm - IndividualAlarm.Patch: + IndividualAlarm.Patch.200: description: | 200 OK Shall be returned when the request was accepted and completed. The response body shall contain attribute @@ -496,7 +496,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications - IndividualAlarmEscalate.Post: + IndividualAlarmEscalate.Post.204: description: | 204 No Content Shall be returned when the VNFM has received the proposed "escalated perceived severity" value successfully. @@ -510,7 +510,7 @@ components: type: string content: {} - Subscriptions.Get: + Subscriptions.Get.200: description: | 200 OK Shall be returned when the list of subscriptions has been queried successfully. @@ -553,7 +553,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription - Subscriptions.Post: + Subscriptions.Post.201: description: | 201 CREATED The subscription was created successfully. The response body shall contain a representation of the created @@ -593,7 +593,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription - IndividualSubscription.Get: + IndividualSubscription.Get.200: description: | 200 OK Shall be returned when information about an individual subscription has been read successfully. @@ -624,7 +624,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription - IndividualSubscription.Delete: + IndividualSubscription.Delete.204: description: | 204 NO CONTENT Shall be returned when the "Individual subscription" resource has been deleted successfully. diff --git a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml index 9d04a73b..65f926df 100644 --- a/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml +++ b/src/SOL002/VNFFaultManagementNotification/VNFFaultManagementNotification.yaml @@ -37,7 +37,7 @@ paths: e.g. during subscription. See clause 7.4.7.3.2. responses: "204": - $ref: '#/components/responses/VNFFMNotification.Get' + $ref: '#/components/responses/VNFFMNotification.Get.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -63,7 +63,7 @@ paths: $ref: '#/components/requestBodies/AlarmNotification' responses: "204": - $ref: '#/components/responses/VNFFMNotification.Post' + $ref: '#/components/responses/VNFFMNotification.Post.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -89,7 +89,7 @@ paths: e.g. during subscription. See clause 7.4.7.3.2. responses: "204": - $ref: '#/components/responses/VNFFMNotification.Get' + $ref: '#/components/responses/VNFFMNotification.Get.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -115,7 +115,7 @@ paths: $ref: '#/components/requestBodies/AlarmClearedNotification' responses: "204": - $ref: '#/components/responses/VNFFMNotification.Post' + $ref: '#/components/responses/VNFFMNotification.Post.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -141,7 +141,7 @@ paths: e.g. during subscription. See clause 7.4.7.3.2. responses: "204": - $ref: '#/components/responses/VNFFMNotification.Get' + $ref: '#/components/responses/VNFFMNotification.Get.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -167,7 +167,7 @@ paths: $ref: '#/components/requestBodies/AlarmListRebuiltNotification' responses: "204": - $ref: '#/components/responses/VNFFMNotification.Post' + $ref: '#/components/responses/VNFFMNotification.Post.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -213,9 +213,9 @@ components: required: true responses: - VNFFMNotification.Get: + VNFFMNotification.Get.204: description: | - 201 NO CONTENT + 204 NO CONTENT Shall be returned to indicate the notification endpoint has been tested successfully. The response body shall be empty. headers: @@ -236,7 +236,7 @@ components: type: string content: {} - VNFFMNotification.Post: + VNFFMNotification.Post.204: description: | 204 NO CONTENT Shall be returned when the notification has been delivered successfully. The response body shall be empty. diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index fd3b2968..f1c9c9d8 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -42,7 +42,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: "200": - $ref: '#/components/responses/Indicators.Get' + $ref: '#/components/responses/Indicators.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -81,7 +81,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: "200": - $ref: '#/components/responses/VnfIndicators.Get' + $ref: '#/components/responses/VnfIndicators.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -118,7 +118,7 @@ paths: The GET method reads a VNF indicator. See clause 8.4.4.3.2. responses: "200": - $ref: '#/components/responses/VnfIndividualIndicator.Get' + $ref: '#/components/responses/VnfIndividualIndicator.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -157,7 +157,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: "200": - $ref: '#/components/responses/VnfIndicatorSubscriptions.Get' + $ref: '#/components/responses/VnfIndicatorSubscriptions.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -193,7 +193,7 @@ paths: $ref: '#/components/requestBodies/VnfIndicatorSubscriptionRequest' responses: "201": - $ref: '#/components/responses/VnfIndicatorSubscription.Post' + $ref: '#/components/responses/VnfIndicatorSubscription.Post.201' "303": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/303 "400": @@ -231,7 +231,7 @@ paths: The GET method reads an individual subscription. See clause 8.4.6.3.2. responses: "200": - $ref: '#/components/responses/VnfIndicatorSubscription.Get' + $ref: '#/components/responses/VnfIndicatorSubscription.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -262,7 +262,7 @@ paths: The DELETE method terminates an individual subscription. See clause 8.4.6.3.5. responses: "204": - $ref: '#/components/responses/VnfIndicatorSubscription.Delete' + $ref: '#/components/responses/VnfIndicatorSubscription.Delete.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -340,7 +340,7 @@ components: required: true responses: - Indicators.Get: + Indicators.Get.200: description: | 200 OK Shall be returned when information about zero or more VNF indicators was queried successfully. @@ -378,7 +378,7 @@ components: items: $ref: ../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator - VnfIndicators.Get: + VnfIndicators.Get.200: description: | 200 OK Shall be returned when information about zero or more VNF indicators was queried successfully. @@ -416,7 +416,7 @@ components: items: $ref: ../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator - VnfIndividualIndicator.Get: + VnfIndividualIndicator.Get.200: description: | 200 OK Shall be returned when the VNF indicator has been read successfully. The response body shall contain the @@ -439,7 +439,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicator - VnfIndicatorSubscriptions.Get: + VnfIndicatorSubscriptions.Get.200: description: | 200 OK Shall be returned when the list of subscriptions was queried successfully. @@ -477,7 +477,7 @@ components: items: $ref: ../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription - VnfIndicatorSubscription.Post: + VnfIndicatorSubscription.Post.201: description: | 201 CREATED Shall be returned when the subscription has been created successfully. The response body shall contain a @@ -518,7 +518,7 @@ components: items: $ref: ../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription - VnfIndicatorSubscription.Get: + VnfIndicatorSubscription.Get.200: description: | 200 OK Shall be returned when information about an individual subscription has been read successfully. @@ -541,7 +541,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription - VnfIndicatorSubscription.Delete: + VnfIndicatorSubscription.Delete.204: description: | 204 NO CONTENT Shall be returned when the subscription has been deleted successfully. The response body shall be empty. diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 3a2f32a2..fce09f5f 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -37,7 +37,7 @@ paths: API consumer, e.g. during subscription. See clause 8.4.7.3.2. responses: "204": - $ref: '#/components/responses/VNFInNotification.Get' + $ref: '#/components/responses/VNFInNotification.Get.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -63,7 +63,7 @@ paths: $ref: '#/components/requestBodies/VnfIndicatorValueChangeNotification' responses: "204": - $ref: '#/components/responses/VNFInNotification.Post' + $ref: '#/components/responses/VNFInNotification.Post.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -89,7 +89,7 @@ paths: API consumer, e.g. during subscription. See clause 8.4.7.3.2. responses: "204": - $ref: '#/components/responses/VNFInNotification.Get' + $ref: '#/components/responses/VNFInNotification.Get.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -115,7 +115,7 @@ paths: $ref: '#/components/requestBodies/SupportedIndicatorsChangeNotification' responses: "204": - $ref: '#/components/responses/VNFInNotification.Post' + $ref: '#/components/responses/VNFInNotification.Post.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -152,9 +152,9 @@ components: required: true responses: - VNFInNotification.Get: + VNFInNotification.Get.204: description: | - 201 NO CONTENT + 204 NO CONTENT Shall be returned to indicate the notification endpoint has been tested successfully. The response body shall be empty. headers: @@ -175,7 +175,7 @@ components: type: string content: {} - VNFInNotification.Post: + VNFInNotification.Post.204: description: | 204 NO CONTENT Shall be returned when the notification has been delivered successfully. The response body shall be empty. diff --git a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml index 649a450e..483a3016 100644 --- a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml +++ b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml @@ -45,9 +45,9 @@ paths: $ref: '#/components/requestBodies/LcmCoordRequest' responses: "201": - $ref: '#/components/responses/Coordination.Post' + $ref: '#/components/responses/Coordination.Post.201' "202": - $ref: '#/components/responses/Coordination_async.Post' + $ref: '#/components/responses/Coordination_async.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -81,7 +81,7 @@ paths: The GET method reads a coordination result. See clause 10.4.3.3.2. responses: "200": - $ref: '#/components/responses/IndividualLcmCoord.Get' + $ref: '#/components/responses/IndividualLcmCoord.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -118,7 +118,7 @@ paths: See clause 10.4.4.3.1. responses: "202": - $ref: '#/components/responses/coordinationCancel.Post' + $ref: '#/components/responses/CoordinationCancel.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -172,8 +172,9 @@ components: required: true responses: - Coordination.Post: + Coordination.Post.201: description: | + 201 CREATED Shall be returned returned to indicate a finished coordination action when the API producer has chosen the synchronous mode, which may be selected for coordination actions that finish within the time frame in which an HTTP response is expected. @@ -218,8 +219,9 @@ components: schema: $ref: ./definitions/SOL002VNFLifecycleCoordination_def.yaml#/definitions/LcmCoord - Coordination_async.Post: + Coordination_async.Post.202: description: | + 202 ACCEPTED Shall be returned when the API producer has chosen the asynchronous mode and the request has been accepted for processing. The response body shall be empty. @@ -266,8 +268,9 @@ components: format: url content: {} - IndividualLcmCoord.Get: + IndividualLcmCoord.Get.200: description: | + 200 OK Shall be returned when the coordination is finished and the coordination result has been read successfully. A representation of the "Individual coordination action" resource shall be returned in the response body. headers: @@ -296,8 +299,9 @@ components: schema: $ref: ./definitions/SOL002VNFLifecycleCoordination_def.yaml#/definitions/LcmCoord - coordinationCancel.Post: + CoordinationCancel.Post.202: description: | + 202 ACCEPTED Shall be returned when the cancellation request has been accepted for processing. The response shall have an empty payload body. headers: diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 180a8ff3..80a4759d 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -47,7 +47,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: "200": - $ref: '#/components/responses/VnfInstances.Get' + $ref: '#/components/responses/VnfInstances.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -84,7 +84,7 @@ paths: $ref: '#/components/requestBodies/VnfInstanceCreationRequest' responses: "201": - $ref: '#/components/responses/VnfInstances.Post' + $ref: '#/components/responses/VnfInstances.Post.201' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -120,7 +120,7 @@ paths: Information about a VNF instance by reading an "Individual VNF instance". See clause 5.4.3.3.2. responses: "200": - $ref: '#/components/responses/IndividualVnfInstance.Get' + $ref: '#/components/responses/IndividualVnfInstance.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -151,7 +151,7 @@ paths: This method deletes an "Individual VNF instance" resource. See clause 5.4.3.3.5. responses: "204": - $ref: '#/components/responses/IndividualVnfInstance.Delete' + $ref: '#/components/responses/IndividualVnfInstance.Delete.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -186,7 +186,7 @@ paths: $ref: '#/components/requestBodies/VnfInstanceModificationRequest' responses: "202": - $ref: '#/components/responses/IndividualVnfInstance.Patch' + $ref: '#/components/responses/IndividualVnfInstance.Patch.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -228,7 +228,7 @@ paths: $ref: '#/components/requestBodies/VnfInstanceInstantiationRequest' responses: "202": - $ref: '#/components/responses/InstantiateVnfInstance.Post' + $ref: '#/components/responses/InstantiateVnfInstance.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -268,7 +268,7 @@ paths: $ref: '#/components/requestBodies/VnfInstanceScaleRequest' responses: "202": - $ref: '#/components/responses/ScaleVnfInstance.Post' + $ref: '#/components/responses/ScaleVnfInstance.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -308,7 +308,7 @@ paths: $ref: '#/components/requestBodies/VnfInstanceScaleToLevelRequest' responses: "202": - $ref: '#/components/responses/ScaleVnfInstanceToLevel.Post' + $ref: '#/components/responses/ScaleVnfInstanceToLevel.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -348,7 +348,7 @@ paths: $ref: '#/components/requestBodies/VnfInstanceChangeFlavourRequest' responses: "202": - $ref: '#/components/responses/VnfInstanceChangeFlavour.Post' + $ref: '#/components/responses/VnfInstanceChangeFlavour.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -389,7 +389,7 @@ paths: $ref: '#/components/requestBodies/VnfInstanceTerminationRequest' responses: "202": - $ref: '#/components/responses/TerminateVnfInstance.Post' + $ref: '#/components/responses/TerminateVnfInstance.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -429,7 +429,7 @@ paths: $ref: '#/components/requestBodies/VnfInstanceHealRequest' responses: "202": - $ref: '#/components/responses/HealVnfInstance.Post' + $ref: '#/components/responses/HealVnfInstance.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -469,7 +469,7 @@ paths: $ref: '#/components/requestBodies/VnfInstanceOperateRequest' responses: "202": - $ref: '#/components/responses/OperateVnfInstance.Post' + $ref: '#/components/responses/OperateVnfInstance.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -509,7 +509,7 @@ paths: $ref: '#/components/requestBodies/VnfInstanceChangeExtConnRequest' responses: "202": - $ref: '#/components/responses/VnfInstanceChangeExtConn.Post' + $ref: '#/components/responses/VnfInstanceChangeExtConn.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -550,7 +550,7 @@ paths: $ref: '#/components/requestBodies/VnfInstanceChangeVnfPkgRequest' responses: "202": - $ref: '#/components/responses/VnfInstanceChangeVnfPkg.Post' + $ref: '#/components/responses/VnfInstanceChangeVnfPkg.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -595,7 +595,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: "200": - $ref: '#/components/responses/VnfLcmOpOccs.Get' + $ref: '#/components/responses/VnfLcmOpOccs.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -632,7 +632,7 @@ paths: by reading an "Individual VNF LCM operation occurrence" resource. See clause 5.4.13.3.2. responses: "200": - $ref: '#/components/responses/IndividualVnfLcmOpOcc.Get' + $ref: '#/components/responses/IndividualVnfLcmOpOcc.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -670,7 +670,7 @@ paths: See clause 5.4.14.3.1. responses: "202": - $ref: '#/components/responses/VnfLcmOpOccRetry.Post' + $ref: '#/components/responses/VnfLcmOpOccRetry.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -710,7 +710,7 @@ paths: See clause 5.4.15.3.1. responses: "202": - $ref: '#/components/responses/VnfLcmOpOccRollback.Post' + $ref: '#/components/responses/VnfLcmOpOccRollback.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -749,7 +749,7 @@ paths: occurrence is in "FAILED_TEMP" state. See clause 5.4.16.3.1. responses: "200": - $ref: '#/components/responses/VnfLcmOpOccFail.Post' + $ref: '#/components/responses/VnfLcmOpOccFail.Post.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -789,7 +789,7 @@ paths: See clause 5.4.17.3.1. responses: "202": - $ref: '#/components/responses/VnfLcmOpOccCancel.Post' + $ref: '#/components/responses/VnfLcmOpOccCancel.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -830,7 +830,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: "200": - $ref: '#/components/responses/Subscriptions.Get' + $ref: '#/components/responses/Subscriptions.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -863,7 +863,7 @@ paths: $ref: '#/components/requestBodies/VnfLcmSubscriptionRequest' responses: "201": - $ref: '#/components/responses/Subscriptions.Post' + $ref: '#/components/responses/Subscriptions.Post.201' "303": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/303 "400": @@ -902,7 +902,7 @@ paths: See clause 5.4.19.3.2. responses: "200": - $ref: '#/components/responses/IndividualSubscription.Get' + $ref: '#/components/responses/IndividualSubscription.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -933,7 +933,7 @@ paths: The DELETE method terminates an individual subscription. See clause 5.4.19.3.5. responses: "204": - $ref: '#/components/responses/IndividualSubscription.Delete' + $ref: '#/components/responses/IndividualSubscription.Delete.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -972,7 +972,7 @@ paths: $ref: '#/components/requestBodies/VnfInstanceCreateSnapshotRequest' responses: "202": - $ref: '#/components/responses/VnfInstanceCreateSnapshot.Post' + $ref: '#/components/responses/VnfInstanceCreateSnapshot.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -1012,7 +1012,7 @@ paths: $ref: '#/components/requestBodies/VnfInstanceRevertToSnapshotRequest' responses: "202": - $ref: '#/components/responses/VnfInstanceRevertToSnapshot.Post' + $ref: '#/components/responses/VnfInstanceRevertToSnapshot.Post.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -1051,7 +1051,7 @@ paths: $ref: '#/components/requestBodies/VnfSnapshotsRequest' responses: "201": - $ref: '#/components/responses/VnfSnapshots.Post' + $ref: '#/components/responses/VnfSnapshots.Post.201' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -1092,7 +1092,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: "200": - $ref: '#/components/responses/VnfSnapshots.Get' + $ref: '#/components/responses/VnfSnapshots.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -1129,7 +1129,7 @@ paths: See clause 5.4.24.3.2. responses: "200": - $ref: '#/components/responses/IndividualVnfSnapshot.Get' + $ref: '#/components/responses/IndividualVnfSnapshot.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -1160,8 +1160,8 @@ paths: This method deletes an individual VNF snapshot resource and the associated VNF snapshot information managed by the VNFM, and any resource associated to the VNF/VNFC snapshot managed by the VIM. See clause 5.4.24.3.5. responses: - "200": - $ref: '#/components/responses/IndividualVnfSnapshot.Delete' + "204": + $ref: '#/components/responses/IndividualVnfSnapshot.Delete.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -1372,7 +1372,7 @@ components: required: true responses: - VnfInstances.Get: + VnfInstances.Get.200: description: | 200 OK Information about zero or more VNF instances has been queried successfully. The response body shall contain in @@ -1405,7 +1405,7 @@ components: items: $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfInstance - VnfInstances.Post: + VnfInstances.Post.201: description: | 201 CREATED Shall be returned when a new "Individual VNF Instance" resource and the associated VNF instance identifier @@ -1448,7 +1448,7 @@ components: schema: $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfInstance - IndividualVnfInstance.Get: + IndividualVnfInstance.Get.200: description: | 200 OK Information about an individual VNF instance has been read successfully. The response body shall contain a @@ -1479,7 +1479,7 @@ components: schema: $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfInstance - IndividualVnfInstance.Delete: + IndividualVnfInstance.Delete.204: description: | 204 NO CONTENT The "Individual VNF instance" resource and the associated VNF identifier were deleted successfully. @@ -1504,7 +1504,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfIdentifierDeletionNotification - IndividualVnfInstance.Patch: + IndividualVnfInstance.Patch.202: description: | 202 ACCEPTED The request was accepted for processing, but the processing has not been completed. On success, the HTTP @@ -1543,7 +1543,7 @@ components: format: url content: {} - InstantiateVnfInstance.Post: + InstantiateVnfInstance.Post.202: description: | 202 ACCEPTED The request has been accepted for processing, but the processing has not been completed. The response body @@ -1582,7 +1582,7 @@ components: format: url content: {} - ScaleVnfInstance.Post: + ScaleVnfInstance.Post.202: description: | 202 ACCEPTED The request has been accepted for processing, but the processing has not been completed. The response body @@ -1621,7 +1621,7 @@ components: format: url content: {} - ScaleVnfInstanceToLevel.Post: + ScaleVnfInstanceToLevel.Post.202: description: | 202 ACCEPTED The request has been accepted for processing, but the processing has not been completed. The response body shall @@ -1660,7 +1660,7 @@ components: format: url content: {} - VnfInstanceChangeFlavour.Post: + VnfInstanceChangeFlavour.Post.202: description: | 202 ACCEPTED The request has been accepted for processing, but the processing has not been completed. The response body @@ -1699,7 +1699,7 @@ components: format: url content: {} - TerminateVnfInstance.Post: + TerminateVnfInstance.Post.202: description: | 202 ACCEPTED The request has been accepted for processing. The response body shall be empty. The HTTP response shall include @@ -1738,7 +1738,7 @@ components: format: url content: {} - HealVnfInstance.Post: + HealVnfInstance.Post.202: description: | 202 ACCEPTED The request has been accepted for processing, but the processing has not been completed. The response body @@ -1777,7 +1777,7 @@ components: format: url content: {} - OperateVnfInstance.Post: + OperateVnfInstance.Post.202: description: | 202 ACCEPTED The request has been accepted for processing, but the processing has not been completed. The response body @@ -1816,7 +1816,7 @@ components: format: url content: {} - VnfInstanceChangeExtConn.Post: + VnfInstanceChangeExtConn.Post.202: description: | 202 ACCEPTED The request has been accepted for processing, but the processing has not been completed. The response body @@ -1855,7 +1855,7 @@ components: format: url content: {} - VnfInstanceChangeVnfPkg.Post: + VnfInstanceChangeVnfPkg.Post.202: description: | 202 ACCEPTED Shall be returned when the request has been accepted for processing. @@ -1894,7 +1894,7 @@ components: format: url content: {} - VnfLcmOpOccs.Get: + VnfLcmOpOccs.Get.200: description: | 200 OK Status information for zero or more VNF lifecycle management operation occurrences has been queried @@ -1936,7 +1936,7 @@ components: schema: $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc - IndividualVnfLcmOpOcc.Get: + IndividualVnfLcmOpOcc.Get.200: description: | 200 OK Information about an individual VNF instance has been queried successfully. The response body shall contain @@ -1967,7 +1967,7 @@ components: schema: $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc - VnfLcmOpOccRetry.Post: + VnfLcmOpOccRetry.Post.202: description: | 202 ACCEPTED The request has been accepted for processing, but processing has not been completed. The response shall @@ -1989,7 +1989,7 @@ components: type: string content: {} - VnfLcmOpOccRollback.Post: + VnfLcmOpOccRollback.Post.202: description: | 202 ACCEPTED The request has been accepted for processing, but processing has not been completed. The response shall have @@ -2011,7 +2011,7 @@ components: type: string content: {} - VnfLcmOpOccFail.Post: + VnfLcmOpOccFail.Post.200: description: | 200 OK The state of the VNF lifecycle management operation occurrence has been changed successfully. The response @@ -2042,7 +2042,7 @@ components: schema: $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc - VnfLcmOpOccCancel.Post: + VnfLcmOpOccCancel.Post.202: description: | 202 ACCEPTED The request has been accepted for processing, but processing has not been completed. The response shall @@ -2064,7 +2064,7 @@ components: type: string content: {} - Subscriptions.Get: + Subscriptions.Get.200: description: | 200 OK The list of subscriptions has been queried successfully. The response body shall contain in an array the @@ -2096,7 +2096,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription - Subscriptions.Post: + Subscriptions.Post.201: description: | 201 CREATED The subscription has been created successfully. The response body shall contain a representation of the @@ -2135,7 +2135,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription - IndividualSubscription.Get: + IndividualSubscription.Get.200: description: | 200 OK The operation has completed successfully. The response body shall contain a representation of the @@ -2166,7 +2166,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription - IndividualSubscription.Delete: + IndividualSubscription.Delete.204: description: | 204 NO CONTENT The "Individual subscription" resource has been deleted successfully. The response body shall be empty. @@ -2187,7 +2187,7 @@ components: type: string content: {} - VnfInstanceCreateSnapshot.Post: + VnfInstanceCreateSnapshot.Post.202: description: | 202 ACCEPTED Shall be returned when the request was accepted for processing, but the processing has not been completed. @@ -2226,7 +2226,7 @@ components: format: url content: {} - VnfInstanceRevertToSnapshot.Post: + VnfInstanceRevertToSnapshot.Post.202: description: | 202 ACCEPTED Shall be returned when the request was accepted for processing, but the processing has not been completed. @@ -2265,9 +2265,9 @@ components: format: url content: {} - VnfSnapshots.Post: + VnfSnapshots.Post.201: description: | - 202 CREATED + 201 CREATED Shall be returned when an individual VNF snapshot resource has been created successfully. The response body shall contain a representation of the new individual VNF snapshot resource, as defined in clause 5.5.2.21. The HTTP response shall include a "Location" HTTP header that contains the resource URI of the @@ -2308,7 +2308,7 @@ components: schema: $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotInfo - VnfSnapshots.Get: + VnfSnapshots.Get.200: description: | 200 OK Shall be returned when information about zero or more VNF snapshots was queried successfully. @@ -2346,8 +2346,9 @@ components: items: $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotInfo - IndividualVnfSnapshot.Get: + IndividualVnfSnapshot.Get.200: description: | + 200 OK Shall be returned when information about an individual VNF snapshot was read successfully. The response body shall contain a representation of the individual VNF snapshot resource. headers: @@ -2383,7 +2384,7 @@ components: schema: $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotInfo - IndividualVnfSnapshot.Delete: + IndividualVnfSnapshot.Delete.204: description: | 204 NO CONTENT The "Individual subscription" resource has been deleted successfully. The response body shall be empty. diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index 5526ea78..d343e08a 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -37,7 +37,7 @@ paths: e.g. during subscription. See clause 5.4.20.3.2. responses: "204": - $ref: '#/components/responses/VNFLCMNotification.Get' + $ref: '#/components/responses/VNFLCMNotification.Get.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -63,7 +63,7 @@ paths: $ref: '#/components/requestBodies/VnfLcmOperationOccurrenceNotification' responses: "204": - $ref: '#/components/responses/VNFLCMNotification.Post' + $ref: '#/components/responses/VNFLCMNotification.Post.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -89,7 +89,7 @@ paths: e.g. during subscription. See clause 5.4.20.3.2. responses: "204": - $ref: '#/components/responses/VNFLCMNotification.Get' + $ref: '#/components/responses/VNFLCMNotification.Get.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -115,7 +115,7 @@ paths: $ref: '#/components/requestBodies/VnfIdentifierCreationNotification' responses: "204": - $ref: '#/components/responses/VNFLCMNotification.Post' + $ref: '#/components/responses/VNFLCMNotification.Post.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -141,7 +141,7 @@ paths: e.g. during subscription. See clause 5.4.20.3.2. responses: "204": - $ref: '#/components/responses/VNFLCMNotification.Get' + $ref: '#/components/responses/VNFLCMNotification.Get.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -167,7 +167,7 @@ paths: $ref: '#/components/requestBodies/VnfIdentifierDeletionNotification' responses: "204": - $ref: '#/components/responses/VNFLCMNotification.Post' + $ref: '#/components/responses/VNFLCMNotification.Post.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -213,9 +213,9 @@ components: required: true responses: - VNFLCMNotification.Get: + VNFLCMNotification.Get.204: description: | - 201 NO CONTENT + 204 NO CONTENT Shall be returned to indicate the notification endpoint has been tested successfully. The response body shall be empty. headers: @@ -236,7 +236,7 @@ components: type: string content: {} - VNFLCMNotification.Post: + VNFLCMNotification.Post.204: description: | 204 NO CONTENT Shall be returned when the notification has been delivered successfully. The response body shall be empty. diff --git a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml index d7c1dac2..a2e55c65 100644 --- a/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL002/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -48,7 +48,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: "200": - $ref: '#/components/responses/PmJobs.Get' + $ref: '#/components/responses/PmJobs.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -84,7 +84,7 @@ paths: $ref: '#/components/requestBodies/PmJobCreationRequest' responses: "201": - $ref: '#/components/responses/PmJobs.Post' + $ref: '#/components/responses/PmJobs.Post.201' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -122,7 +122,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: "200": - $ref: '#/components/responses/IndividualPmJob.Get' + $ref: '#/components/responses/IndividualPmJob.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -153,7 +153,7 @@ paths: This method terminates an individual PM job. See clause 6.4.3.3.5. responses: "204": - $ref: '#/components/responses/IndividualPmJob.Delete' + $ref: '#/components/responses/IndividualPmJob.Delete.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -186,7 +186,7 @@ paths: $ref: '#/components/requestBodies/PmJobModificationRequest' responses: "200": - $ref: '#/components/responses/IndividualPmJob.Patch' + $ref: '#/components/responses/IndividualPmJob.Patch.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -229,7 +229,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: "200": - $ref: '#/components/responses/IndividualPmJobReport.Get' + $ref: '#/components/responses/IndividualPmJobReport.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -268,7 +268,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker responses: "200": - $ref: '#/components/responses/Thresholds.Get' + $ref: '#/components/responses/Thresholds.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -304,7 +304,7 @@ paths: $ref: '#/components/requestBodies/ThresholdCreationRequest' responses: "201": - $ref: '#/components/responses/Thresholds.Post' + $ref: '#/components/responses/Thresholds.Post.201' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -342,7 +342,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: "200": - $ref: '#/components/responses/IndividualThreshold.Get' + $ref: '#/components/responses/IndividualThreshold.Get.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -375,7 +375,7 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept responses: "204": - $ref: '#/components/responses/IndividualThreshold.Delete' + $ref: '#/components/responses/IndividualThreshold.Delete.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -408,7 +408,7 @@ paths: $ref: '#/components/requestBodies/ThresholdModificationRequest' responses: "200": - $ref: '#/components/responses/IndividualThreshold.Patch' + $ref: '#/components/responses/IndividualThreshold.Patch.200' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -512,7 +512,7 @@ components: required: true responses: - PmJobs.Get: + PmJobs.Get.200: description: | 200 OK Shall be returned when information about zero or more PM jobs was queried successfully. The response body @@ -558,7 +558,7 @@ components: items: $ref: ../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob - PmJobs.Post: + PmJobs.Post.201: description: | 201 CREATED Shall be returned when the PM job has been created successfully. The response body shall contain a @@ -597,7 +597,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob - IndividualPmJob.Get: + IndividualPmJob.Get.200: description: | 200 OK Shall be returned when information about an individual PM job has been ueried successfully. The response @@ -628,7 +628,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob - IndividualPmJob.Delete: + IndividualPmJob.Delete.204: description: | 204 NO CONTENT Shall be returned when the PM job has been deleted successfully. The response body shall be empty. @@ -655,7 +655,7 @@ components: type: string content: {} - IndividualPmJob.Patch: + IndividualPmJob.Patch.200: description: | 200 OK Shall be returned when the request has been processed successfully. The response body shall contain a data @@ -686,7 +686,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJobModifications - IndividualPmJobReport.Get: + IndividualPmJobReport.Get.200: description: | 200 OK Shall be returned when information of an individual performance report has been read successfully. @@ -717,7 +717,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PerformanceReport - Thresholds.Get: + Thresholds.Get.200: description: | 200 OK Information about zero or more thresholds was queried successfully. @@ -762,7 +762,7 @@ components: items: $ref: ../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold - Thresholds.Post: + Thresholds.Post.201: description: | 201 CREATED Shall be returned when a threshold has been created successfully. The response body shall contain a @@ -801,7 +801,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold - IndividualThreshold.Get: + IndividualThreshold.Get.200: description: | 200 OK Shall be returned when information about an individual threshold has been queried successfully. @@ -832,7 +832,7 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold - IndividualThreshold.Delete: + IndividualThreshold.Delete.204: description: | 204 NO CONTENT Shall be returned when the threshold was deleted successfully. The response body shall be empty. @@ -853,7 +853,7 @@ components: type: string content: {} - IndividualThreshold.Patch: + IndividualThreshold.Patch.200: description: | 200 OK Shall be returned when the request has been processed successfully. The response body shall contain a data diff --git a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml index 3b8a2000..b4a2d1fc 100644 --- a/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml +++ b/src/SOL002/VNFPerformanceManagementNotification/VNFPerformanceManagementNotification.yaml @@ -37,7 +37,7 @@ paths: e.g. during subscription. See clause 6.4.9.3.2. responses: "204": - $ref: '#/components/responses/VNFPMNotification.Get' + $ref: '#/components/responses/VNFPMNotification.Get.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -63,7 +63,7 @@ paths: $ref: '#/components/requestBodies/PerformanceInformationAvailableNotification' responses: "204": - $ref: '#/components/responses/VNFPMNotification.Post' + $ref: '#/components/responses/VNFPMNotification.Post.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -89,7 +89,7 @@ paths: e.g. during subscription. See clause 6.4.9.3.2. responses: "204": - $ref: '#/components/responses/VNFPMNotification.Get' + $ref: '#/components/responses/VNFPMNotification.Get.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -115,7 +115,7 @@ paths: $ref: '#/components/requestBodies/ThresholdCrossedNotification' responses: "204": - $ref: '#/components/responses/VNFPMNotification.Post' + $ref: '#/components/responses/VNFPMNotification.Post.204' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -152,9 +152,9 @@ components: required: true responses: - VNFPMNotification.Get: + VNFPMNotification.Get.204: description: | - 201 NO CONTENT + 204 NO CONTENT Shall be returned to indicate the notification endpoint has been tested successfully. The response body shall be empty. headers: @@ -175,7 +175,7 @@ components: type: string content: {} - VNFPMNotification.Post: + VNFPMNotification.Post.204: description: | 204 NO CONTENT Shall be returned when the notification has been delivered successfully. The response body shall be empty. -- GitLab From ee03dbc60b890d0ffca54c53229cc65628062dc0 Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Mon, 19 Jul 2021 17:28:03 +0200 Subject: [PATCH 57/66] Bug fixed in SOL002 --- .../VNFLifecycleCoordination.yaml | 49 ++++++++++++++++++- .../SOL002VNFLifecycleManagement_def.yaml | 24 ++++----- .../VNFLifecycleManagementNotification.yaml | 2 +- src/components/SOL002SOL003_params.yaml | 2 +- ...OL002SOL003VNFLifecycleManagement_def.yaml | 4 +- src/definitions/SOL002SOL003_def.yaml | 4 +- 6 files changed, 66 insertions(+), 19 deletions(-) diff --git a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml index 483a3016..7c554a2e 100644 --- a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml +++ b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml @@ -60,6 +60,8 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 + "409": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "422": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 "429": @@ -81,7 +83,9 @@ paths: The GET method reads a coordination result. See clause 10.4.3.3.2. responses: "200": - $ref: '#/components/responses/IndividualLcmCoord.Get.200' + $ref: '#/components/responses/LcmCoord.Get.200' + "202": + $ref: '#/components/responses/LcmCoord.Get.202' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -268,7 +272,7 @@ components: format: url content: {} - IndividualLcmCoord.Get.200: + LcmCoord.Get.200: description: | 200 OK Shall be returned when the coordination is finished and the coordination result has been read successfully. @@ -299,6 +303,47 @@ components: schema: $ref: ./definitions/SOL002VNFLifecycleCoordination_def.yaml#/definitions/LcmCoord + LcmCoord.Get.202: + description: | + 202 ACCEPTED + Shall be returned when the management operation with which coordination is requested is still ongoing or + in the process of being cancelled, i.e. no coordination result is available yet. + The response shall be empty. + headers: + Version: + description: | + The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + Used in redirection, or when a new resource has been created. This header field shall be present if the + response status code is 201 or 3xx. In the present document this header field is also used if the response + status code is 202 and a new resource was created. + style: simple + explode: false + schema: + type: string + format: url + content: {} + CoordinationCancel.Post.202: description: | 202 ACCEPTED diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 5d130425..010a5597 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -1503,8 +1503,8 @@ definitions: description: > Input parameters of the LCM operation. This attribute shall be formatted according to the request data type of the related LCM - operation. The following mapping between operationType and the - data type of this attribute shall apply: + operation. In addition, the provisions in clause 5.7 shall apply. + The following mapping between operationType and the data type of this attribute shall apply: * INSTANTIATE: InstantiateVnfRequest * SCALE: ScaleVnfRequest * SCALE_TO_LEVEL: ScaleVnfToLevelRequest @@ -1635,7 +1635,7 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" endTime: description: > - The end time when the VNFM has received the confirmation thatof the coordination action + The end time when the VNFM has received the confirmation that the coordination action has finished or has been cancelled, or the time when a coordination action has timed out. Shall be present for a coordination action that has finished or timed out (see note 4) and shall be absent if the coordination is ongoing. @@ -1800,32 +1800,34 @@ definitions: vnfInstanceName: description: > If present, this attribute signals modifications of the - "vnfInstanceName" attribute in "VnfInstance". + "vnfInstanceName" attribute in "VnfInstance" as defined in clause 5.5.2.12.. type: string vnfInstanceDescription: description: > If present, this attribute signals modifications of the - "vnfInstanceDescription" attribute in "VnfInstance". + "vnfInstanceDescription" attribute in "VnfInstance", as defined in clause 5.5.2.12.. type: string vnfConfigurableProperties: description: > If present, this attribute signals modifications of the - "vnfConfigurableProperties" attribute in "VnfInstance". + "vnfConfigurableProperties" attribute in "VnfInstance" as defined in clause 5.5.2.12. + In addition, the provisions in clause 5.7 shall apply.. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" metadata: description: > If present, this attribute signals modifications of the "metadata" - attribute in "VnfInstance". + attribute in "VnfInstance" , as defined in clause 5.5.2.12.. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" extensions: description: > If present, this attribute signals modifications of the "extensions" - attribute in "VnfInstance". + attribute in "VnfInstance", as defined in clause 5.5.2.12. + In addition, the provisions in clause 5.7 shall apply.. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vnfdId: description: > If present, this attribute signals modifications of the "vnfdId" - attribute in "VnfInstance". + attribute in "VnfInstance", as defined in clause 5.5.2.12.. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfProvider: description: > @@ -1840,7 +1842,7 @@ definitions: vnfSoftwareVersion: description: > If present, this attribute signals modifications of the - "vnfSoftwareVersion" attribute in "VnfInstance". + "vnfSoftwareVersion" attribute in "VnfInstance". See note. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Version" vnfdVersion: description: > @@ -1852,7 +1854,7 @@ definitions: If present, this attribute signals modifications of certain entries in the "vnfcInfo" attribute array in the "instantiatedVnfInfo" attribute of "VnfInstance", as defined - in clause 5.5.2.12 + in clause 5.5.2.12. type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcInfoModifications" \ No newline at end of file diff --git a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index d343e08a..dfc2f2e4 100644 --- a/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL002/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -16,7 +16,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 002 V3.5.1 diff --git a/src/components/SOL002SOL003_params.yaml b/src/components/SOL002SOL003_params.yaml index 6870d98c..a277a550 100644 --- a/src/components/SOL002SOL003_params.yaml +++ b/src/components/SOL002SOL003_params.yaml @@ -97,7 +97,7 @@ components: - error - resourceChanges - changedInfo - - changedExtConnectivity. + - changedExtConnectivity - lcmCoordinations - modificationsTriggeredByVnfPkgChange - warnings diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index b4a1e577..1b9508d2 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -665,7 +665,7 @@ definitions: NOTE 1: The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" are mutually exclusive. Exactly one shall be present. NOTE 2: An external CP instance is not associated to a link port in the cases indicated for the - “extLinkPorts” attribute in clause 4.4.1.11. + “extLinkPorts” attribute in clause 5.5.3.2. type: object required: - id @@ -1064,7 +1064,7 @@ definitions: VipCpInfo: description: > - This type provides information related to virtual IP (VIP) CP. It shall comply with the provisions defined in table 5.5.3.22-1. + This type provides information related to virtual IP (VIP) CP. It shall comply with the provisions defined in table 5.5.3.28-1. NOTE: It is possible that there is no associated VnfcCp because the VIP CP is available but not associated yet. type: object diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index eec13361..ede25da9 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -372,12 +372,12 @@ definitions: $ref: "#/definitions/Identifier" createExtLinkPort: - description: Indicates to the VNFM the need to create a dedicated link port for the external CP. + description: > + Indicates to the VNFM the need to create a dedicated link port for the external CP. If set to True, the VNFM shall create a link port. If set to False, the VNFM shall not create a link port. This attribute is only applicable for external CP instances without a floating IP address that expose a VIP CP instance for which a dedicated IP address is allocated. It shall be present in that case and shall be absent otherwise. - type: boolean cpProtocolData: -- GitLab From 8dbd8c900415f4f3c29862f45e95f43fe22c755c Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Tue, 20 Jul 2021 14:03:57 +0200 Subject: [PATCH 58/66] added error codes --- .../VNFLifecycleCoordination.yaml | 129 +++++++++++++++++- 1 file changed, 123 insertions(+), 6 deletions(-) diff --git a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml index 7c554a2e..8e159076 100644 --- a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml +++ b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml @@ -48,28 +48,28 @@ paths: $ref: '#/components/responses/Coordination.Post.201' "202": $ref: '#/components/responses/Coordination_async.Post.202' + "403": + $ref: '#/components/responses/Coordination.Post.403' + "409": + $ref: '#/components/responses/Coordination.Post.409' + "503": + $ref: '#/components/responses/Coordination.Post.503' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 - "403": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 "404": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 "405": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "422": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 "429": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 "500": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 - "503": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 "504": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 @@ -272,6 +272,123 @@ components: format: url content: {} + Coordination.Post.403: + description: > + 403 FORBIDDEN + + Shall be returned upon the following error: The starting of the coordination operation has been + rejected. + No "individual coordination action" resource shall be created. + A ProblemDetails structure shall be included in the response to provide more details about the rejection + in the "details" attribute. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + Coordination.Post.409: + description: > + 409 CONFLICT + + Shall be returned upon the following error: The operation cannot be executed currently, due to a + conflict with the state of the "Coordinations" resource. + Typically, this is due to the fact that no more coordination actions can be executed currently e.g. + because too many of them, or conflicting ones, are in progress. + The response body shall contain a ProblemDetails structure, in which the "detail" attribute should + convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + Coordination.Post.503: + description: > + 503 SERVICE UNAVAILABLE + + Shall be returned upon the following error: The API producer has chosen the synchronous mode and + cannot perform the requested coordination currently, but expects to be able to perform it sometime + in the future. + No "individual coordination action" resource shall be created. + A ProblemDetails structure shall be included in the response to provide more details about the + rejection in the "details" attribute. + The HTTP response shall include a "Retry-After" HTTP header that indicates the delay after + which it is suggested to repeat the coordination request with the same set of parameters. The VNFM + shall record the signalled delay value in the "delay" attribute of the applicable entry in the + "rejectedLcmCoordinations" array in the "VnfLcmOpOcc" structure. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + LcmCoord.Get.200: description: | 200 OK -- GitLab From b1c5eccc7428f90e01e78a182e493eeedd146567 Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Tue, 20 Jul 2021 14:30:39 +0200 Subject: [PATCH 59/66] added missing error code --- .../VNFLifecycleCoordination.yaml | 41 ++++++++++++++++++- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml index 8e159076..171032a8 100644 --- a/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml +++ b/src/SOL002/VNFLifecycleCoordination/VNFLifecycleCoordination.yaml @@ -123,6 +123,8 @@ paths: responses: "202": $ref: '#/components/responses/CoordinationCancel.Post.202' + "409": + $ref: '#/components/responses/CoordinationCancel.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -135,8 +137,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -500,3 +500,40 @@ components: type: string format: url content: {} + + CoordinationCancel.Post.409: + description: > + 409 CONFLICT + + Shall be returned upon the following error: The operation cannot be executed currently, due to a + conflict with the state of the "Individual coordination action" resource. + Typically, this is due to the fact that the coordination action has finished processing. + The response body shall contain a ProblemDetails structure, in which the "detail" attribute + shall convey more information about the error. + headers: + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + WWW-Authenticate: + description: > + Challenge if the corresponding HTTP request has not provided + authorization, or error details if the corresponding HTTP + request has provided an invalid authorization token. + schema: + type: string + maximum: 1 + minimum: 0 + Version: + description: > + Version of the API used in the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" -- GitLab From 44336082363f4be33022bace6962d33521f6b517 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 21 Jul 2021 11:53:57 +0200 Subject: [PATCH 60/66] updated response descriptions --- .../VNFFaultManagement.yaml | 53 +- .../VNFLifecycleManagement.yaml | 1303 +++++++++++++---- .../VNFLifecycleOperationGranting.yaml | 94 +- .../VNFPackageManagement.yaml | 469 +++++- .../VNFSnapshotPackageManagement.yaml | 86 +- 5 files changed, 1632 insertions(+), 373 deletions(-) diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index 85806ec2..d15aa290 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -129,14 +129,7 @@ paths: 406: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 409: - # description: | - # 409 CONFLICT - # - # Shall be returned upon the following error: The operation cannot be executed currently, - # due to a conflict with the state of the "Individual alarm" resource. - # Typically, this is due to the fact that the alarm is already in the state that is - # requested to be set (such as trying to acknowledge an already-acknowledged alarm). - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 + $ref: '#/components/responses/IndividualAlarm.Patch.409' 412: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/412 422: @@ -449,7 +442,49 @@ components: application/json: schema: $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications" - + + IndividualAlarm.Patch.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the "Individual alarm" + resource. + Typically, this is due to the fact that the alarm is + already in the state that is requested to be set (such + as trying to acknowledge an already-acknowledged + alarm). + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + Subscriptions.Get.200: description: | 200 OK diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 17c9ef32..2e4315cc 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -167,13 +167,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the "Individual VNF instance" resource. - #Typically, this is due to the fact that another LCM operation is ongoing. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/IndividualVnfInstance.Patch.409' 412: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412" 500: @@ -201,13 +195,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the resource. - #Typically, this is due to the fact that the "Individual VNF instance" resource is in INSTANTIATED state. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/IndividualVnfInstance.Delete.409' 412: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412" 500: @@ -248,15 +236,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the resource. - #Typically, this is due to the fact that the "Individual VNF instance" resource is in INSTANTIATED state, - #or that a required child attribute of the "extensions" attribute has not been set. - #Those attributes are marked as "required" in the VNFD. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/InstantiateVnfInstance.Post.409' 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" 500: @@ -309,16 +289,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the resource. - #Typically, this is due to the fact that the "Individual VNF instance" resource is in - #NOT_INSTANTIATED state, or that another lifecycle management operation is ongoing, or that - #a required child attribute of the "extensions" attribute has not been set. - #Those attributes are marked as "required" in the VNFD. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/ScaleVnfInstance.Post.409' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -369,16 +340,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the resource. - #Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, - #that another lifecycle management operation is ongoing, or that a required child attribute of - #the "extensions" attribute has not been set. - #Those attributes are marked as "required" in the VNFD. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/ScaleToLevelVnfInstance.Post.409' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -428,16 +390,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the resource. - #Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, - #that another lifecycle management operation is ongoing, or that a required child attribute of - #the "extensions" attribute has not been set. - #Those attributes are marked as "required" in the VNFD. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/ChangeFlavourVnfInstance.Post.409' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -478,16 +431,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the resource. - #Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, - #that another lifecycle management operation is ongoing, or that a required child attribute of - #the "extensions" attribute has not been set. - #Those attributes are marked as "required" in the VNFD. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/TerminateVnfInstance.Post.409' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -537,16 +481,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the resource. - #Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, - #that another lifecycle management operation is ongoing, or that a required child attribute of - #the "extensions" attribute has not been set. - #Those attributes are marked as "required" in the VNFD. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/HealVnfInstance.Post.409' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -596,16 +531,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the resource. - #Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED state, - #that another lifecycle management operation is ongoing, or that a required child attribute of - #the "extensions" attribute has not been set. - #Those attributes are marked as "required" in the VNFD. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/OperateVnfInstance.Post.409' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -645,15 +571,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the resource. - #Typically, this is due to the fact that another lifecycle management operation is ongoing, - #or that a required child attribute of the "extensions" attribute has not been set. - #Those attributes are marked as "required" in the VNFD. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/ChangeExtConnVnfInstance.Post.409' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -693,15 +611,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the resource. - #Typically, this is due to the fact that another lifecycle management operation is ongoing, - #or that a required child attribute of the "extensions" attribute has not been set. - #Those attributes are marked as "required" in the VNFD. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/ChangeVnfpkgVnfInstance.Post.409' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -829,14 +739,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the VNF LCM operation occurrence. - #Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state, - #or another error handling action is starting, such as rollback or fail. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/RetryVnfLcmOpOcc.Post.409' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -885,14 +788,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the VNF LCM operation occurrence. - #Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state, - #or another error handling action is starting, such as rollback or fail. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/RollbackVnfLcmOpOcc.Post.409' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -941,14 +837,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, due to a conflict - #with the state of the VNF LCM operation occurrence. - #Typically, this is due to the fact that the VNF LCM operation occurrence is not in FAILED_TEMP state, - #or another error handling action is starting, such as retry or rollback. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/FailVnfLcmOpOcc.Post.409' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -987,14 +876,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the VNF LCM operation occurrence. - #Typically, this is due to the fact that the operation occurrence is not in STARTING, - #PROCESSING or ROLLING_BACK state. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/CancelVnfLcmOpOcc.Post.409' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -1185,16 +1067,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the resource. - #Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED - #state, or that another lifecycle management operation is ongoing. - #The response body shall contain a ProblemDetails structure, in which the "detail" attribute - #shall convey more information about the error. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/CreateVnfSnapshotTask.Post.409' 422: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" 500: @@ -1248,16 +1121,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the resource. - #Typically, this is due to the fact that the VNF instance resource is in NOT_INSTANTIATED - #state, or that another lifecycle management operation is ongoing. - #The response body shall contain a ProblemDetails structure, in which the "detail" attribute - #shall convey more information about the error. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/RevertToVnfSnapshotTask.Post.409' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -1294,8 +1158,6 @@ paths: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" - 409: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -1404,7 +1266,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/IndividualVnfSnapshot.Patch.409' 412: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412" 416: @@ -1437,16 +1299,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - #description: | - #409 CONFLICT - - #Shall be returned upon the following error: The operation cannot be executed currently, - #due to a conflict with the state of the resource. - #Typically, this is due to the fact that the VNF snapshot is in use by some operation such - #as reverting a VNF instance to a VNF snapshot or creating a VNF snapshot package. - #The response body shall contain a ProblemDetails structure, in which the "detail" attribute - #shall convey more information about the error. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/IndividualVnfSnapshot.Delete.409' 412: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412" 500: @@ -1488,9 +1341,9 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/IndividualVnfSnapshotState.Get.409' 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" + $ref: '#/components/responses/IndividualVnfSnapshotState.Get.416' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -1876,13 +1729,19 @@ components: schema: $ref: "./definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" - IndividualVnfInstance.Delete.204: + IndividualVnfInstance.Patch.409: description: | - 204 NO CONTENT + 409 CONFLICT - Shall be returned when the "Individual VNF instance" resource and the associated - VNF identifier were deleted successfully. - The response body shall be empty. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the "Individual VNF + instance" resource. + Typically, this is due to the fact that another LCM + operation is ongoing. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should + convey more information about the error headers: WWW-Authenticate: description: | @@ -1898,25 +1757,26 @@ components: explode: false schema: type: string - - InstantiateVnfInstance.Post.202: - description: | - 202 ACCEPTED - - Shall be returned when the request has been accepted for processing - The response body shall be empty. - The HTTP response shall include a "Location" HTTP header that - contains the URI of the newly-created "Individual VNF LCM operation - occurrence" resource corresponding to the operation. - headers: - Location: + Content-Type: description: | - The resource URI of the created subscription resource. + The MIME type of the body of the response. Reference: IETF RFC 7231 style: simple explode: false schema: type: string - format: url + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + IndividualVnfInstance.Delete.204: + description: | + 204 NO CONTENT + + Shall be returned when the "Individual VNF instance" resource and the associated + VNF identifier were deleted successfully. + The response body shall be empty. + headers: WWW-Authenticate: description: | Challenge if the corresponding HTTP request has not provided authorization, or error details if the @@ -1932,24 +1792,19 @@ components: schema: type: string - ScaleVnfInstance.Post.202: + IndividualVnfInstance.Delete.409: description: | - 202 ACCEPTED + 409 CONFLICT - Shall be returned when the request has been accepted for processing. - The response body shall be empty. - The HTTP response shall include a "Location" HTTP header that - contains the URI of the newly-created "VNF LCM operation - occurrence" resource corresponding to the operation. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the "Individual + VNF instance" resource is in INSTANTIATED state. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. headers: - Location: - description: | - The resource URI of the created subscription resource. - style: simple - explode: false - schema: - type: string - format: url WWW-Authenticate: description: | Challenge if the corresponding HTTP request has not provided authorization, or error details if the @@ -1964,15 +1819,26 @@ components: explode: false schema: type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - ScaleToLevelVnfInstance.Post.202: + InstantiateVnfInstance.Post.202: description: | 202 ACCEPTED - Shall be returned when the request has been accepted for processing. + Shall be returned when the request has been accepted for processing The response body shall be empty. The HTTP response shall include a "Location" HTTP header that - contains the URI of the newly-created "VNF LCM operation + contains the URI of the newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. headers: Location: @@ -1998,24 +1864,21 @@ components: schema: type: string - ChangeFlavourVnfInstance.Post.202: + InstantiateVnfInstance.Post.409: description: | - 202 ACCEPTED + 409 CONFLICT - Shall be returned when the request has been accepted for processing. - The response body shall be empty. - The HTTP response shall include a "Location" HTTP header that - contains the URI of the newly-created "VNF LCM operation - occurrence" resource corresponding to the operation. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the "Individual + VNF instance" resource is in INSTANTIATED state, + or that a required (see note) child attribute of the + "extensions" attribute has not been set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. headers: - Location: - description: | - The resource URI of the created subscription resource. - style: simple - explode: false - schema: - type: string - format: url WWW-Authenticate: description: | Challenge if the corresponding HTTP request has not provided authorization, or error details if the @@ -2030,8 +1893,19 @@ components: explode: false schema: type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - TerminateVnfInstance.Post.202: + ScaleVnfInstance.Post.202: description: | 202 ACCEPTED @@ -2064,24 +1938,22 @@ components: schema: type: string - HealVnfInstance.Post.202: + ScaleVnfInstance.Post.409: description: | - 202 ACCEPTED + 409 CONFLICT - Shall be returned when the request has been accepted for processing. - The response body shall be empty. - The HTTP response shall include a "Location" HTTP header that - contains the URI of the newly-created "VNF LCM operation - occurrence" resource corresponding to the operation. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the "Individual + VNF instance" resource is in NOT_INSTANTIATED + state, that another lifecycle management operation is + ongoing, or that a required (see note) child attribute + of the "extensions" attribute has not been set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. headers: - Location: - description: | - The resource URI of the created subscription resource. - style: simple - explode: false - schema: - type: string - format: url WWW-Authenticate: description: | Challenge if the corresponding HTTP request has not provided authorization, or error details if the @@ -2096,8 +1968,19 @@ components: explode: false schema: type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - OperateVnfInstance.Post.202: + ScaleToLevelVnfInstance.Post.202: description: | 202 ACCEPTED @@ -2130,24 +2013,22 @@ components: schema: type: string - ChangeExtConnVnfInstance.Post.202: + ScaleToLevelVnfInstance.Post.409: description: | - 202 ACCEPTED + 409 CONFLICT - Shall be returned when the request has been accepted for processing. - The response body shall be empty. - The HTTP response shall include a "Location" HTTP header that - contains the URI of the newly-created "VNF LCM operation - occurrence" resource corresponding to the operation. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the VNF + instance resource is in NOT_INSTANTIATED state, + that another lifecycle management operation is + ongoing, or that a required (see note) child attribute + of the "extensions" attribute has not been set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. headers: - Location: - description: | - The resource URI of the created subscription resource. - style: simple - explode: false - schema: - type: string - format: url WWW-Authenticate: description: | Challenge if the corresponding HTTP request has not provided authorization, or error details if the @@ -2162,15 +2043,27 @@ components: explode: false schema: type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - ChangeVnfpkgVnfInstance.Post.202: + ChangeFlavourVnfInstance.Post.202: description: | 202 ACCEPTED Shall be returned when the request has been accepted for processing. The response body shall be empty. - The HTTP response shall include a "Location" HTTP header that contains the URI of - the newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. headers: Location: description: | @@ -2195,21 +2088,22 @@ components: schema: type: string - VnfLcmOpOccs.Get.200: + ChangeFlavourVnfInstance.Post.409: description: | - 200 OK + 409 CONFLICT - Shall be returned when status information for zero or more VNF lifecycle management - operation occurrences has been queried successfully. - The response body shall contain in an array the status information about zero or more - VNF lifecycle operation occurrences, as defined in clause 5.5.2.13. - If the "filter" URI parameter or one of the "all_fields", "fields" (if supported), - "exclude_fields" (if supported) or "exclude_default" URI parameters was supplied in the request, - the data in the response body shall have been transformed according to the rules specified - in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. - If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 - for this resource, inclusion of the Link HTTP header in this response shall follow the provisions - in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the "Individual + VNF instance" resource is in NOT_INSTANTIATED + state, that another lifecycle management operation + is ongoing, or that a required (see note) child + attribute of the "extensions" attribute has not been + set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error headers: WWW-Authenticate: description: | @@ -2232,25 +2126,59 @@ components: explode: false schema: type: string - Link: + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + TerminateVnfInstance.Post.202: + description: | + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: description: | - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + The resource URI of the created subscription resource. style: simple explode: false schema: type: string - content: - application/json: + format: url + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false schema: - $ref: "./definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string - IndividualVnfLcmOpOcc.Get.200: + TerminateVnfInstance.Post.409: description: | - 200 OK + 409 CONFLICT - Shall be returned when information about a VNF LCM operation occurrence washas been read successfully. - The response body shall contain status information about a VNF lifecycle management operation occurrence - (see clause 5.5.2.13). + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the "Individual + VNF instance" resource is in NOT_INSTANTIATED + state, that another lifecycle management operation is + ongoing, or that a required (see note) child attribute + of the "extensions" attribute has not been set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. headers: WWW-Authenticate: description: | @@ -2276,15 +2204,26 @@ components: content: application/json: schema: - $ref: "./definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - RollbackVnfLcmOpOcc.Post.202: + HealVnfInstance.Post.202: description: | 202 ACCEPTED Shall be returned when the request has been accepted for processing. - The response shall have an empty payload body. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. headers: + Location: + description: | + The resource URI of the created subscription resource. + style: simple + explode: false + schema: + type: string + format: url WWW-Authenticate: description: | Challenge if the corresponding HTTP request has not provided authorization, or error details if the @@ -2300,12 +2239,21 @@ components: schema: type: string - RetryVnfLcmOpOcc.Post.202: + HealVnfInstance.Post.409: description: | - 202 ACCEPTED + 409 CONFLICT - Shall be returned when the request has been accepted for processing. - The response shall have an empty payload body. + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the "Individual + VNF instance" resource is in NOT_INSTANTIATED + state, that another lifecycle management operation is + ongoing, or that a required (see note) child attribute + of the "extensions" attribute has not been set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. headers: WWW-Authenticate: description: | @@ -2321,13 +2269,462 @@ components: explode: false schema: type: string - - FailVnfLcmOpOcc.Post.200: - description: | - 200 OK - - Shall be returned when the state of the VNF lifecycle management operation occurrence - has been changed successfully. + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + OperateVnfInstance.Post.202: + description: | + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: | + The resource URI of the created subscription resource. + style: simple + explode: false + schema: + type: string + format: url + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + + OperateVnfInstance.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the VNF + instance resource is in NOT_INSTANTIATED + state, that another lifecycle management operation + is ongoing, or that a required (see note) child + attribute of the "extensions" attribute has not been + set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + ChangeExtConnVnfInstance.Post.202: + description: | + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that + contains the URI of the newly-created "VNF LCM operation + occurrence" resource corresponding to the operation. + headers: + Location: + description: | + The resource URI of the created subscription resource. + style: simple + explode: false + schema: + type: string + format: url + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + + ChangeExtConnVnfInstance.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: + The operation cannot be executed + currently, due to a conflict with the state of + the resource. + Typically, this is due to the fact that + another lifecycle management operation is + ongoing, or that a required (see note) child + attribute of the "extensions" attribute has + not been set. + The response body shall contain a + ProblemDetails structure, in which the + "detail" attribute shall convey more + information about the error + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + ChangeVnfpkgVnfInstance.Post.202: + description: | + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response body shall be empty. + The HTTP response shall include a "Location" HTTP header that contains the URI of + the newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + headers: + Location: + description: | + The resource URI of the created subscription resource. + style: simple + explode: false + schema: + type: string + format: url + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + + ChangeVnfpkgVnfInstance.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: + The operation cannot be executed + currently, due to a conflict with the state of + the resource. + Typically, this is due to the fact that + another lifecycle management operation is + ongoing. + The response body shall contain a + ProblemDetails structure, in which the + "detail" attribute shall convey more + information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + VnfLcmOpOccs.Get.200: + description: | + 200 OK + + Shall be returned when status information for zero or more VNF lifecycle management + operation occurrences has been queried successfully. + The response body shall contain in an array the status information about zero or more + VNF lifecycle operation occurrences, as defined in clause 5.5.2.13. + If the "filter" URI parameter or one of the "all_fields", "fields" (if supported), + "exclude_fields" (if supported) or "exclude_default" URI parameters was supplied in the request, + the data in the response body shall have been transformed according to the rules specified + in clauses 5.2.2 and 5.3.2 of ETSI GS NFV-SOL 013, respectively. + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "./definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + + IndividualVnfLcmOpOcc.Get.200: + description: | + 200 OK + + Shall be returned when information about a VNF LCM operation occurrence washas been read successfully. + The response body shall contain status information about a VNF lifecycle management operation occurrence + (see clause 5.5.2.13). + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "./definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + + RollbackVnfLcmOpOcc.Post.202: + description: | + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response shall have an empty payload body. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + + RollbackVnfLcmOpOcc.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the VNF LCM operation + occurrence. + Typically, this is due to the fact that the VNF LCM + operation occurrence is not in FAILED_TEMP state, or + another error handling action is starting, such as retry + or fail. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + RetryVnfLcmOpOcc.Post.202: + description: | + 202 ACCEPTED + + Shall be returned when the request has been accepted for processing. + The response shall have an empty payload body. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + + RetryVnfLcmOpOcc.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the VNF LCM operation + occurrence. + Typically, this is due to the fact that the VNF LCM + operation occurrence is not in FAILED_TEMP state, or + another error handling action is starting, such as + rollback or fail. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + FailVnfLcmOpOcc.Post.200: + description: | + 200 OK + + Shall be returned when the state of the VNF lifecycle management operation occurrence + has been changed successfully. The response bofyshall include a representation of the "Individual VNF lifecycle operation occurrence" resource. headers: @@ -2357,6 +2754,48 @@ components: schema: $ref: "./definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + FailVnfLcmOpOcc.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the VNF LCM operation + occurrence. + Typically, this is due to the fact that the VNF LCM + operation occurrence is not in FAILED_TEMP state, + or another error handling action is starting, such as + retry or rollback. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + CancelVnfLcmOpOcc.Post.202: description: | 202 ACCEPTED @@ -2379,6 +2818,47 @@ components: schema: type: string + CancelVnfLcmOpOcc.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the VNF LCM operation + occurrence. + Typically, this is due to the fact that the operation + occurrence is not in STARTING, PROCESSING or + ROLLING_BACK state. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + Subscriptions.Post.201: description: | 201 CREATED @@ -2557,6 +3037,47 @@ components: schema: type: string + CreateVnfSnapshotTask.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the VNF + instance resource is in NOT_INSTANTIATED state, + or that another lifecycle management operation is + ongoing. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + RevertToVnfSnapshotTask.Post.202: description: | 202 ACCEPTED @@ -2590,6 +3111,47 @@ components: schema: type: string + RevertToVnfSnapshotTask.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the VNF + instance resource is in NOT_INSTANTIATED state, + or that another lifecycle management operation is + ongoing. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + VnfSnapshots.Post.201: description: | 201 CREATED @@ -2749,6 +3311,50 @@ components: schema: $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotInfoModifications" + IndividualVnfSnapshot.Patch.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the "Individual VNF + snapshot" resource. + Typically, this is due to the fact another + modification is ongoing or that the "Individual VNF + snapshot" resource information is not empty due to + a previously successful modification or currently + being modified due to an underlying VNF snapshot + operation. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should + convey more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualVnfSnapshot.Delete.204: description: | 204 NO CONTENT @@ -2772,6 +3378,47 @@ components: schema: type: string + IndividualVnfSnapshot.Delete.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the VNF snapshot + is in use by some operation such as reverting a VNF + instance to a VNF snapshot or creating a VNF + snapshot package. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualVnfSnapshotState.Get.200: description: | 200 OK @@ -2849,3 +3496,75 @@ components: schema: type: string format: binary + + IndividualVnfSnapshotState.Get.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the VNF + snapshot creation process is not completed. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + IndividualVnfSnapshotState.Get.416: + description: | + 416 RANGE NOT SATISFIABLE + + Shall be returned upon the following error: The byte + range passed in the "Range" header did not match + any available byte range in the VNF state snapshot + file (e.g. "access after end of file"). + The response body may contain a ProblemDetails + structure + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string \ No newline at end of file diff --git a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml index 566ea46f..b8905f1a 100644 --- a/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml +++ b/src/SOL003/VNFLifecycleOperationGranting/VNFLifecycleOperationGranting.yaml @@ -57,11 +57,7 @@ paths: 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401" 403: - #description: | - # 403 FORBIDDEN - # - # Shall be returned upon the following error: The grant has been rejected. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" + $ref: '#/components/responses/Grants.Post.403' 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" 405: @@ -101,11 +97,7 @@ paths: 401: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/401" 403: - #description: | - # 403 FORBIDDEN - # - # Shall be returned upon the following error: The grant has been rejected. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" + $ref: '#/components/responses/IndividualGrant.Get.403' 404: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" 405: @@ -217,6 +209,50 @@ components: schema: type: string + Grants.Post.403: + description: | + 403 FORBIDDEN + + Shall be returned upon the following error: The grant + has been rejected. + A ProblemDetails structure shall be included in the + response to provide more details about the rejection + in the "details" attribute. + headers: + Location: + description: | + The resource URI of the created subscription resource. + style: simple + explode: false + schema: + type: string + format: url + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualGrant.Get.200: description: | 200 OK @@ -263,4 +299,40 @@ components: style: simple explode: false schema: - type: string \ No newline at end of file + type: string + + IndividualGrant.Get.403: + description: | + 403 FORBIDDEN + + Shall be returned upon the following error: The grant + has been rejected. + A ProblemDetails structure shall be included in the + response to provide more details about the rejection in + the "details" attribute. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" \ No newline at end of file diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 08f502f5..2ab637fe 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -176,14 +176,7 @@ paths: 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 409: - # description: | - # 409 CONFLICT - # - # Shall be returned upon the following error: The operation cannot - # be executed currently, due to a conflict with the state of the resource. - # Typically, this is due to the fact that "onboardingState" of the - # VNF package has a value different from "ONBOARDED". - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/VnfdInIndividualVnfPackage.Get.409' 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" 500: @@ -218,14 +211,7 @@ paths: 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 409: - # description: | - # 409 CONFLICT - # - # Shall be returned upon the following error: The operation cannot - # be executed currently, due to a conflict with the state of the resource. - # Typically, this is due to the fact that "onboardingState" of the - # VNF package has a value different from "ONBOARDED". - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/VnfdInIndividualOnboardedVnfPackage.Get.409' 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" 500: @@ -265,7 +251,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/ManifestInIndividualVnfPackage.Get.409' 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" 500: @@ -302,7 +288,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/ManifestInIndividualOnboardedVnfPackage.Get.409' 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" 500: @@ -345,14 +331,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - # description: | - # 409 CONFLICT - - # Shall be returned upon the following error: The operation cannot be executed currently, - # due to a conflict with the state of the resource. - # Typically, this is due to the fact that "onboardingState" of the VNF package has - # a value different from "ONBOARDED". - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/IndividualVnfPackageContent.Get.409' 416: # description: | # 416 RANGE NOT SATISFIABLE @@ -397,14 +376,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - # description: | - # 409 CONFLICT - - # Shall be returned upon the following error: The operation cannot be executed currently, - # due to a conflict with the state of the resource. - # Typically, this is due to the fact that "onboardingState" of the VNF package has - # a value different from "ONBOARDED". - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.409' 416: # description: | # 416 RANGE NOT SATISFIABLE @@ -453,7 +425,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.409' 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" 500: @@ -494,7 +466,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.409' 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" 500: @@ -538,17 +510,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - # description: | - # 409 CONFLICT - - # Shall be returned upon the following error: The operation cannot - # be executed currently, due to a conflict with the state of the resource. - # Typically, this is due to the fact that "onboardingState" of the - # VNF package has a value different from "ONBOARDED". - # The response body shall contain a ProblemDetails structure, - # in which the "detail" attribute shall convey more information - # about the error. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/IndividualVnfPackageArtifact.Get.409' 416: # description: | # 416 RANGE NOT SATISFIABLE @@ -596,17 +558,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 409: - # description: | - # 409 CONFLICT - - # Shall be returned upon the following error: The operation cannot - # be executed currently, due to a conflict with the state of the resource. - # Typically, this is due to the fact that "onboardingState" of the - # VNF package has a value different from "ONBOARDED". - # The response body shall contain a ProblemDetails structure, - # in which the "detail" attribute shall convey more information - # about the error. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409" + $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.409' 416: # description: | # 416 RANGE NOT SATISFIABLE @@ -1030,6 +982,46 @@ components: schema: type: string + VnfdInIndividualVnfPackage.Get.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a conflict + with the state of the resource. + Typically, this is due to the fact that "onboardingState" + of the VNF package has a value different from + "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + VnfdInIndividualOnboardedVnfPackage.Get.200: description: | 200 OK @@ -1067,6 +1059,46 @@ components: schema: type: string + VnfdInIndividualOnboardedVnfPackage.Get.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a conflict + with the state of the resource. + Typically, this is due to the fact that "onboardingState" + of the VNF package has a value different from + "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + ManifestInIndividualVnfPackage.Get.200: description: | 200 OK @@ -1111,6 +1143,46 @@ components: schema: type: string + ManifestInIndividualVnfPackage.Get.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that "onboardingState" + of the VNF package has a value different from + "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + ManifestInIndividualOnboardedVnfPackage.Get.200: description: | 200 OK @@ -1155,6 +1227,46 @@ components: schema: type: string + ManifestInIndividualOnboardedVnfPackage.Get.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that "onboardingState" + of the VNF package has a value different from + "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualVnfPackageContent.Get.200: description: | 200 OK @@ -1223,6 +1335,46 @@ components: schema: type: string + IndividualVnfPackageContent.Get.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that + "onboardingState" of the VNF package has a value + different from "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualOnboardedVnfPackageContent.Get.200: description: | 200 OK @@ -1253,6 +1405,46 @@ components: schema: type: string + IndividualOnboardedVnfPackageContent.Get.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that + "onboardingState" of the VNF package has a value + different from "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualVnfPackageArtifact.Get.200: description: | 200 OK @@ -1301,6 +1493,166 @@ components: schema: type: string + IndividualVnfPackageArtifact.Get.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that + "onboardingState" of the VNF package has a value + different from "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + IndividualOnboardedVnfPackageArtifact.Get.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that + "onboardingState" of the VNF package has a value + different from "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + IndividualVnfPackageArtifacts.Get.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that + "onboardingState" of the VNF package has a value + different from "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + IndividualOnboardedVnfPackageArtifacts.Get.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that + "onboardingState" of the VNF package has a value + different from "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualOnboardedVnfPackageContent.Get.206: description: | 206 PARTIAL CONTENT @@ -1340,6 +1692,7 @@ components: schema: type: string + IndividualVnfPackageArtifacts.Get.200: description: | 200 OK diff --git a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml index 4d7359f0..40142aa9 100644 --- a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml +++ b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml @@ -143,7 +143,7 @@ paths: 406: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 409: - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 + $ref: '#/components/responses/PackageContent.Get.409' 416: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 422: @@ -187,7 +187,7 @@ paths: 406: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 409: - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 + $ref: '#/components/responses/IndividualArtifact.Get.409' 416: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 422: @@ -410,6 +410,46 @@ components: type: string format: binary + PackageContent.Get.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact the "state" of the + VNF snapshot package has a value different from + "AVAILABLE". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualArtifact.Get.200: description: | 200 OK @@ -494,4 +534,44 @@ components: application/*: schema: type: string - format: binary \ No newline at end of file + format: binary + + IndividualArtifact.Get.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact the "state" of the + VNF snapshot package has a value different from + "AVAILABLE". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" \ No newline at end of file -- GitLab From 40302faf7c29e7af2b9b5ba04787dd3ca57edf07 Mon Sep 17 00:00:00 2001 From: zulfiqar Date: Fri, 23 Jul 2021 12:45:25 +0200 Subject: [PATCH 61/66] Updated error codes descriptions --- .../VNFFaultManagement.yaml | 46 +- .../VNFLifecycleManagement.yaml | 1108 ++++++++++++++--- 2 files changed, 974 insertions(+), 180 deletions(-) diff --git a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml index 7f5a8031..381d753b 100644 --- a/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL002/VNFFaultManagement/VNFFaultManagement.yaml @@ -120,6 +120,8 @@ paths: responses: "200": $ref: '#/components/responses/IndividualAlarm.Patch.200' + "409": + $ref: '#/components/responses/IndividualAlarm.Patch.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -132,8 +134,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "412": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/412 "416": @@ -496,6 +496,48 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/AlarmModifications + IndividualAlarm.Patch.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the "Individual alarm" + resource. + Typically, this is due to the fact that the alarm is + already in the state that is requested to be set (such + as trying to acknowledge an already-acknowledged + alarm). + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualAlarmEscalate.Post.204: description: | 204 No Content diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 80a4759d..a4bb1e96 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -152,6 +152,8 @@ paths: responses: "204": $ref: '#/components/responses/IndividualVnfInstance.Delete.204' + "409": + $ref: '#/components/responses/IndividualVnfInstance.Delete.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -164,8 +166,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -187,6 +187,8 @@ paths: responses: "202": $ref: '#/components/responses/IndividualVnfInstance.Patch.202' + "409": + $ref: '#/components/responses/IndividualVnfInstance.Patch.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -199,8 +201,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "412": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/412 "416": @@ -229,6 +229,8 @@ paths: responses: "202": $ref: '#/components/responses/InstantiateVnfInstance.Post.202' + "409": + $ref: '#/components/responses/InstantiateVnfInstance.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -241,8 +243,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -269,6 +269,8 @@ paths: responses: "202": $ref: '#/components/responses/ScaleVnfInstance.Post.202' + "409": + $ref: '#/components/responses/ScaleVnfInstance.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -281,8 +283,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -309,6 +309,8 @@ paths: responses: "202": $ref: '#/components/responses/ScaleVnfInstanceToLevel.Post.202' + "409": + $ref: '#/components/responses/ScaleVnfInstanceToLevel.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -321,8 +323,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -349,6 +349,8 @@ paths: responses: "202": $ref: '#/components/responses/VnfInstanceChangeFlavour.Post.202' + "409": + $ref: '#/components/responses/VnfInstanceChangeFlavour.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -361,8 +363,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -390,6 +390,8 @@ paths: responses: "202": $ref: '#/components/responses/TerminateVnfInstance.Post.202' + "409": + $ref: '#/components/responses/TerminateVnfInstance.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -402,8 +404,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -430,6 +430,8 @@ paths: responses: "202": $ref: '#/components/responses/HealVnfInstance.Post.202' + "409": + $ref: '#/components/responses/HealVnfInstance.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -442,8 +444,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -470,6 +470,8 @@ paths: responses: "202": $ref: '#/components/responses/OperateVnfInstance.Post.202' + "409": + $ref: '#/components/responses/OperateVnfInstance.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -482,8 +484,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -510,6 +510,8 @@ paths: responses: "202": $ref: '#/components/responses/VnfInstanceChangeExtConn.Post.202' + "409": + $ref: '#/components/responses/VnfInstanceChangeExtConn.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -522,8 +524,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -551,6 +551,8 @@ paths: responses: "202": $ref: '#/components/responses/VnfInstanceChangeVnfPkg.Post.202' + "409": + $ref: '#/components/responses/VnfInstanceChangeVnfPkg.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -563,8 +565,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -671,6 +671,8 @@ paths: responses: "202": $ref: '#/components/responses/VnfLcmOpOccRetry.Post.202' + "409": + $ref: '#/components/responses/VnfLcmOpOccRetry.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -683,8 +685,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -711,6 +711,8 @@ paths: responses: "202": $ref: '#/components/responses/VnfLcmOpOccRollback.Post.202' + "409": + $ref: '#/components/responses/VnfLcmOpOccRollback.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -723,8 +725,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -750,6 +750,8 @@ paths: responses: "200": $ref: '#/components/responses/VnfLcmOpOccFail.Post.200' + "409": + $ref: '#/components/responses/VnfLcmOpOccFail.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -762,8 +764,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -790,6 +790,8 @@ paths: responses: "202": $ref: '#/components/responses/VnfLcmOpOccCancel.Post.202' + "409": + $ref: '#/components/responses/VnfLcmOpOccCancel.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -802,8 +804,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -973,6 +973,8 @@ paths: responses: "202": $ref: '#/components/responses/VnfInstanceCreateSnapshot.Post.202' + "409": + $ref: '#/components/responses/VnfInstanceCreateSnapshot.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -985,8 +987,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -1013,6 +1013,8 @@ paths: responses: "202": $ref: '#/components/responses/VnfInstanceRevertToSnapshot.Post.202' + "409": + $ref: '#/components/responses/VnfInstanceRevertToSnapshot.Post.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -1025,8 +1027,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -1162,6 +1162,8 @@ paths: responses: "204": $ref: '#/components/responses/IndividualVnfSnapshot.Delete.204' + "409": + $ref: '#/components/responses/IndividualVnfSnapshot.Delete.409' "400": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 "401": @@ -1174,8 +1176,6 @@ paths: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 "406": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 - "409": - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 "416": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 "422": @@ -1504,19 +1504,19 @@ components: schema: $ref: ../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfIdentifierDeletionNotification - IndividualVnfInstance.Patch.202: + IndividualVnfInstance.Delete.409: description: | - 202 ACCEPTED - The request was accepted for processing, but the processing has not been completed. On success, the HTTP - response shall include a "Location" HTTP header that contains the URI of the newly-created an "Individual - VNF LCM operation occurrence" resource corresponding to the operation. The response body shall be empty. + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the "Individual + VNF instance" resource is in INSTANTIATED state. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. headers: - Version: - description: The used API version. - style: simple - explode: false - schema: - type: string WWW-Authenticate: description: | Challenge if the corresponding HTTP request has not provided authorization, or error details if the @@ -1525,30 +1525,30 @@ components: explode: false schema: type: string - Content-Type: - description: The MIME type of the body of the response. + Version: + description: The used API version. style: simple explode: false schema: type: string - Location: + Content-Type: description: | - Used in redirection, or when a new resource has been created. This header field shall be present if the - response status code is 201 or 3xx. In the present document this header field is also used if the response - status code is 202 and a new resource was created. + The MIME type of the body of the response. Reference: IETF RFC 7231 style: simple explode: false schema: type: string - format: url - content: {} + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - InstantiateVnfInstance.Post.202: + IndividualVnfInstance.Patch.202: description: | 202 ACCEPTED - The request has been accepted for processing, but the processing has not been completed. The response body - shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the - newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + The request was accepted for processing, but the processing has not been completed. On success, the HTTP + response shall include a "Location" HTTP header that contains the URI of the newly-created an "Individual + VNF LCM operation occurrence" resource corresponding to the operation. The response body shall be empty. headers: Version: description: The used API version. @@ -1582,19 +1582,20 @@ components: format: url content: {} - ScaleVnfInstance.Post.202: + IndividualVnfInstance.Patch.409: description: | - 202 ACCEPTED - The request has been accepted for processing, but the processing has not been completed. The response body - shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the - newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the "Individual VNF instance" + resource + Typically, this is due to the fact that another LCM + operation is ongoing. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error headers: - Version: - description: The used API version. - style: simple - explode: false - schema: - type: string WWW-Authenticate: description: | Challenge if the corresponding HTTP request has not provided authorization, or error details if the @@ -1603,30 +1604,30 @@ components: explode: false schema: type: string - Content-Type: - description: The MIME type of the body of the response. + Version: + description: The used API version. style: simple explode: false schema: type: string - Location: + Content-Type: description: | - Used in redirection, or when a new resource has been created. This header field shall be present if the - response status code is 201 or 3xx. In the present document this header field is also used if the response - status code is 202 and a new resource was created. + The MIME type of the body of the response. Reference: IETF RFC 7231 style: simple explode: false schema: type: string - format: url - content: {} + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - ScaleVnfInstanceToLevel.Post.202: + InstantiateVnfInstance.Post.202: description: | 202 ACCEPTED - The request has been accepted for processing, but the processing has not been completed. The response body shall - be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created - "VNF LCM operation occurrence" resource corresponding to the operation. + The request has been accepted for processing, but the processing has not been completed. The response body + shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the + newly-created "VNF LCM operation occurrence" resource corresponding to the operation. headers: Version: description: The used API version. @@ -1660,19 +1661,21 @@ components: format: url content: {} - VnfInstanceChangeFlavour.Post.202: + InstantiateVnfInstance.Post.409: description: | - 202 ACCEPTED - The request has been accepted for processing, but the processing has not been completed. The response body - shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the - newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the "Individual + VNF instance" resource is in INSTANTIATED state + or that a required (see note) child attribute of the + "extensions" attribute has not been set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. headers: - Version: - description: The used API version. - style: simple - explode: false - schema: - type: string WWW-Authenticate: description: | Challenge if the corresponding HTTP request has not provided authorization, or error details if the @@ -1681,30 +1684,30 @@ components: explode: false schema: type: string - Content-Type: - description: The MIME type of the body of the response. + Version: + description: The used API version. style: simple explode: false schema: type: string - Location: + Content-Type: description: | - Used in redirection, or when a new resource has been created. This header field shall be present if the - response status code is 201 or 3xx. In the present document this header field is also used if the response - status code is 202 and a new resource was created. + The MIME type of the body of the response. Reference: IETF RFC 7231 style: simple explode: false schema: type: string - format: url - content: {} + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - TerminateVnfInstance.Post.202: + ScaleVnfInstance.Post.202: description: | 202 ACCEPTED - The request has been accepted for processing. The response body shall be empty. The HTTP response shall include - a "Location" HTTP header that contains the URI of the newly-created "Individual VNF LCM operation occurrence" - resource corresponding to the operation. + The request has been accepted for processing, but the processing has not been completed. The response body + shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the + newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. headers: Version: description: The used API version. @@ -1738,19 +1741,22 @@ components: format: url content: {} - HealVnfInstance.Post.202: - description: | - 202 ACCEPTED - The request has been accepted for processing, but the processing has not been completed. The response body - shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the - newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. + ScaleVnfInstance.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the "Individual + VNF instance" resource is in NOT_INSTANTIATED + state, that another lifecycle management operation is + ongoing, or that a required (see note) child attribute + of the "extensions" attribute has not been set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. headers: - Version: - description: The used API version. - style: simple - explode: false - schema: - type: string WWW-Authenticate: description: | Challenge if the corresponding HTTP request has not provided authorization, or error details if the @@ -1759,30 +1765,30 @@ components: explode: false schema: type: string - Content-Type: - description: The MIME type of the body of the response. + Version: + description: The used API version. style: simple explode: false schema: type: string - Location: + Content-Type: description: | - Used in redirection, or when a new resource has been created. This header field shall be present if the - response status code is 201 or 3xx. In the present document this header field is also used if the response - status code is 202 and a new resource was created. + The MIME type of the body of the response. Reference: IETF RFC 7231 style: simple explode: false schema: type: string - format: url - content: {} + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - OperateVnfInstance.Post.202: + ScaleVnfInstanceToLevel.Post.202: description: | 202 ACCEPTED - The request has been accepted for processing, but the processing has not been completed. The response body - shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the - newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + The request has been accepted for processing, but the processing has not been completed. The response body shall + be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the newly-created + "VNF LCM operation occurrence" resource corresponding to the operation. headers: Version: description: The used API version. @@ -1816,19 +1822,23 @@ components: format: url content: {} - VnfInstanceChangeExtConn.Post.202: - description: | - 202 ACCEPTED - The request has been accepted for processing, but the processing has not been completed. The response body - shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the - newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + ScaleVnfInstanceToLevel.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the VNF instance + resource is in NOT_INSTANTIATED state, that + another lifecycle management operation is ongoing, + or that a required (see note) child attribute of the + "extensions" attribute has not been set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + Note: Required attributes are marked as "required" in the VNFD. headers: - Version: - description: The used API version. - style: simple - explode: false - schema: - type: string WWW-Authenticate: description: | Challenge if the corresponding HTTP request has not provided authorization, or error details if the @@ -1837,30 +1847,30 @@ components: explode: false schema: type: string - Content-Type: - description: The MIME type of the body of the response. + Version: + description: The used API version. style: simple explode: false schema: type: string - Location: + Content-Type: description: | - Used in redirection, or when a new resource has been created. This header field shall be present if the - response status code is 201 or 3xx. In the present document this header field is also used if the response - status code is 202 and a new resource was created. + The MIME type of the body of the response. Reference: IETF RFC 7231 style: simple explode: false schema: type: string - format: url - content: {} + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - VnfInstanceChangeVnfPkg.Post.202: + VnfInstanceChangeFlavour.Post.202: description: | 202 ACCEPTED - Shall be returned when the request has been accepted for processing. - The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI - of the newly-created "Individual VNF LCM operation occurrence" resource corresponding to the instantiation operation. + The request has been accepted for processing, but the processing has not been completed. The response body + shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the + newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. headers: Version: description: The used API version. @@ -1894,22 +1904,25 @@ components: format: url content: {} - VnfLcmOpOccs.Get.200: - description: | - 200 OK - Status information for zero or more VNF lifecycle management operation occurrences has been queried - successfully. The response body shall contain in an array the status information about zero or more VNF - lifecycle operation occurrences, as defined in clause 5.5.2.13. If the VNFM supports alternative 2 (paging) - according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in - this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + VnfInstanceChangeFlavour.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the + "Individual VNF instance" resource is in + NOT_INSTANTIATED state, that another + lifecycle management operation is ongoing, or + that a required (see note) child attribute of the + "extensions" attribute has not been set. + The response body shall contain a + ProblemDetails structure, in which the "detail" + attribute shall convey more information about the + error. + note: Required attributes are marked as "required" in the VNFD. headers: - Version: - description: | - The used API version. - style: simple - explode: false - schema: - type: string WWW-Authenticate: description: | Challenge if the corresponding HTTP request has not provided authorization, or error details if the @@ -1918,15 +1931,15 @@ components: explode: false schema: type: string - Link: - description: | - Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + Version: + description: The used API version. style: simple explode: false schema: type: string Content-Type: - description: The MIME type of the body of the response. + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 style: simple explode: false schema: @@ -1934,13 +1947,462 @@ components: content: application/json: schema: - $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" - IndividualVnfLcmOpOcc.Get.200: + TerminateVnfInstance.Post.202: description: | - 200 OK - Information about an individual VNF instance has been queried successfully. The response body shall contain - status information about a VNF lifecycle management operation occurrence. + 202 ACCEPTED + The request has been accepted for processing. The response body shall be empty. The HTTP response shall include + a "Location" HTTP header that contains the URI of the newly-created "Individual VNF LCM operation occurrence" + resource corresponding to the operation. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + Used in redirection, or when a new resource has been created. This header field shall be present if the + response status code is 201 or 3xx. In the present document this header field is also used if the response + status code is 202 and a new resource was created. + style: simple + explode: false + schema: + type: string + format: url + content: {} + + TerminateVnfInstance.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the "Individual VNF + instance" resource is in NOT_INSTANTIATED state, or + that another lifecycle management operation is + ongoing, or that a required (see note) child attribute of + the "extensions" attribute has not been set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + note: Required attributes are marked as "required" in the VNFD. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + HealVnfInstance.Post.202: + description: | + 202 ACCEPTED + The request has been accepted for processing, but the processing has not been completed. The response body + shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the + newly-created "Individual VNF LCM operation occurrence" resource corresponding to the operation. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + Used in redirection, or when a new resource has been created. This header field shall be present if the + response status code is 201 or 3xx. In the present document this header field is also used if the response + status code is 202 and a new resource was created. + style: simple + explode: false + schema: + type: string + format: url + content: {} + + HealVnfInstance.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the "Individual VNF + instance" resource is in NOT_INSTANTIATED state, + that another lifecycle management operation is + ongoing, or that a required (see note) child attribute of + the "extensions" attribute has not been set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + note: Required attributes are marked as "required" in the VNFD. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + OperateVnfInstance.Post.202: + description: | + 202 ACCEPTED + The request has been accepted for processing, but the processing has not been completed. The response body + shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the + newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + Used in redirection, or when a new resource has been created. This header field shall be present if the + response status code is 201 or 3xx. In the present document this header field is also used if the response + status code is 202 and a new resource was created. + style: simple + explode: false + schema: + type: string + format: url + content: {} + + OperateVnfInstance.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the "Individual VNF + instance" resource is in NOT_INSTANTIATED state, + that another lifecycle management operation is + ongoing, or that a required (see note) child attribute of + the "extensions" attribute has not been set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + note: Required attributes are marked as "required" in the VNFD. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + VnfInstanceChangeExtConn.Post.202: + description: | + 202 ACCEPTED + The request has been accepted for processing, but the processing has not been completed. The response body + shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI of the + newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + Used in redirection, or when a new resource has been created. This header field shall be present if the + response status code is 201 or 3xx. In the present document this header field is also used if the response + status code is 202 and a new resource was created. + style: simple + explode: false + schema: + type: string + format: url + content: {} + + VnfInstanceChangeExtConn.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that another + lifecycle management operation is ongoing, or that + a required (see note) child attribute of the + "extensions" attribute has not been set. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + note: Required attributes are marked as "required" in the VNFD. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + VnfInstanceChangeVnfPkg.Post.202: + description: | + 202 ACCEPTED + Shall be returned when the request has been accepted for processing. + The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI + of the newly-created "Individual VNF LCM operation occurrence" resource corresponding to the instantiation operation. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + Used in redirection, or when a new resource has been created. This header field shall be present if the + response status code is 201 or 3xx. In the present document this header field is also used if the response + status code is 202 and a new resource was created. + style: simple + explode: false + schema: + type: string + format: url + content: {} + + VnfInstanceChangeVnfPkg.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: + The operation cannot be executed + currently, due to a conflict with the state of + the resource. + Typically, this is due to the fact that another + lifecycle management operation is ongoing. + The response body shall contain a + ProblemDetails structure, in which the + "detail" attribute shall convey more + information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + VnfLcmOpOccs.Get.200: + description: | + 200 OK + Status information for zero or more VNF lifecycle management operation occurrences has been queried + successfully. The response body shall contain in an array the status information about zero or more VNF + lifecycle operation occurrences, as defined in clause 5.5.2.13. If the VNFM supports alternative 2 (paging) + according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 for this resource, inclusion of the Link HTTP header in + this response shall follow the provisions in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Version: + description: | + The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. Used for paging in the present document, see clause 4.7.2.1. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc + + IndividualVnfLcmOpOcc.Get.200: + description: | + 200 OK + Information about an individual VNF instance has been queried successfully. The response body shall contain + status information about a VNF lifecycle management operation occurrence. headers: Version: description: The used API version. @@ -1989,6 +2451,48 @@ components: type: string content: {} + VnfLcmOpOccRetry.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the VNF LCM operation + occurrence. + Typically, this is due to the fact that the VNF LCM + operation occurrence is not in FAILED_TEMP state + or another error handling action is starting such as + rollback or fail. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + VnfLcmOpOccRollback.Post.202: description: | 202 ACCEPTED @@ -2011,6 +2515,48 @@ components: type: string content: {} + VnfLcmOpOccRollback.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the VNF LCM operation + occurrence. + Typically, this is due to the fact that the VNF LCM + operation occurrence is not in FAILED_TEMP state + or another error handling action is starting such as + retry or fail. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + VnfLcmOpOccFail.Post.200: description: | 200 OK @@ -2042,6 +2588,48 @@ components: schema: $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc + VnfLcmOpOccFail.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the VNF LCM operation + occurrence. + Typically, this is due to the fact that the VNF LCM + operation occurrence is not in FAILED_TEMP state or + another error handling action is starting such as retry + or rollback. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + VnfLcmOpOccCancel.Post.202: description: | 202 ACCEPTED @@ -2064,6 +2652,47 @@ components: type: string content: {} + VnfLcmOpOccCancel.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the VNF LCM operation + occurrence. + Typically, this is due to the fact that the operation + occurrence is not in STARTING, PROCESSING or + ROLLING_BACK state. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + Subscriptions.Get.200: description: | 200 OK @@ -2226,6 +2855,47 @@ components: format: url content: {} + VnfInstanceCreateSnapshot.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the VNF + instance resource is in NOT_INSTANTIATED + state, or that another lifecycle management + operation is ongoing. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall + convey more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + VnfInstanceRevertToSnapshot.Post.202: description: | 202 ACCEPTED @@ -2265,6 +2935,47 @@ components: format: url content: {} + VnfInstanceRevertToSnapshot.Post.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the VNF + instance resource is in NOT_INSTANTIATED + state, or that another lifecycle management + operation is ongoing. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall + convey more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + VnfSnapshots.Post.201: description: | 201 CREATED @@ -2403,4 +3114,45 @@ components: explode: false schema: type: string - content: {} \ No newline at end of file + content: {} + + IndividualVnfSnapshot.Delete.409: + description: | + 409 CONFLICT + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that the VNF + instance resource is in NOT_INSTANTIATED + state, or that another lifecycle management + operation is ongoing. + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall + convey more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" \ No newline at end of file -- GitLab From 1c3e28ce6dcdc214d1c65bad1cb76ee295ee264f Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 28 Jul 2021 13:55:21 +0200 Subject: [PATCH 62/66] applied comments on SOL003 from SOL WG review --- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 2 +- .../definitions/SOL003VNFLifecycleManagement_def.yaml | 7 ++++--- .../VNFLifecycleManagementNotification.yaml | 2 +- .../VNFPackageManagementNotification.yaml | 2 +- .../SOL002SOL003VNFLifecycleManagement_def.yaml | 2 +- src/definitions/SOL002SOL003_def.yaml | 8 +++----- 6 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 2e4315cc..637df4dc 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -16,7 +16,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: description: ETSI GS NFV-SOL 003 V3.5.1 diff --git a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml index 85e61b14..a2dc06f9 100644 --- a/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml +++ b/src/SOL003/VNFLifecycleManagement/definitions/SOL003VNFLifecycleManagement_def.yaml @@ -1785,12 +1785,13 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/LcmCoordResultType" startTime: description: > - The time when the coordination action has been started. + The time when the VNFM has received the confirmation that the coordination action has been started. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" endTime: description: > - The end time of the coordination action. Shall be present for a coordination action that has finished or timed - out (see note 4) and shall be absent if the coordination is ongoing. + The time when the VNFM has received the confirmation that the coordination action has finished or has been + cancelled, or the time when a coordination action has timed out. Shall be present for a coordination + action that has finished or timed out (see note 4) and shall be absent if the coordination is ongoing. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" delay: description: > diff --git a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml index ad3e8ab0..e016bb91 100644 --- a/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml +++ b/src/SOL003/VNFLifecycleManagementNotification/VNFLifecycleManagementNotification.yaml @@ -16,7 +16,7 @@ info: license: name: "ETSI Forge copyright notice" url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: description: ETSI GS NFV-SOL 003 V3.5.1 diff --git a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index f6202663..a1a2548a 100644 --- a/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL003/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -16,7 +16,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.1.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 003 V3.5.1 diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 1b9508d2..9dd75f7b 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -665,7 +665,7 @@ definitions: NOTE 1: The attributes "associatedVnfcCpId", "associatedVipCpId" and "associatedVnfVirtualLinkId" are mutually exclusive. Exactly one shall be present. NOTE 2: An external CP instance is not associated to a link port in the cases indicated for the - “extLinkPorts” attribute in clause 5.5.3.2. + “extLinkPorts” attribute in clause 4.4.1.11. type: object required: - id diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index ede25da9..cecd0711 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -523,9 +523,7 @@ definitions: ExtVirtualLinkData: description: > This type represents an external VL. - * NOTE 1: The information about the VIM connection referenced by the VIM connection id is known to the VNFM. - Moreover, the identifier of the VIM connection provides scope to the resourceId. - * NOTE 2: A link port is not needed for an external CP instance that exposes a VIP CP in the following cases: + * NOTE: A link port is not needed for an external CP instance that exposes a VIP CP in the following cases: 1 For a VIP CP directly exposed as extCP: 1.1 No dedicated IP address is allocated as VIP address, as indicated in the VNFD. 1.2 A dedicated IP addresss is allocated as VIP address, but the NFVO indicates that no port @@ -548,7 +546,7 @@ definitions: description: > Identifier of the VIM connection to manage this resource. This attribute shall only be supported and present if VNF-related - resource management in direct mode is applicable. See note 1. + resource management in direct mode is applicable. $ref: "#/definitions/Identifier" resourceProviderId: description: > @@ -577,7 +575,7 @@ definitions: connection points to this external VL. If this attribute is not present, the VNFM shall create the link ports on the external VL unless the extCp exposes a VIP CP and a link port is not needed - for it based on the conditions defined below. See note 2. + for it based on the conditions defined below. See note. type: array items: $ref: "#/definitions/ExtLinkPortData" -- GitLab From aa120ef4209b3a174d674443cef357863d21882f Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Wed, 4 Aug 2021 08:45:47 +0200 Subject: [PATCH 63/66] reverted VNF Indicator API version to 1.3.0 --- src/SOL002/VNFIndicator/VNFIndicator.yaml | 2 +- .../VNFIndicatorNotification/VNFIndicatorNotification.yaml | 2 +- src/SOL003/VNFIndicator/VNFIndicator.yaml | 2 +- .../VNFIndicatorNotification/VNFIndicatorNotification.yaml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/SOL002/VNFIndicator/VNFIndicator.yaml b/src/SOL002/VNFIndicator/VNFIndicator.yaml index f1c9c9d8..0c2eee1d 100644 --- a/src/SOL002/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL002/VNFIndicator/VNFIndicator.yaml @@ -16,7 +16,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.3.1-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 002 V3.5.1 diff --git a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml index fce09f5f..753a99eb 100644 --- a/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL002/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -16,7 +16,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.3.1-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 002 V3.5.1 diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index 104732ae..a25ee403 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -16,7 +16,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "1.3.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: description: ETSI GS NFV-SOL 003 V3.5.1 diff --git a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml index 35e5d783..a6c018cf 100644 --- a/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml +++ b/src/SOL003/VNFIndicatorNotification/VNFIndicatorNotification.yaml @@ -16,7 +16,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: "1.3.1-impl:etsi.org:ETSI_NFV_OpenAPI:1" + version: "1.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1" externalDocs: description: ETSI GS NFV-SOL 003 V3.5.1 -- GitLab From efddef62cdefec82f8191cfd64189b5f3b1ac820 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Fri, 6 Aug 2021 16:34:09 +0200 Subject: [PATCH 64/66] addressed comments from SOL WG --- .../VNFFaultManagement.yaml | 140 ++- src/SOL003/VNFIndicator/VNFIndicator.yaml | 92 +- .../VNFLifecycleManagement.yaml | 942 +++++++++++++++--- .../VNFPackageManagement.yaml | 368 ++++++- .../VNFPerformanceManagement.yaml | 275 ++++- .../VNFSnapshotPackageManagement.yaml | 58 +- ...edResourcesQuotaAvailableNotification.yaml | 106 +- 7 files changed, 1763 insertions(+), 218 deletions(-) diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index d15aa290..9036fb64 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -131,7 +131,7 @@ paths: 409: $ref: '#/components/responses/IndividualAlarm.Patch.409' 412: - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/412 + $ref: '#/components/responses/IndividualAlarm.Patch.412' 422: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 500: @@ -160,18 +160,7 @@ paths: 201: $ref: '#/components/responses/Subscriptions.Post.200' 303: - # description: | - # 303 SEE OTHER - # - # Shall be returned when a subscription with the - # same callback URI and the same filter already exists - # and the policy of the VNFM is to not create - # redundant subscriptions. - # The HTTP response shall include a "Location" - # HTTP header that contains the resource URI of the - # existing "Individual subscription" resource. - # The response body shall be empty. - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/303 + $ref: '#/components/responses/Subscriptions.Post.303' 400: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 401: @@ -185,7 +174,7 @@ paths: 406: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 422: - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 + $ref: '#/components/responses/Subscriptions.Post.422' 500: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 503: @@ -485,6 +474,41 @@ components: schema: $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualAlarm.Patch.412: + description: | + 412 Precondition Failed + + Shall be returned upon the following error: A + precondition given in an HTTP request header is not + fulfilled. + Typically, this is due to an ETag mismatch, indicating + that the resource was modified by another entity. + The response body should contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + Subscriptions.Get.200: description: | 200 OK @@ -573,6 +597,94 @@ components: schema: $ref: "../../definitions/SOL002SOL003VNFFaultManagement_def.yaml#/definitions/FmSubscription" + Subscriptions.Post.303: + description: | + 303 See Other + + Shall be returned when a subscription with the + same callback URI and the same filter already + exists and the policy of the VNFM is to not create + redundant subscriptions. + The HTTP response shall include a "Location" + HTTP header that contains the resource URI of + the existing "Individual subscription" resource. + The response body shall be empty. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + The resource URI of the created subscription resource. + style: simple + explode: false + schema: + type: string + format: url + + Subscriptions.Post.422: + description: | + 422 Unprocessable Entity + + Shall be returned upon the following error: The + content type of the payload body is supported + and the payload body of a request contains + syntactically correct data but the data cannot be + processed. + The general cause for this error and its handling + is specified in clause 6.4 of ETSI + GS NFV-SOL 013 [8], including rules for the + presence of the response body. + Specifically in case of this resource, the response + code 422 shall also be returned if the VNFM has + tested the Notification endpoint as described in + clause 7.4.6.3.2 and the test has failed. + In this case, the "detail" attribute in the + "ProblemDetails" structure shall convey more + information about the error + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualSubscription.Get.200: description: | 200 OK diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index a25ee403..e6607628 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -171,18 +171,7 @@ paths: 201: $ref: '#/components/responses/Subscriptions.Post.201' 303: - # description: | - # 303 SEE OTHER - # - # Shall be returned when a subscription with the - # same callback URI and the same filter already - # exists and the policy of the VNFM is to not create - # redundant subscriptions. - # The HTTP response shall include a "Location" - # HTTP header that contains the resource URI of - # the existing "Individual subscription" resource. - # The response body shall be empty. - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/303 + $ref: '#/components/responses/Subscriptions.Post.303' 400: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 401: @@ -196,7 +185,7 @@ paths: 406: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 422: - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 + $ref: '#/components/responses/Subscriptions.Post.422' 500: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 503: @@ -501,7 +490,82 @@ components: type: array items: $ref: ../../definitions/SOL002SOL003VNFIndicator_def.yaml#/definitions/VnfIndicatorSubscription - + + Subscriptions.Post.303: + description: | + 303 See Other + + Shall be returned when a subscription with + the same callback URI and the same filter + already exists and the policy of the VNFM + is to not create redundant subscriptions. + The HTTP response shall include a + "Location" HTTP header that contains the + resource URI of the existing "Individual + subscription" resource. + The response body shall be empty + headers: + Location: + description: | + The resource URI of the created subscription resource. + style: simple + explode: false + schema: + type: string + format: url + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + + Subscriptions.Post.422: + description: | + 422 Unprocessable Entity + + Shall be returned when a subscription with + the same callback URI and the same filter + already exists and the policy of the VNFM + is to not create redundant subscriptions. + The HTTP response shall include a + "Location" HTTP header that contains the + resource URI of the existing "Individual + subscription" resource. + The response body shall be empty + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + schema: + type: string + maximum: 1 + minimum: 1 + content: + application/json: + schema: + $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" Subscriptions.Get.200: description: | 200 OK diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 637df4dc..8d5ae720 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -64,7 +64,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 422: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" + $ref: '#/components/responses/VNFInstances.Post.422' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -169,7 +169,7 @@ paths: 409: $ref: '#/components/responses/IndividualVnfInstance.Patch.409' 412: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412" + $ref: '#/components/responses/IndividualVnfInstance.Patch.412' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -273,17 +273,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" 404: - #description: | - #404 NOT FOUND - - #Shall be returned upon the following error: The API producer did not find a current representation - #for the target resource or is not willing to disclose that one exists. - #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, - #including rules for the presence of the response body. - #Specifically in case of this task resource, the response code 404 shall also returned if - #the task is not supported for the VNF instance represented by the parent resource, which means that the - #task resource consequently does not exist. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" + $ref: '#/components/responses/ScaleVnfInstance.Post.404' 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: @@ -324,17 +314,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" 404: - #description: | - #404 NOT FOUND - - #Shall be returned upon the following error: The API producer did not find a current representation - #for the target resource or is not willing to disclose that one exists. - #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, - #including rules for the presence of the response body. - #Specifically in case of this task resource, the response code 404 shall also returned if the task - #is not supported for the VNF instance represented by the parent resource, which means that the task resource - #consequently does not exist. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" + $ref: '#/components/responses/ScaleToLevelVnfInstance.Post.404' 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: @@ -374,17 +354,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" 404: - #description: | - #404 NOT FOUND - - #Shall be returned upon the following error: The API producer did not find a current representation - #for the target resource or is not willing to disclose that one exists. - #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, - #including rules for the presence of the response body. - #Specifically in case of this task resource, the response code 404 shall also returned if the task - #is not supported for the VNF instance represented by the parent resource, which means that the task resource - #consequently does not exist. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" + $ref: '#/components/responses/ChangeFlavourVnfInstance.Post.404' 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: @@ -465,17 +435,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" 404: - #description: | - #404 NOT FOUND - - #Shall be returned upon the following error: The API producer did not find a current representation - #for the target resource or is not willing to disclose that one exists. - #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, - #including rules for the presence of the response body. - #Specifically in case of this task resource, the response code 404 shall also returned if the task is - #not supported for the VNF instance represented by the parent resource, which means that the task resource - #consequently does not exist. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" + $ref: '#/components/responses/HealVnfInstance.Post.404' 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: @@ -515,17 +475,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" 404: - #description: | - #404 NOT FOUND - - #Shall be returned upon the following error: The API producer did not find a current representation - #for the target resource or is not willing to disclose that one exists. - #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, - #including rules for the presence of the response body. - #Specifically in case of this task resource, the response code 404 shall also returned if the task is - #not supported for the VNF instance represented by the parent resource, which means that the task resource - #consequently does not exist. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" + $ref: '#/components/responses/OperateVnfInstance.Post.404' 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: @@ -723,17 +673,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" 404: - #description: | - #404 NOT FOUND - - #Shall be returned upon the following error: The API producer did not find a current representation - #for the target resource or is not willing to disclose that one exists. - #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, - #including rules for the presence of the response body. - #Specifically in case of this task resource, the response code 404 shall also be returned if the task - #is not supported for the VNF LCM operation occurrence represented by the parent resource, - #which means that the task resource consequently does not exist. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" + $ref: '#/components/responses/RetryVnfLcmOpOcc.Post.404' 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: @@ -772,17 +712,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" 404: - #description: | - #404 NOT FOUND - - #Shall be returned upon the following error: The API producer did not find a current representation - #for the target resource or is not willing to disclose that one exists. - #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, - #including rules for the presence of the response body. - #Specifically in case of this task resource, the response code 404 shall also be returned if the task - #is not supported for the VNF LCM operation occurrence represented by the parent resource, - #which means that the task resource consequently does not exist. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" + $ref: '#/components/responses/RollbackVnfLcmOpOcc.Post.404' 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: @@ -821,17 +751,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" 404: - #description: | - #404 NOT FOUND - - #Shall be returned upon the following error: The API producer did not find a current representation - #for the target resource or is not willing to disclose that one exists. - #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, - #including rules for the presence of the response body. - #Specifically in case of this task resource, the response code 404 shall also returned if the task - #is not supported for the VNF LCM operation occurrence represented by the parent resource, which means - #that the task resource consequently does not exist. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" + $ref: '#/components/responses/FailVnfLcmOpOcc.Post.404' 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: @@ -870,7 +790,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" 404: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" + $ref: '#/components/responses/CancelVnfLcmOpOcc.Post.404' 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: @@ -902,15 +822,7 @@ paths: 201: $ref: '#/components/responses/Subscriptions.Post.201' 303: - #description: | - #303 SEE OTHER - - #Shall be returned if a subscription with the same callback URI and the same filter already exists - #and the policy of the VNFM is to not create redundant subscriptions. - #The HTTP response shall include a "Location" HTTP header that contains the resource URI of the existing - #"Individual subscription" resource. - #The response body shall be empty. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/303" + $ref: '#/components/responses/Subscriptions.Post.303' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" 401: @@ -924,7 +836,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 422: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" + $ref: '#/components/responses/Subscriptions.Post.422' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -1049,19 +961,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" 404: - #description: | - #404 NOT FOUND - - #Shall be returned upon the following error: The API producer did not find a current representation - #for the target resource or is not willing to disclose that one exists. - #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, - #including rules for the presence of the response body. - #Specifically in case of this task resource, the response code 404 shall also be returned if the task - #is not supported for the VNF instance represented by the parent resource, which means that the task - #resource consequently does not exist. - #In this case, the response body shall be present, and shall contain a ProblemDetails structure, in - #which the "detail" attribute shall convey more information about the error. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" + $ref: '#/components/responses/CreateVnfSnapshotTask.Post.404' 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: @@ -1069,7 +969,7 @@ paths: 409: $ref: '#/components/responses/CreateVnfSnapshotTask.Post.409' 422: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" + $ref: '#/components/responses/CreateVnfSnapshotTask.Post.422' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -1103,19 +1003,7 @@ paths: 403: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/403" 404: - #description: | - #404 NOT FOUND - - #Shall be returned upon the following error: The API producer did not find a current representation - #for the target resource or is not willing to disclose that one exists. - #The general cause for this error and its handling is specified in clause 6.4 of ETSI GS NFV-SOL 013, - #including rules for the presence of the response body. - #Specifically in case of this task resource, the response code 404 shall also be returned if the task - #is not supported for the VNF instance represented by the parent resource, which means that the task - #resource consequently does not exist. - #In this case, the response body shall be present, and shall contain a ProblemDetails structure, in - #which the "detail" attribute shall convey more information about the error. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/404" + $ref: '#/components/responses/RevertToVnfSnapshotTask.Post.404' 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: @@ -1268,7 +1156,7 @@ paths: 409: $ref: '#/components/responses/IndividualVnfSnapshot.Patch.409' 412: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412" + $ref: '#/components/responses/IndividualVnfSnapshot.Patch.412' 416: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" 500: @@ -1602,6 +1490,59 @@ components: schema: $ref: "./definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInstance" + VNFInstances.Post.422: + description: | + 422 Unprocessable Entity + + Shall be returned upon the following error: The content + type of the payload body is supported and the payload + body of a request contains syntactically correct data + but the data cannot be processed. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI GS NFV-SOL 013 [8], + including rules for the presence of the response body. + Specifically in case of this resource, the response + code 422 shall also be returned if the VNF package + referenced by the "vnfdId" attribute in the + "CreateVnfRequest" structure is not in the "ENABLED" + state or does not exist. In this case, the "detail" + attribute in the "ProblemDetails" structure shall convey + more information about the erro + headers: + Location: + description: | + The resource URI of the created subscription resource. + style: simple + explode: false + schema: + type: string + format: url + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + VNFInstances.Get.200: description: | 200 OK @@ -1769,6 +1710,43 @@ components: schema: $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualVnfInstance.Patch.412: + description: | + 412 Precondition Failed + + Shall be returned upon the following error: A + precondition given in an HTTP request header is + not fulfilled. + Typically, this is due to an ETag mismatch, + indicating that the resource was modified by + another entity. + The response body should contain a + ProblemDetails structure, in which the "detail" + attribute should convey more information about the + error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + IndividualVnfInstance.Delete.204: description: | 204 NO CONTENT @@ -1938,6 +1916,53 @@ components: schema: type: string + ScaleVnfInstance.Post.404: + description: | + 404 NOT FOUND + + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI GS NFV-SOL 013 [8], + including rules for the presence of the response body. + Specifically in case of this task resource, the + response code 404 shall also be returned if the task + is not supported for the VNF instance represented by + the parent resource, which means that the task + resource consequently does not exist. + In this case, the response body shall be present, and + shall contain a ProblemDetails structure, in which the + "detail" attribute shall convey more information about + the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + ScaleVnfInstance.Post.409: description: | 409 CONFLICT @@ -2013,6 +2038,53 @@ components: schema: type: string + ScaleToLevelVnfInstance.Post.404: + description: | + 404 NOT FOUND + + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI + GS NFV-SOL 013 [8], including rules for the + presence of the response body. + Specifically in case of this task resource, the + response code 404 shall also be returned if the task + is not supported for the VNF instance represented + by the parent resource, which means that the task + resource consequently does not exist. + In this case, the response body shall be present, + and shall contain a ProblemDetails structure, in + which the "detail" attribute shall convey more + information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + ScaleToLevelVnfInstance.Post.409: description: | 409 CONFLICT @@ -2088,6 +2160,54 @@ components: schema: type: string + ChangeFlavourVnfInstance.Post.404: + description: | + 404 NOT FOUND + + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI + GS NFV-SOL 013 [8], including rules for the + presence of the response body. + Specifically in case of this task resource, the + response code 404 shall also be returned if the task + is not supported for the VNF instance represented + by the parent resource, which means that the task + resource consequently does not exist. + In this case, the response body shall be present, + and shall contain a ProblemDetails structure, in + which the "detail" attribute shall convey more + information about the error + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + ChangeFlavourVnfInstance.Post.409: description: | 409 CONFLICT @@ -2239,6 +2359,53 @@ components: schema: type: string + HealVnfInstance.Post.404: + description: | + 404 NOT FOUND + + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI GS NFV-SOL 013 [8], + including rules for the presence of the response body. + Specifically in case of this task resource, the + response code 404 shall also be returned if the task + is not supported for the VNF instance represented by + the parent resource, which means that the task + resource consequently does not exist. + In this case, the response body shall be present, and + shall contain a ProblemDetails structure, in which the + "detail" attribute shall convey more information about + the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + HealVnfInstance.Post.409: description: | 409 CONFLICT @@ -2314,6 +2481,54 @@ components: schema: type: string + OperateVnfInstance.Post.404: + description: | + 404 NOT FOUND + + Shall be returned upon the following error: The API + producer did not find a current representation for + the target resource or is not willing to disclose that + one exists. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI + GS NFV-SOL 013 [8], including rules for the + presence of the response body. + Specifically in case of this task resource, the + response code 404 shall also be returned if the + task is not supported for the VNF instance + represented by the parent resource, which means + that the task resource consequently does not exist. + In this case, the response body shall be present, + and shall contain a ProblemDetails structure, in + which the "detail" attribute shall convey more + information about the error + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + OperateVnfInstance.Post.409: description: | 409 CONFLICT @@ -2613,6 +2828,53 @@ components: schema: type: string + RollbackVnfLcmOpOcc.Post.404: + description: | + 404 NOT FOUND + + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI GS NFV-SOL 013 [8], + including rules for the presence of the response body. + Specifically in case of this task resource, the response + code 404 shall also be returned if the task is not + supported for the VNF LCM operation occurrence + represented by the parent resource, which means that + the task resource consequently does not exist. + In this case, the response body shall be present, and + shall contain a ProblemDetails structure, in which the + "detail" attribute shall convey more information about + the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + RollbackVnfLcmOpOcc.Post.409: description: | 409 CONFLICT @@ -2677,6 +2939,53 @@ components: schema: type: string + RetryVnfLcmOpOcc.Post.404: + description: | + 404 NOT FOUND + + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI GS NFV-SOL 013 [8], + including rules for the presence of the response body. + Specifically in case of this task resource, the response + code 404 shall also be returned if the task is not + supported for the VNF LCM operation occurrence + represented by the parent resource, which means that + the task resource consequently does not exist. + In this case, the response body shall be present, and + shall contain a ProblemDetails structure, in which the + "detail" attribute shall convey more information about + the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + RetryVnfLcmOpOcc.Post.409: description: | 409 CONFLICT @@ -2754,6 +3063,55 @@ components: schema: $ref: "./definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc" + FailVnfLcmOpOcc.Post.404: + description: | + 404 NOT FOUND + + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI GS NFV-SOL 013 [8], + including rules for the presence of the response + body. + Specifically in case of this task resource, the + response code 404 shall also be returned if the task + is not supported for the VNF LCM operation + occurrence represented by the parent resource, + which means that the task resource consequently + does not exist. + In this case, the response body shall be present, and + shall contain a ProblemDetails structure, in which the + "detail" attribute shall convey more information about + the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + FailVnfLcmOpOcc.Post.409: description: | 409 CONFLICT @@ -2818,6 +3176,55 @@ components: schema: type: string + CancelVnfLcmOpOcc.Post.404: + description: | + 404 NOT FOUND + + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI GS NFV-SOL 013 [8], + including rules for the presence of the response + body. + Specifically in case of this task resource, the + response code 404 shall also be returned if the task + is not supported for the VNF LCM operation + occurrence represented by the parent resource, + which means that the task resource consequently + does not exist. + In this case, the response body shall be present, and + shall contain a ProblemDetails structure, in which the + "detail" attribute shall convey more information about + the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + CancelVnfLcmOpOcc.Post.409: description: | 409 CONFLICT @@ -2902,6 +3309,104 @@ components: schema: $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription" + Subscriptions.Post.303: + description: | + 303 See Other + + Shall be returned if a subscription with the same + callback URI and the same filter already exists + and the policy of the VNFM is to not create + redundant subscriptions. + The HTTP response shall include a "Location" + HTTP header that contains the resource URI of + the existing "Individual subscription" resource. + The response body shall be empty. + headers: + Location: + description: | + The resource URI of the created subscription resource. + style: simple + explode: false + schema: + type: string + format: url + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + + Subscriptions.Post.422: + description: | + 422 Unprocessable Entity + + Shall be returned upon the following error: The + content type of the payload body is supported + and the payload body of a request contains + syntactically correct data but the data cannot be + processed. + The general cause for this error and its handling + is specified in clause 6.4 of ETSI + GS NFV-SOL 013 [8], including rules for the + presence of the response body. + Specifically in case of this resource, the response + code 422 shall also be returned if the VNFM has + tested the Notification endpoint as described in + clause 5.4.20.3.2 and the test has failed. + In this case, the "detail" attribute in the + "ProblemDetails" structure shall convey more + information about the error + headers: + Location: + description: | + The resource URI of the created subscription resource. + style: simple + explode: false + schema: + type: string + format: url + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + Subscriptions.Get.200: description: | 200 OK @@ -3037,6 +3542,54 @@ components: schema: type: string + CreateVnfSnapshotTask.Post.404: + description: | + 404 NOT FOUND + + SShall be returned upon the following error: The API + producer did not find a current representation for + the target resource or is not willing to disclose that + one exists. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI + GS NFV-SOL 013 [8], including rules for the + presence of the response body. + Specifically in case of this task resource, the + response code 404 shall also be returned if the task + is not supported for the VNF instance represented + by the parent resource, which means that the task + resource consequently does not exist. + In this case, the response body shall be present, + and shall contain a ProblemDetails structure, in + which the "detail" attribute shall convey more + information about the error + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + CreateVnfSnapshotTask.Post.409: description: | 409 CONFLICT @@ -3078,6 +3631,52 @@ components: schema: $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + CreateVnfSnapshotTask.Post.422: + description: | + 422 Unprocessable Entity + + Shall be returned upon the following error: The + content type of the payload body is supported and + the payload body of a request contains syntactically + correct data but the data cannot be processed. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI + GS NFV-SOL 013 [8], including rules for the + presence of the response body. + Specifically in case of this resource, the response + code 422 shall also be returned if the provided + identifier of the target "Individual VNF snapshot" + resource for the VNF snapshot is invalid. + In this case, the "detail" attribute in the + "ProblemDetails" structure shall convey more + information about the error + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + RevertToVnfSnapshotTask.Post.202: description: | 202 ACCEPTED @@ -3111,6 +3710,54 @@ components: schema: type: string + RevertToVnfSnapshotTask.Post.404: + description: | + 404 NOT FOUND + + Shall be returned upon the following error: The API + producer did not find a current representation for the + target resource or is not willing to disclose that one + exists. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI + GS NFV-SOL 013 [8], including rules for the + presence of the response body. + Specifically in case of this task resource, the + response code 404 shall also be returned if the task + is not supported for the VNF instance represented + by the parent resource, which means that the task + resource consequently does not exist. + In this case, the response body shall be present, + and shall contain a ProblemDetails structure, in + which the "detail" attribute shall convey more + information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + RevertToVnfSnapshotTask.Post.409: description: | 409 CONFLICT @@ -3355,6 +4002,43 @@ components: schema: $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualVnfSnapshot.Patch.412: + description: | + 412 Precondition Failed + + Shall be returned upon the following error: A + precondition given in an HTTP request header is + not fulfilled. + Typically, this is due to an ETag mismatch, + indicating that the resource was modified by + another entity. + The response body should contain a + ProblemDetails structure, in which the "detail" + attribute should convey more information about the + error + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + IndividualVnfSnapshot.Delete.204: description: | 204 NO CONTENT diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 2ab637fe..2cbf79aa 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -249,7 +249,7 @@ paths: 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" + $ref: '#/components/responses/ManifestInIndividualVnfPackage.Get.406' 409: $ref: '#/components/responses/ManifestInIndividualVnfPackage.Get.409' 416: @@ -286,7 +286,7 @@ paths: 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 406: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" + $ref: '#/components/responses/ManifestInIndividualOnboardedVnfPackage.Get.406' 409: $ref: '#/components/responses/ManifestInIndividualOnboardedVnfPackage.Get.409' 416: @@ -333,12 +333,7 @@ paths: 409: $ref: '#/components/responses/IndividualVnfPackageContent.Get.409' 416: - # description: | - # 416 RANGE NOT SATISFIABLE - - # Shall be returned upon the following error: The byte range passed in the "Range" header - # did not match any available byte range in the VNF package file (e.g. "access after end of file"). - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" + $ref: '#/components/responses/IndividualVnfPackageContent.Get.416' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -378,12 +373,7 @@ paths: 409: $ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.409' 416: - # description: | - # 416 RANGE NOT SATISFIABLE - - # Shall be returned upon the following error: The byte range passed in the "Range" header - # did not match any available byte range in the VNF package file (e.g. "access after end of file"). - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" + $ref: '#/components/responses/IndividualOnboardedVnfPackageContent.Get.416' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -427,7 +417,7 @@ paths: 409: $ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.409' 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" + $ref: '#/components/responses/IndividualVnfPackageArtifacts.Get.416' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -468,7 +458,7 @@ paths: 409: $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.409' 416: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" + $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifacts.Get.416' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -512,14 +502,7 @@ paths: 409: $ref: '#/components/responses/IndividualVnfPackageArtifact.Get.409' 416: - # description: | - # 416 RANGE NOT SATISFIABLE - - # Shall be returned upon the following error: The byte range passed in the - # "Range" header did not match any available byte range in the artifact file - # (e.g. "access after end of file"). - # The response body may contain a ProblemDetails structure. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" + $ref: '#/components/responses/IndividualVnfPackageArtifact.Get.416' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -560,14 +543,7 @@ paths: 409: $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.409' 416: - # description: | - # 416 RANGE NOT SATISFIABLE - - # Shall be returned upon the following error: The byte range passed in the - # "Range" header did not match any available byte range in the artifact file - # (e.g. "access after end of file"). - # The response body may contain a ProblemDetails structure. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/416" + $ref: '#/components/responses/IndividualOnboardedVnfPackageArtifact.Get.416' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -592,15 +568,7 @@ paths: 201: $ref: '#/components/responses/Subscriptions.Post.201' 303: - # description: | - # 303 SEE OTHER - - # Shall be returned when a subscription with the same callback URI and the same filter - # already exists and the policy of the NFVO is to not create redundant subscriptions. - # The HTTP response shall include a "Location" HTTP header that contains the resource - # URI of the existing "Individual subscription" resource. - # The response body shall be empty. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/303" + $ref: '#/components/responses/Subscriptions.Post.303' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" 401: @@ -614,7 +582,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 422: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" + $ref: '#/components/responses/Subscriptions.Post.422' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -1143,6 +1111,40 @@ components: schema: type: string + ManifestInIndividualVnfPackage.Get.406: + description: | + 406 Not Acceptable + + If the related request contained an "Accept" header + not compatible with the Content type "application/zip" + but the "include_signatures" flag was provided, the + NFVO shall respond with this response code. + The "ProblemDetails" structure may be included with + the "detail" attribute providing more information about + the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + ManifestInIndividualVnfPackage.Get.409: description: | 409 CONFLICT @@ -1227,6 +1229,40 @@ components: schema: type: string + ManifestInIndividualOnboardedVnfPackage.Get.406: + description: | + 406 Not Acceptable + + If the related request contained an "Accept" header + not compatible with the Content type "application/zip" + but the "include_signatures" flag was provided, the + NFVO shall respond with this response code. + The "ProblemDetails" structure may be included with + the "detail" attribute providing more information about + the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + ManifestInIndividualOnboardedVnfPackage.Get.409: description: | 409 CONFLICT @@ -1375,6 +1411,32 @@ components: schema: $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualVnfPackageContent.Get.416: + description: | + 416 Range Not Satisfiable + + Shall be returned upon the following error: The byte + range passed in the "Range" header did not match + any available byte range in the VNF package file + (e.g. "access after end of file"). + The response body may contain a ProblemDetails + structure + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + IndividualOnboardedVnfPackageContent.Get.200: description: | 200 OK @@ -1445,6 +1507,39 @@ components: schema: $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualOnboardedVnfPackageContent.Get.416: + description: | + 416 Range Not Satisfiable + + Shall be returned upon the following error: The byte + range passed in the "Range" header did not match + any available byte range in the VNF package file + (e.g. "access after end of file"). + The response body may contain a ProblemDetails + structure + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + IndividualVnfPackageArtifact.Get.200: description: | 200 OK @@ -1533,6 +1628,32 @@ components: schema: $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualVnfPackageArtifact.Get.416: + description: | + 416 Range Not Satisfiable + + Shall be returned upon the following error: The byte + range passed in the "Range" header did not match + any available byte range in the artifact file + (e.g. "access after end of file"). + The response body may contain a ProblemDetails + structure + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + IndividualOnboardedVnfPackageArtifact.Get.409: description: | 409 CONFLICT @@ -1573,6 +1694,32 @@ components: schema: $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualOnboardedVnfPackageArtifact.Get.416: + description: | + 416 Range Not Satisfiable + + Shall be returned upon the following error: The byte + range passed in the "Range" header did not match + any available byte range in the artifact file + (e.g. "access after end of file"). + The response body may contain a ProblemDetails + structure + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + IndividualVnfPackageArtifacts.Get.409: description: | 409 CONFLICT @@ -1613,6 +1760,35 @@ components: schema: $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualVnfPackageArtifacts.Get.416: + description: | + 416 Range Not Satisfiable + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that + "onboardingState" of the VNF package has a value + different from "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + IndividualOnboardedVnfPackageArtifacts.Get.409: description: | 409 CONFLICT @@ -1653,6 +1829,35 @@ components: schema: $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualOnboardedVnfPackageArtifacts.Get.416: + description: | + 416 Range Not Satisfiable + + Shall be returned upon the following error: The + operation cannot be executed currently, due to a + conflict with the state of the resource. + Typically, this is due to the fact that + "onboardingState" of the VNF package has a value + different from "ONBOARDED". + The response body shall contain a ProblemDetails + structure, in which the "detail" attribute shall convey + more information about the error. + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + IndividualOnboardedVnfPackageContent.Get.206: description: | 206 PARTIAL CONTENT @@ -2036,6 +2241,85 @@ components: items: $ref: "definitions/SOL003VNFPackageManagement_def.yaml#/definitions/PkgmSubscription" + Subscriptions.Post.303: + description: | + 303 See Other + + Shall be returned when a subscription with the + same callback URI and the same filter already + exists and the policy of the NFVO is to not create + redundant subscriptions. + The HTTP response shall include a "Location" + HTTP header that contains the resource URI of + the existing "Individual subscription" resource. + The response body shall be empty. + headers: + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: The resource URI of the created PM Job + style: simple + explode: false + schema: + type: string + format: url + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + + Subscriptions.Post.422: + description: | + 422 Unprocessable Entity + + Shall be returned when a subscription with the + same callback URI and the same filter already + exists and the policy of the NFVO is to not create + redundant subscriptions. + The HTTP response shall include a "Location" + HTTP header that contains the resource URI of + the existing "Individual subscription" resource. + The response body shall be empty. + headers: + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + Subscriptions.Get.200: description: | 200 OK diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index f1939531..0c9fdc28 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -66,7 +66,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 422: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" + $ref: '#/components/responses/PmJobs.Post.422' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -165,9 +165,9 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 412: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412" + $ref: '#/components/responses/IndividualPmJob.Patch.412' 422: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" + $ref: '#/components/responses/IndividualPmJob.Patch.422' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -273,7 +273,7 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 422: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" + $ref: '#/components/responses/Thresholds.Post.422' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -368,9 +368,9 @@ paths: 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 412: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/412" + $ref: '#/components/responses/IndividualThreshold.Patch.412' 422: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" + $ref: '#/components/responses/IndividualThreshold.Patch.422' 500: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500" 503: @@ -502,6 +502,51 @@ components: schema: $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJob" + PmJobs.Post.422: + description: | + 422 Unprocessable Entity + + Shall be returned upon the following error: The + content type of the payload body is supported and + the payload body of a request contains syntactically + correct data but the data cannot be processed. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI GS NFV-SOL 013 [8], + including rules for the presence of the response + body. + Specifically in case of this resource, the response + code 422 shall also be returned if the VNFM has + tested the Notification endpoint as described in + clause 6.4.9.3.2 and the test has failed. + In this case, the "detail" attribute in the + "ProblemDetails" structure sh + headers: + Location: + description: The resource URI of the created PM Job + style: simple + explode: false + schema: + type: string + format: url + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + PmJobs.Get.200: description: | 200 OK @@ -619,6 +664,86 @@ components: schema: $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/PmJobModifications" + IndividualPmJob.Patch.412: + description: | + 412 Precondition Failed + + Shall be returned upon the following error: A + precondition given in an HTTP request header is not + fulfilled. + Typically, this is due to an ETag mismatch, indicating + that the resource was modified by another entity. + The response body should contain a ProblemDetails + structure, in which the "detail" attribute should convey + more information about the error. + headers: + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + + IndividualPmJob.Patch.422: + description: | + 422 Unprocessable Entity + + Shall be returned upon the following error: The + content type of the payload body is supported and the + payload body of a request contains syntactically + correct data but the data cannot be processed. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI GS NFV-SOL 013 [8], + including rules for the presence of the response body. + Specifically in case of this resource, the response + code 422 shall also be returned if the VNFM has + tested the Notification endpoint as described in + clause 6.4.9.3.2 and the test has failed. + In this case, the "detail" attribute in the + "ProblemDetails" structure shall convey more + information about the error. + headers: + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualPmJob.Delete.200: description: | 204 NO CONTENT @@ -718,6 +843,60 @@ components: schema: $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/Threshold" + Thresholds.Post.422: + description: | + 422 Unprocessable Entity + + Shall be returned upon the following error: The + content type of the payload body is supported and + the payload body of a request contains + syntactically correct data but the data cannot be + processed. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI + GS NFV-SOL 013 [8], including rules for the + presence of the response body. + Specifically in case of this resource, the response + code 422 shall also be returned if the VNFM has + tested the Notification endpoint as described in + clause 6.4.9.3.2 and the test has failed. + In this case, the "detail" attribute in the + "ProblemDetails" structure shall convey more + information about the error + headers: + Location: + description: TThe resource URI of the created VNF instance + style: simple + explode: false + schema: + type: string + format: url + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + Thresholds.Get.200: description: | 200 OK @@ -839,6 +1018,90 @@ components: schema: $ref: "../../definitions/SOL002SOL003VNFPerformanceManagement_def.yaml#/definitions/ThresholdModifications" + IndividualThreshold.Patch.412: + description: | + 412 Precondition Failed + + Shall be returned upon the following error: A + precondition given in an HTTP request header is + not fulfilled. + Typically, this is due to an ETag mismatch, + indicating that the resource was modified by + another entity. + The response body should contain a + ProblemDetails structure, in which the "detail" + attribute should convey more information about the + error + headers: + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + + IndividualThreshold.Patch.422: + description: | + 422 Unprocessable entity + + Shall be returned upon the following error: The + content type of the payload body is supported and + the payload body of a request contains + syntactically correct data but the data cannot be + processed. + The general cause for this error and its handling is + specified in clause 6.4 of ETSI + GS NFV-SOL 013 [8], including rules for the + presence of the response body. + Specifically in case of this resource, the response + code 422 shall also be returned if the VNFM has + tested the Notification endpoint as described in + clause 6.4.9.3.2 and the test has failed. + In this case, the "detail" attribute in the + "ProblemDetails" structure shall convey more + information about the error + headers: + Content-Type: + description: | + The MIME type of the body of the response. Reference: IETF RFC 7231 + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + IndividualThreshold.Delete.200: description: | 204 NO CONTENT diff --git a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml index 40142aa9..7fa66462 100644 --- a/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml +++ b/src/SOL003/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml @@ -145,7 +145,7 @@ paths: 409: $ref: '#/components/responses/PackageContent.Get.409' 416: - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 + $ref: '#/components/responses/PackageContent.Get.416' 422: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 429: @@ -189,7 +189,7 @@ paths: 409: $ref: '#/components/responses/IndividualArtifact.Get.409' 416: - $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 + $ref: '#/components/responses/IndividualArtifact.Get.416' 422: $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 429: @@ -450,6 +450,32 @@ components: schema: $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + PackageContent.Get.416: + description: | + 416 Range Not Satisfiable + + Shall be returned upon the following error: The byte + range passed in the "Range" header did not match + any available byte range in the VNF snapshot + package file (e.g. "access after end of file"). + The response body may contain a ProblemDetails + structure + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + IndividualArtifact.Get.200: description: | 200 OK @@ -574,4 +600,30 @@ components: content: application/json: schema: - $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" \ No newline at end of file + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + + IndividualArtifact.Get.416: + description: | + 416 Range Not Satisfiable + + Shall be returned upon the following error: The byte + range passed in the "Range" header did not match + any available byte range in the artifact file + (e.g. "access after end of file"). + The response body may contain a ProblemDetails + structure + headers: + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string \ No newline at end of file diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index 28995308..c629915a 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -52,15 +52,7 @@ paths: 201: $ref: '#/components/responses/Subscriptions.Post.201' 303: - #description: | - # 303 SEE OTHER - - # Shall be returned when a subscription with the same callback URI and the same - # filter already exists and the policy of the NFVO is to not create redundant subscriptions. - # The HTTP response shall include a "Location" HTTP header that contains the resource URI - # of the existing "Individual subscription" resource. - # The response body shall be empty. - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/303" + $ref: '#/components/responses/Subscriptions.Post.303' 400: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/400" 401: @@ -72,7 +64,7 @@ paths: 405: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/405" 422: - $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422" + $ref: '#/components/responses/Subscriptions.Post.422' 406: $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/406" 500: @@ -250,6 +242,100 @@ components: schema: $ref: ./definitions/SOL003VirtualisedResourcesQuotaAvailableNotification_def.yaml#/definitions/VrQuotaAvailSubscription + Subscriptions.Post.303: + description: | + 303 See Other + + Shall be returned when a subscription with + the same callback URI and the same filter + already exists and the policy of the NFVO + is to not create redundant subscriptions. + The HTTP response shall include a + "Location" HTTP header that contains the + resource URI of the existing "Individual + subscription" resource. + The response body shall be empty. + headers: + Version: + description: | + The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + The resource URI of the created VNF instance + style: simple + explode: false + schema: + type: string + format: url + + Subscriptions.Post.422: + description: | + 422 Unprocessable Entity + + Shall be returned upon the following error: + The content type of the payload body is + supported and the payload body of a + request contains syntactically correct data + but the data cannot be processed. + The general cause for this error and its + handling is specified in clause 6.4 of ETSI + GS NFV-SOL 013 [8], including rules for + the presence of the response body. + Specifically in case of this resource, the + response code 422 shall also be returned + if the NFVO has tested the Notification + endpoint as described in clause 11.4.4.3.2 + and the test has failed. + In this case, the "detail" attribute in the + "ProblemDetails" structure shall convey + more information about the error + headers: + Version: + description: | + The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: | + The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + Subscriptions.Get.200: description: | 200 OK -- GitLab From 90cdab2258e4d8c76686744c5672e7d9caf9e8e4 Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Fri, 6 Aug 2021 16:51:30 +0200 Subject: [PATCH 65/66] fix --- src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml | 2 +- src/SOL003/VNFIndicator/VNFIndicator.yaml | 2 +- .../VNFLifecycleManagement/VNFLifecycleManagement.yaml | 4 ++-- src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml | 2 +- .../VNFPerformanceManagement.yaml | 8 ++++---- .../VirtualisedResourcesQuotaAvailableNotification.yaml | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml index 9036fb64..07d18ac7 100644 --- a/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml +++ b/src/SOL003/VNFFaultManagement/VNFFaultManagement.yaml @@ -683,7 +683,7 @@ components: content: application/json: schema: - $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" IndividualSubscription.Get.200: description: | diff --git a/src/SOL003/VNFIndicator/VNFIndicator.yaml b/src/SOL003/VNFIndicator/VNFIndicator.yaml index e6607628..f997f994 100644 --- a/src/SOL003/VNFIndicator/VNFIndicator.yaml +++ b/src/SOL003/VNFIndicator/VNFIndicator.yaml @@ -565,7 +565,7 @@ components: content: application/json: schema: - $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" Subscriptions.Get.200: description: | 200 OK diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 8d5ae720..4f9aecf6 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -1541,7 +1541,7 @@ components: content: application/json: schema: - $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" VNFInstances.Get.200: description: | @@ -3405,7 +3405,7 @@ components: content: application/json: schema: - $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" Subscriptions.Get.200: description: | diff --git a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml index 2cbf79aa..c85a97d5 100644 --- a/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL003/VNFPackageManagement/VNFPackageManagement.yaml @@ -2318,7 +2318,7 @@ components: content: application/json: schema: - $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" Subscriptions.Get.200: description: | diff --git a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml index 0c9fdc28..da39f0a8 100644 --- a/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml +++ b/src/SOL003/VNFPerformanceManagement/VNFPerformanceManagement.yaml @@ -545,7 +545,7 @@ components: content: application/json: schema: - $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" PmJobs.Get.200: description: | @@ -742,7 +742,7 @@ components: content: application/json: schema: - $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" IndividualPmJob.Delete.200: description: | @@ -895,7 +895,7 @@ components: content: application/json: schema: - $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" Thresholds.Get.200: description: | @@ -1100,7 +1100,7 @@ components: content: application/json: schema: - $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" IndividualThreshold.Delete.200: description: | diff --git a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml index c629915a..0d36abfa 100644 --- a/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml +++ b/src/SOL003/VirtualisedResourcesQuotaAvailableNotification/VirtualisedResourcesQuotaAvailableNotification.yaml @@ -334,7 +334,7 @@ components: content: application/json: schema: - $ref: "../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" Subscriptions.Get.200: description: | -- GitLab From 032972239ec0ad424fb7a0252034b1f3af39afab Mon Sep 17 00:00:00 2001 From: Giacomo Bernini Date: Fri, 6 Aug 2021 16:56:30 +0200 Subject: [PATCH 66/66] fix --- src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 4f9aecf6..cc816d58 100644 --- a/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL003/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -2084,7 +2084,7 @@ components: content: application/json: schema: - + $ref: "../../definitions/SOL002SOL003_def.yaml#/definitions/ProblemDetails" ScaleToLevelVnfInstance.Post.409: description: | 409 CONFLICT -- GitLab