diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index efe7f41f1a8bd0163e77d2bc10404e083dd699da..ba9dc9b1d75a1678327c271393ee59bca57b4559 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -958,7 +958,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization post: description: | - The POST method requests creating a VNF snapshot resource based on a VNF instance resource. + 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. requestBody: $ref: '#/components/requestBodies/VnfInstanceCreateSnapshotRequest' responses: @@ -1038,6 +1039,8 @@ paths: post: description: | The POST method creates a new individual VNF snapshot resource. + requestBody: + $ref: '#/components/requestBodies/VnfSnapshotsRequest' responses: "201": $ref: '#/components/responses/VnfSnapshots.Post' @@ -1107,9 +1110,9 @@ paths: "504": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 - /vnf_snapshots/{vnfSnapshotId}: + /vnf_snapshots/{vnfSnapshotInfoId}: parameters: - - $ref: '#/components/parameters/VnfSnapshotId' + - $ref: '#/components/parameters/VnfSnapshotInfoId' - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization get: @@ -1218,11 +1221,11 @@ components: schema: type: string - VnfSnapshotId: - name: vnfSnapshotId + VnfSnapshotInfoId: + name: vnfSnapshotInfoId in: path description: | - Identifier of the individual VNF snapshot. This identifier can be retrieved from the resource referenced by the + Identifier of the individual VNF snapshot resource. 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 snapshot resource. It can also be retrieved from the "id" attribute in the payload body of that response. required: true @@ -1350,6 +1353,15 @@ components: $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/RevertToVnfSnapshotRequest required: true + VnfSnapshotsRequest: + description: | + The VNF snapshot resource creation parameters. + content: + application/json: + schema: + $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/CreateVnfSnapshotInfoRequest + required: true + responses: VnfInstances.Get: description: | @@ -1682,8 +1694,8 @@ components: 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 "VNF LCM operation occurrence" resource - corresponding to the operation. + 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. @@ -2285,14 +2297,14 @@ components: content: application/json: schema: - $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotRes + $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotInfo VnfSnapshots.Get: description: | 200 OK Shall be returned when information about zero or more VNF snapshots was queried successfully. - The response body shall contain in an array the representations of zero or more VNF snapshots, - as defined in clause 5.5.2.21. + The response body shall contain in an array the representations of zero or more individual VNF + snapshot resources, as defined in clause 5.5.2.21. 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 @@ -2323,12 +2335,12 @@ components: schema: type: array items: - $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotRes + $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotInfo IndividualVnfSnapshot.Get: description: | Shall be returned when information about an individual VNF snapshot was read successfully. - The response body shall contain a representation of the VNF snapshot. + The response body shall contain a representation of the individual VNF snapshot resource. headers: Version: description: The used API version. @@ -2360,7 +2372,7 @@ components: content: application/json: schema: - $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotRes + $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotInfo IndividualVnfSnapshot.Delete: description: | diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index dc003fa03cd9beed2167a70fdac2c6c0b2be23d6..99ab726ea9eb58fd1980a0b1877b40eea7d74216 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -137,7 +137,9 @@ definitions: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleInfo" extCpInfo: description: > - Information about the external CPs exposed by the VNF instance. + Information about the external CPs exposed by the VNF instance. When trunking is enabled, the list of + entries includes both, external CPs corresponding to parent ports of a trunk, and external CPs associated + to sub-ports of a trunk. type: array minItems: 1 items: @@ -151,6 +153,10 @@ definitions: extManagedVirtualLinkInfo: description: > External virtual links the VNF instance is connected to. + 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). type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ExtManagedVirtualLinkInfo" @@ -304,6 +310,18 @@ definitions: operation is possible based on the current status of this VNF instance resource (i.e. VNF instance is in INSTANTIATED state). $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + createSnapshot: + description: > + Link to the "Create VNF snapshot task" resource, if the related operation is + supported for this VNF instance and is possible based on the current status of + this VNF instance resource (i.e., VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + revertToSnapshot: + description: > + Link to the "Revert to VNF snapshot task" resource, if the related operation is + supported for this VNF instance and is possible based on the current status of this + VNF instance resource (i.e., VNF instance is in INSTANTIATED state). + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" InstantiateVnfRequest: type: object @@ -329,6 +347,10 @@ definitions: 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. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" @@ -351,9 +373,9 @@ 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 VNF - configurable properties attribute in the "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. + 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. + Provisions for handling configurable properties during the operation are defined in clause 5.4.4.3.1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" ChangeVnfFlavourRequest: @@ -382,6 +404,10 @@ definitions: 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. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" @@ -399,8 +425,8 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vnfConfigurableProperties: description: > - If present, this attribute provides modifications to the values of the VNF configurable properties attribute in - the "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling VNF configurable properties during the + If present, this attribute provides modifications to the values of the “vnfConfigurableProperties” attribute in + "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling VNF configurable properties during the operation, are defined in clause 5.4.7.3.1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" @@ -443,7 +469,9 @@ definitions: properties: vnfcInstanceId: description: > - List of VNFC instances requiring a healing action. + List of identifiers of VNFC instances for which a healing action is requested. Each identifier references the + "id" attribute in a "VnfcInfo" structure. Cardinality can be "0" to denote that the request applies to the + whole VNF and not a specific VNFC instance. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" @@ -472,8 +500,8 @@ definitions: properties: vnfcInstanceId: description: > - Identifier of VNFC instances. Cardinality can be "0" to denote - that the request applies to the whole VNF and not a specific VNFC instance. + List of identifiers of VNFC instances. Each identifier references the "id" attribute in a "VnfcInfo" structure. + Cardinality can be "0" to denote that the request applies to the whole VNF and not a specific VNFC instance. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" @@ -557,17 +585,13 @@ definitions: 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. type: array items: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ExtManagedVirtualLinkData" - vimConnectionInfo: - description: > - Information about VIM connections to be used for managing the resources for the VNF instance, or refer to - external virtual links. This attribute shall only be supported and may be present if VNF-related resource - management in direct mode is applicable. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/VimConnectionInfo" additionalParams: description: > Additional parameters passed by the EM as input to the process, specific to the VNF of which the underlying @@ -581,9 +605,9 @@ definitions: $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vnfConfigurableProperties: description: > - If present, this attribute provides modifications to the values of the VNF configurable properties attribute - in the "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling VNF configurable properties during - the operation, and needed passed parameter values in case of conflicts, are defined in clause 5.4.11a.3.1. + If present, this attribute provides modifications to the values of the “vnfConfigurableProperties” attribute + in "VnfInstance", as defined in clause 5.5.2.2. Provisions for handling VNF configurable properties during the + operation, and needed passed parameter values in case of conflicts, are defined in clause 5.4.11a.3.1. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" VnfInfoModificationRequest: @@ -632,13 +656,6 @@ definitions: type: array items: $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcInfoModifications" - vnfcInfoModificationsDeleteIds: - description: > - List of identifiers entries to be deleted from the 'vnfcInfoModifications" attribute array - to be used as "deleteIdList" as defined below this table. - type: array - items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" CreateVnfSnapshotRequest: description: > @@ -647,14 +664,15 @@ definitions: required: - vnfSnapshotResId properties: - vnfSnapshotResId: + vnfSnapshotInfoId: description: > Identifier of the individual VNF snapshot resource to which the VNF Snapshot is to be associated. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfcInstanceId: description: > - Identifier of the VNFC instance to be snapshotted. If this attribute is provided, only a snapshot of the - referred VNFC instance shall be created. + Identifier of the VNFC instance to be snapshotted. Each identifier references the "id" attribute in a + "VnfcInfo" structure. If this attribute is provided, only a snapshot of the referred VNFC instance shall + be created. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" additionalParams: description: > @@ -670,40 +688,42 @@ definitions: description: > This type represents request parameters for the "Revert-to VNF Snapshot" operation. type: object - oneOf: - - anyOf: - - required: - - vnfInstanceId - - required: - - vnfSnapshotInfoId - - anyOf: - - required: - - vnfcInstanceId - - required: - - vnfcSnapshotInfoId properties: - vnfInstanceId: + vnfSnapshotInfoId: description: > - Identifier of the VNF instance to be reverted. Only one of the tuples (vnfInstanceId; vnfSnapshotInfoId) or - (vnfcInstanceId; vnfcSnapshotInfoId) shall be present, indicating whether a VNF instance or a VNFC instance - shall be reverted. + Identifier of the “individual VNF snapshot” resource with the information of the VNF snapshot to be reverted to. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfSnapshotId: + vnfcInstanceId: description: > - Identifier of the VNF snapshot to be reverted to. + List of identifiers of the VNFC instance to be reverted. Each identifier references the "id" attribute in a + "VnfcInfo" structure. Shall be present if the request is for reverting a specific VNFC instance. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfcInstanceId: + vnfcSnapshotInfoId: description: > - Identifier of the VNFC instance to be reverted. Only one of the tuples (vnfInstanceId; vnfSnapshotInfoId) or - (vnfcInstanceId; vnfcSnapshotInfoId) shall be present, indicating whether a VNF instance or a VNFC instance - shall be reverted. + Identifier of the VNFC snapshot information with the information of the VNFC snapshot to be reverted to. + Shall only be present if the "vnfcInstanceId" is present. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfcSnapshotId: + additionalParams: description: > - Identifier of the VNFC snapshot to be reverted to. + Additional input parameters for the revert to VNF snapshot process, specific for the VNF being “reverted”, + as declared in the VNFD as part of “RevertToSnapshotVnfOpConfig”. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + + 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. + 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. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - VnfSnapshotRes: + VnfSnapshotInfo: description: > This type represents an individual VNF snapshot resource. type: object @@ -714,12 +734,34 @@ definitions: description: > Identifier of the individual VNF snapshot resource. This identifier is allocated by the VNFM. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + vnfSnapshotPkgId: + description: | + Identifier of the VNF snapshot package information held by the EM. Shall be present when the + “Individual VNF snapshot" resource is created from a VNF snapshot package extraction. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" vnfSnapshot: description: > - VNF snapshot information, content and/or references to its content. Shall be present when the individual VNF - snapshot resource is associated to a VNF snapshot created via the corresponding "Create VNF snapshot" task - resource or extracted from a VNF snapshot package. + Information about the VNF snapshot, content and/or references to its content. Shall be present when the + individual VNF snapshot resource is associated to a VNF snapshot created via the corresponding "Create VNF + snapshot" task resource or extracted from a VNF snapshot package. $ref: '#/definitions/VnfSnapshot' + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" + takenFrom: + description: > + Link to the VNF instance from which this snapshot was taken. Shall be present when the "Individual VNF + snapshot" resource is associated to a VNF snapshot created via the corresponding "Create VNF snapshot" + task resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" VnfSnapshot: description: > @@ -741,22 +783,22 @@ definitions: description: > Identifier of the snapshotted VNF instance. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - triggeredAt: + creationStartedAt: description: > - Timestamp indicating when the VNF snapshot creation has been started. + Timestamp indicating when the VNF snapshot creation has been started by the VNFM. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - createdAt: + creationFinishedAt: description: > - Timestamp indicating when the VNF snapshot has been completed. Shall be present once the VNF snapshot creation - has been completed. + Timestamp indicating when the VNF snapshot has been completed by the VNFM. + Shall be present once the VNF snapshot creation has been completed. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" vnfdId: description: > Identifier of the VNFD in use at the time the snapshot of the VNF instance has been created. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" - vnfInfo: + vnfInstance: description: > - VnfInfo of the snapshotted VNF instance. This is a copy of the individual VNF instance resource. + VNF Instance information of the snapshotted VNF instance. This is a copy of the individual VNF instance resource. $ref: '#/definitions/VnfInstance' vnfcSnapshots: description: > @@ -768,6 +810,17 @@ definitions: description: > User defined data for the VNF snapshot. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + _links: + description: > + Links to resources related to this resource. + type: object + required: + - self + properties: + self: + description: > + URI of this resource. + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Link" VnfcSnapshotInfo: description: > @@ -787,32 +840,49 @@ definitions: vnfcInstanceId: description: > Identifier of the snapshotted VNFC instance. + The identifier references the "id" attribute in a "VnfcInfo" structure. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" - triggeredAt: + creationStartedAt: description: > - Timestamp indicating when the VNF snapshot creation has been started. + Timestamp indicating when the VNF snapshot creation has been started by the VNFM. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - createdAt: + creationFinishedAt: description: > Timestamp indicating when the VNFC snapshot has been completed. Shall be present once the VNFC snapshot - creation has been completed. + creation has been completed by the VNFM. $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/DateTime" - vnfcInfo: + vnfcResourceInfoId: description: > - Information of the snapshotted VNFC instance. This is a copy of the individual VnfcResourceInfo. + Reference to the "VnfcResourceInfo" structure in the "VnfInstance" structure that represents the resources of + the snapshotted VNFC instance. A snapshot of that structure is available in the "vnfInstance" attribute of the + "VnfSnapshot" structure. $ref: "../../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfcInfo" computeSnapshotResource: description: > - Reference to a compute snapshot resource. The identifiers of the compute and storage snapshot resources are + 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. + 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". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" storageSnapshotResources: description: > - Reference to a storage snapshot resource. The identifiers of the compute and storage snapshot resources are - assigned during creation of a VNFC snapshot being returned from the VIM as output data in the response message - of the individual resource operations. - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" + Mapping of the storage resources associated to the VNFC with the storage snapshot resources. + type: object + required: + - storageResourceId + properties: + storageResourceId: + description: > + Reference to the "VirtualStorageResourceInfo" structure in the "VnfInstance" structure that represents + the virtual storage resource. + $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". + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/ResourceHandle" userDefinedData: description: > User defined data for the VNF snapshot. diff --git a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml index 8860000b2878303fc59d057c528a6ddbc220dceb..d548109054d51f8ad0300439b59ea8ea0e491be7 100644 --- a/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml +++ b/src/definitions/SOL002SOL003VNFLifecycleManagement_def.yaml @@ -236,15 +236,6 @@ definitions: type: array items: $ref: "#/definitions/VnfcInfoModifications" - vnfcInfoModificationsDeleteIds: - description: > - If present, this attribute signals the deletion of certain - entries in the "vnfcInfo" attribute array in the - "instantiatedVnfInfo" attribute of "VnfInstance", as defined - in clause 5.5.2.12 - type: array - items: - $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" VnfLcmOpOcc: description: > @@ -365,6 +356,15 @@ definitions: 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". type: array items: $ref: "#/definitions/AffectedVirtualLink" @@ -411,10 +411,10 @@ definitions: not received it due to an error or a wrongly configured subscription filter. Not more than one of changedInfo and modificationsTriggeredByVnfPkgChange shall be present. $ref: "#/definitions/ModificationsTriggeredByVnfPkgChange" - vnfSnapshotResId: + vnfSnapshotInfoId: description: > - Identifier of the individual VNF snapshot resource, if applicable by the type of LCM operation, i.e., if value - of operation is either "CREATE_SNAPSHOT" or "REVERT_TO_SNAPSHOT". + 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: "SOL002SOL003_def.yaml#/definitions/Identifier" _links: description: > @@ -558,6 +558,7 @@ definitions: required: - id - resourceHandle + - currentVnfExtCpData properties: id: description: > @@ -576,6 +577,19 @@ definitions: type: array items: $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. + type: array + items: + $ref: "SOL002SOL003_def.yaml#/definitions/VnfExtCpData" ExtManagedVirtualLinkInfo: type: object @@ -603,7 +617,7 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" networkResource: description: > - Reference to the VirtualNetwork resource. + Reference to the VirtualNetwork resource providing this VL. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" vnfLinkPorts: description: > @@ -683,7 +697,7 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" vnfcCpInfo: description: > - CPs of the VNFC instance. + All the CPs of the VNFC instance. Shall be present when that particular CP of the VNFC instance is associated to an external CP of the VNF instance. May be present otherwise. @@ -705,20 +719,22 @@ definitions: $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" vnfExtCpId: description: > - When the VNFC CP is exposed as external CP of the VNF, the - identifier of this external VNF CP. + WhenIdentifier of the related external CP. Shall be present when the VNFC CP is exposed as an external + instance or connected to an external CP of the VNF instance and shall be absent otherwise. + 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. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" cpProtocolInfo: description: > - Network protocol information for this CP. + 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. type: array items: $ref: "#/definitions/CpProtocolInfo" vnfLinkPortId: description: > - Identifier of the "vnfLinkPorts" structure in the - "VnfVirtualLinkResourceInfo" structure. Shall be present if - the CP is associated to a link port. + Identifier of the "vnfLinkPorts" 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. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" metadata: description: > @@ -1100,7 +1116,7 @@ definitions: AffectedVirtualLink: description: > This type provides information about added, deleted, modified and - temporary VLs. + temporary VLs, and added or removed VNF link ports. type: object required: - id @@ -1134,6 +1150,10 @@ definitions: * 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. type: string enum: - ADDED @@ -1147,13 +1167,23 @@ definitions: 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. $ref: "SOL002SOL003_def.yaml#/definitions/ResourceHandle" vnfLinkPortIds: description: > Identifiers of the link ports of the affected VL (reference to the vnfLinkPortInfo) related to the change. - Shall be set when changeType is equal to "LINK_PORT_ADDED" or "LINK_PORT_REMOVED", and the related vnfLinkPort - structures are present (case "added") or have been present (case "removed") in the VnfVirtualLinkResourceInfo - structure that is represented by the "vnfVirtualLinkResourceInfo" attribute in the "VnfInstance" structure. + 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. type: array items: $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" @@ -1322,6 +1352,7 @@ definitions: required: - id - cpdId + - cpConfigId - cpProtocolInfo oneOf: - required: @@ -1337,6 +1368,11 @@ definitions: description: > Identifier of the external CPD, VnfExtCpd, in the VNFD. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnfd" + cpConfigId: + description: > + Identifier that references the applied "VnfExtCpConfig" entry in the "cpConfig" map of the "currentVnfExtCpData" + in the "ExtVirtualLinkInfo" structure. + $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" vnfdId: description: > Identifier of the VNFD. @@ -1351,7 +1387,7 @@ definitions: $ref: "#/definitions/CpProtocolInfo" extLinkPortId: description: > - Identifier of the "extLinkPortInfo" structure inside the "extVirtualLinkInfo" structure. + Identifier of the "ExtLinkPortInfo" structure inside the "ExtVirtualLinkInfo" structure. Shall be present if the CP is associated to a link port. $ref: "SOL002SOL003_def.yaml#/definitions/Identifier" metadata: @@ -1436,9 +1472,9 @@ definitions: 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, - which represents an occurrence of one the following LCM operations: + 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) @@ -1448,7 +1484,9 @@ definitions: * 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. + 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, @@ -1567,6 +1605,14 @@ definitions: 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". type: array items: $ref: "#/definitions/AffectedVirtualLink" @@ -1736,10 +1782,16 @@ 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. $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). $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" VnfcInfo: @@ -1750,7 +1802,6 @@ definitions: required: - id - vduId - - vnfcResourceInfoId - vnfcState properties: id: @@ -1766,6 +1817,8 @@ definitions: 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. $ref: "SOL002SOL003_def.yaml#/definitions/IdentifierInVnf" vnfcState: description: > @@ -1800,17 +1853,23 @@ definitions: properties: vnfConfigurableProperties: description: > - This attribute signals the content of the "vnfConfigurableProperties" attribute in "VnfInstance" after the - modification 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. + This attribute represents the delta (semantics as per IETF RFC 7386 [3], 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 content of the "metadata" attribute in "VnfInstance" after the modification and - shall be present if that attribute was modified during the operation. + 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 [3], 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" extensions: description: > - This attribute signals the content of the "extensions" attribute in "VnfInstance" after the modification and + 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. $ref: "SOL002SOL003_def.yaml#/definitions/KeyValuePairs" vnfdId: @@ -1821,22 +1880,22 @@ definitions: 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, by copying the value of this attribute from the VNFD in the VNF Package identified by the "vnfdId" - attribute. + operation, and contains a copy of the value of he related attribute from the VNFD in the VNF Package identified + by the "vnfdId" attribute. 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, by copying the value of this attribute from the VNFD in the VNF Package identified by the "vnfdId" - attribute. + operation, and contains a copy of the value of he related attribute from the VNFD in the VNF Package identified + by the "vnfdId" attribute. 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, by copying the value of this attribute from the VNFD in the VNF Package identified by the "vnfdId" - attribute. + operation, and contains a copy of the value of he related attribute from the VNFD in the VNF Package identified + by the "vnfdId" attribute. $ref: "SOL002SOL003_def.yaml#/definitions/Version" vnfdVersion: description: > diff --git a/src/definitions/SOL002SOL003_def.yaml b/src/definitions/SOL002SOL003_def.yaml index e3568fbbac80897f4829008f78c393e50ee15883..841d5fcc022f652c2fd0c9efc6bec3340065d1c3 100644 --- a/src/definitions/SOL002SOL003_def.yaml +++ b/src/definitions/SOL002SOL003_def.yaml @@ -329,9 +329,21 @@ definitions: $ref: "#/definitions/IdentifierInVnfd" cpConfig: description: > - List of instance data that need to be configured on the CP instances + Map of instance data that need to be configured on the CP instances created from the respective CPD. - type: array + 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. + type: items: $ref: "#/definitions/VnfExtCpConfig" @@ -344,45 +356,31 @@ definitions: shall create a link port on the external VL, and use that link port to connect the external CP to the external VL. type: object - required: - - id properties: - id: - description: > - Identifier of the VnfExtCpConfig entry. Managed by the API consumer. - $ref: "#/definitions/IdentifierInVnf" parentCpConfigId: description: > - Reference to the "VnfExtCpConfig" entry that corresponds to the parent port of the trunk. Only present in - "VnfExtCpConfig" structures that provide configuration information for a CP which represents a sub-port in + Value of the key that identifies the "VnfExtCpConfig" map entry which corresponds to the parent port of the + trunk. Reference to the "VnfExtCpConfig" entry that corresponds to the parent port of the trunk. Only present + in "VnfExtCpConfig" structures that provide configuration information for a CP which represents a sub-port in a trunk, and if parent ports are supported. $ref: "#/definitions/IdentifierInVnf" - cpInstanceId: - description: > - Identifier of the external CP instance to which this set of - configuration parameters is requested to be applied. - Shall be present if this instance has already been created. - $ref: "#/definitions/IdentifierInVnf" 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) The "linkPortId" and "cpProtocolData" attributes shall both be - absent for the deletion of an existing external CP instance - addressed by cpInstanceId. - 2) At least one of these attributes shall be present for a - to-be-created external CP instance or an existing external + 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. - 3) If the "linkPortId" attribute is absent, the VNFM shall create a + 2) If the "linkPortId" attribute is absent, the VNFM shall create a link port. - 4) If the "cpProtocolData" attribute is absent, the "linkPortId" + 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. - 5) If both "cpProtocolData" and "linkportId" are provided, the API + 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". $ref: "#/definitions/Identifier"