From d9e7a446f371fbe40e21f33cbb01cd4f60c36c71 Mon Sep 17 00:00:00 2001 From: Francesca Moscatelli Date: Mon, 29 Jun 2020 18:53:25 +0200 Subject: [PATCH] SOL005 modifications according to v03004 --- .../NFVICapacityInformation.yaml | 88 +++- .../NFVICapacityInformation_def.yaml | 103 ++++- .../NSLifecycleManagement.yaml | 2 +- .../SOL005NSLifecycleManagement_def.yaml | 392 ++++++++++++------ .../NSLifecycleManagementNotification.yaml | 2 +- ...NSLifecycleManagementNotification_def.yaml | 44 +- .../VNFPackageManagement.yaml | 13 +- .../SOL005VNFPackageManagement_def.yaml | 47 ++- ...5VNFPackageManagementNotification_def.yaml | 2 +- src/SOL005/components/SOL005_params.yaml | 2 +- 10 files changed, 519 insertions(+), 176 deletions(-) diff --git a/src/SOL005/NFVICapacityInformation/NFVICapacityInformation.yaml b/src/SOL005/NFVICapacityInformation/NFVICapacityInformation.yaml index f69ea5b..cab9636 100644 --- a/src/SOL005/NFVICapacityInformation/NFVICapacityInformation.yaml +++ b/src/SOL005/NFVICapacityInformation/NFVICapacityInformation.yaml @@ -13,7 +13,7 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.1.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 005 V3.3.1 @@ -160,6 +160,8 @@ paths: $ref: ../responses/SOL005_resp.yaml#/components/responses/405 "406": $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "422": + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 "500": $ref: ../responses/SOL005_resp.yaml#/components/responses/500 "503": @@ -202,6 +204,40 @@ paths: "504": $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + patch: + summary: Modify an "Individual capacity threshold" resource + description: | + This method iallows to modify an "Individual capacity threshold" resource. + This method shall follow the provisions specified in the Tables 10.4.5.3.4-1 and 10.4.5.3.4-2 for URI query + parameters, request and response data structures, and response codes. + requestBody: + $ref: '#/components/requestBodies/IndividualNfviCapacityThresholdRequest' + responses: + "200": + $ref: '#/components/responses/IndividualCapacityThreshold.Patch' + "400": + $ref: ../responses/SOL005_resp.yaml#/components/responses/400 + "401": + $ref: ../responses/SOL005_resp.yaml#/components/responses/401 + "403": + $ref: ../responses/SOL005_resp.yaml#/components/responses/403 + "404": + $ref: ../responses/SOL005_resp.yaml#/components/responses/404 + "405": + $ref: ../responses/SOL005_resp.yaml#/components/responses/405 + "406": + $ref: ../responses/SOL005_resp.yaml#/components/responses/406 + "412": + $ref: ../responses/SOL005_resp.yaml#/components/responses/412 + "422": + $ref: ../responses/SOL005_resp.yaml#/components/responses/422 + "500": + $ref: ../responses/SOL005_resp.yaml#/components/responses/500 + "503": + $ref: ../responses/SOL005_resp.yaml#/components/responses/503 + "504": + $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + delete: summary: Delete an NFVI capacity threshold description: | @@ -421,6 +457,16 @@ components: $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CreateCapacityThresholdRequest required: true + IndividualNfviCapacityThresholdRequest: + description: | + Parameters for the capacity threshold modification. + The Content-Type header shall be set to "application/merge-patch+json" according to IETF RFC 7396. + content: + application/json: + schema: + $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThresholdModifications + required: true + NfviCapacitySubscriptionRequest: description: | Details of the subscription to be created. @@ -611,6 +657,38 @@ components: schema: $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThreshold + IndividualCapacityThreshold.Patch: + description: | + 200 OK + Shall be returned when the request has been processed successfully. + The response body shall contain a data structure of type "CapacityThresholdModifications". + headers: + Version: + description: | + Version of the API used in 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 + 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/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThresholdModifications + IndividualCapacityThreshold.Delete: description: | Shall be returned when the NFVI capacity threshold has been deleted successfully. @@ -832,12 +910,12 @@ components: description: >- This resource represents a notification endpoint for NFVI capacity information. The API producer can use this resource to send notifications related to log management events to a - subscribed API consumer, which has provided the URI of this resource during the subscription process. + subscribed API consumer, which has provided the URI of this resource during the capacity threshold + creation process. post: description: >- The POST method delivers a notification regarding an NFVI capacity information event from the API producer - to an API consumer. The API consumer shall have previously created an "individual subscription resource" - with a matching filter. + to an API consumer. The API consumer shall have previously created an "Individual capacity threshold" resource" parameters: - $ref: ../components/SOL005_params.yaml#/components/parameters/Version - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization @@ -870,7 +948,7 @@ components: 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. + e.g. during creation of the capacity threshold resource. parameters: - $ref: ../components/SOL005_params.yaml#/components/parameters/Version - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept diff --git a/src/SOL005/NFVICapacityInformation/definitions/NFVICapacityInformation_def.yaml b/src/SOL005/NFVICapacityInformation/definitions/NFVICapacityInformation_def.yaml index 20ca95c..7588547 100644 --- a/src/SOL005/NFVICapacityInformation/definitions/NFVICapacityInformation_def.yaml +++ b/src/SOL005/NFVICapacityInformation/definitions/NFVICapacityInformation_def.yaml @@ -24,6 +24,10 @@ components: type: array items: $ref: '#/components/schemas/NfviCapacityInfoPerZone' + totalCapacityInfo: + description: | + Total capacity information associated to the VIM. + $ref: '#/components/schemas/NfviCapacityMeasurement' timeInterval: description: | Time interval of the NFVI capacity information. @@ -37,6 +41,7 @@ components: - id - objectInstanceId - criteria + - callbackUri - _links properties: id: @@ -47,10 +52,21 @@ components: description: | Identifier of the VIM instance associated with the capacity threshold. $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier + subObjectInstanceIds: + description: | + Identifiers of the sub-object instances of the measured object instance associate with this capacity threshold. + If this attribute is absent, measurements are taken for all sub-object instances of the measured object instance. + type: array + items: + $ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim criteria: description: | Criteria that define this capacity threshold. $ref: '#/components/schemas/CapacityThresholdCriteria' + callbackUri: + description: | + The URI of the endpoint to send the notification to. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri _links: type: object description: | @@ -81,10 +97,27 @@ components: description: | Identifier of the VIM instance associated with this capacity threshold. $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier + subObjectInstanceIds: + description: | + Identifiers of the sub-object instances of the measured object instance associate with this capacity threshold. + If this attribute is absent, measurements will be taken for all sub-object instances of the measured object instance. + type: array + items: + $ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim criteria: description: | Criteria that define this capacity threshold. $ref: '#/components/schemas/CapacityThresholdCriteria' + callbackUri: + description: | + The URI of the endpoint to send the notification to. + $ref: ../../definitions/SOL005_def.yaml#/definitions/Uri + authentication: + description: | + Authentication parameters to configure the use of Authorization when sending notifications corresponding to + this capacity threshold, as defined in clause 8.3.4 of ETSI GS NFV-SOL 013. + This attribute shall only be present if the API consumer requires authorization of notifications. + $ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication NfviCapacityInfoSubscription: type: object @@ -151,10 +184,11 @@ components: required: - id - notificationType - - subscriptionId + - thresholdId - timeStamp - direction - capacityInformation + - objectInstanceId properties: id: description: | @@ -166,26 +200,24 @@ components: Discriminator for the different notification types. Shall be set to "CapacityShortageNotification" for this notification type. type: string - subscriptionId: + thresholdId: description: | - Identifier of the subscription that this notification relates to. + Identifier of the threshold which has been crossed $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier timeStamp: description: | Date and time of the generation of the notification. $ref: ../../definitions/SOL005_def.yaml#/definitions/DateTime - resourceZoneId: + objectInstanceId: description: | - Identifies the resource zone in which the available NFVI capacity has crossed a threshold value. - Cardinality is 0 if the subscription does not specify a particular resource zone and the overall available - NFVI capacity has crossed the threshold. + Identifies the VIM’s NFVI capacity information instance (measured object instance) in which the available + NFVI capacity has crossed a threshold value. $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier - vimId: + subObjectInstanceId: description: | - Identifies the VIM in which the available NFVI capacity has crossed a threshold value. - Cardinality is 0 if the subscription does not specify a particular VIM and the overall available NFVI capacity - has crossed the threshold. - $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier + Identifier of the sub-object of the measured object to which the measurement applies. + Refer to the definition of the "CapacityThreshold" in clause 10.5.2.7. + $ref: ../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim direction: description: | Specifies if the threshold has been crossed in UP or DOWN direction. @@ -196,13 +228,26 @@ components: capacityInformation: description: | Information about the available, reserved, allocated/used, and total capacity of the NFVI. - If the subscription does specify a resource zone and/or vimId, the information is provided for the resource - zone/vimId where the NFVI capacity has crossed the threshold. - type: object + If the threshold creation process does specify a resource zone and/or vimId, the information is provided + for the resource zone/vimId where the NFVI capacity has crossed the thresholdas indicated by the + "subObjectInstanceId" and "objectInstanceId" attributes. + $ref: "#/components/schemas/NfviCapacityMeasurement" _links: description: | Links to resources related to this notification. type: object + required: + - threshold + properties: + objectInstance: + description: | + Link to the resource representing the measured object instance to which the notified change applies. + Shall be present if the measured object instance information is accessible as a resource. + $ref: ../../definitions/SOL005_def.yaml#/definitions/NotificationLink + threshold: + description: | + Link to the resource that represents the threshold that was crossed. + $ref: ../../definitions/SOL005_def.yaml#/definitions/NotificationLink NfviCapacityInfoNotificationsFilter: type: object @@ -230,10 +275,6 @@ components: - capacityMetric - thresholdType properties: - resourceZoneId: - description: | - Defines the resource zone of the NFVI capacity information for which the capacity threshold applies. - $ref: ../../definitions/SOL005_def.yaml#/definitions/Identifier capacityMetric: description: | Defines the capacity metric for which the threshold applies. @@ -271,6 +312,8 @@ components: Type of capacity 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. type: string enum: - SIMPLE @@ -360,6 +403,8 @@ components: description: | Name of the capacity measurement. Different resource types can have different associated capacity measurements, typically associated to different sub-types of the resource type. + The present document and referred documents do not specify the capacity measurements, thus the capacity + measurement names are not specified in the present document version. type: string totalCapacity: description: | @@ -391,4 +436,22 @@ components: - VR_COMPUTE - VR_NETWORK - VR_STORAGE - - HOST_COMPUTE \ No newline at end of file + - HOST_COMPUTE + + CapacityThresholdModifications: + description: | + This type represents modifications to a capacity threshold. It shall comply with the provisions defined in table 10.5.2.8-1. + type: object + properties: + callbackUri: + description: | + New value of the "callbackUri" attribute. The value "null" is not permitted. + At least one of the attributes defined in this type shall be present in request bodies. + $ref: ../../definitions/SOL005_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. + $ref: ../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index 636048d..6d52d09 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -13,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: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 005 V3.3.1 diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml index 6019c86..802ad3d 100644 --- a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml +++ b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml @@ -201,7 +201,7 @@ definitions: type: string nsdId: description: > - Identifier of the NSD on which the NS instance is based. + Identifier of the NSD on which the NS instance is based. The value is copied from the NSD. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" nsdInfoId: description: > @@ -386,16 +386,17 @@ definitions: vnfInstanceName: description: > Name of the VNF instance. - This attribute can be modified with the PATCH method. + Modifications to this attribute can be requested using the "ModifyVnfInfoData" structure. type: string vnfInstanceDescription: description: > Human-readable description of the VNF instance. - This attribute can be modified with the PATCH method. + Modifications to this attribute can be requested using the "ModifyVnfInfoData" structure. type: string vnfdId: description: > Identifier of the VNFD on which the VNF instance is based. + Modifications to this attribute can be requested using the "ModifyVnfInfoData" structure. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" vnfProvider: description: > @@ -418,8 +419,6 @@ definitions: Identifier of information held by the NFVO about the specific VNF package on which the VNF is based. This identifier has been allocated by the NFVO. - This attribute can be modified with the PATCH - method. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" vnfConfigurableProperties: description: > @@ -457,7 +456,7 @@ definitions: set to true, auto-healing is currently enabled. If set to false, auto-healing is currently disabled. - These attributea can be modified with the PATCH method. + Modifications to this attribute can be requested using the "ModifyVnfInfoData" structure. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" vimId: description: > @@ -507,6 +506,9 @@ definitions: extCpInfo: description: > 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: @@ -567,8 +569,6 @@ definitions: description: > Additional VNF-specific attributes that provide metadata describing the VNF instance. - Metadata that are writeable are declared in the - VNFD (see note 2). These attributes represent values that are stored persistently in the VnfInstance structure for consumption by functional blocks that @@ -579,10 +579,8 @@ definitions: effect on the VNF instance, it only affects the information represented in the VnfInstance structure. - Metadata that are writeable are declared in the - VNFD (see note 2). - These attributes can be modified with the - PATCH method + Metadata that the VNF provider foresees are expected to be declared in the VNFD. + Modifications to these attributes can be requested using the "ModifyVnfInfoData" structure. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" extensions: description: > @@ -593,9 +591,8 @@ definitions: 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. - Extensions that are writeable are declared in the VNFD. - This attribute 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. + Extensions that are allowed for the VNF are declared in the VNFD. + Modifications to these attributes can be requested using the "ModifyVnfInfoData" structure. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" LccnLinks: @@ -1016,16 +1013,22 @@ definitions: description: > Identifier of the external CP instance and the related information instance. $ref: "#/definitions/IdentifierInVnf" - vnfdId: - description: > - Identifier of the VNFD. - Shall be present in case the value differs from the vnfdId attribute of the VnfInstance (e.g. during a - "Change current VNF package" operation or due to its final failure). - $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" cpdId: description: > Identifier of the external CPD, VnfExtCpd, in the VNFD. $ref: "../../definitions/SOL005_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: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + vnfdId: + description: > + Identifier of the VNFD. + Shall be present in case the value differs from the vnfdId attribute of the + VnfInstance (e.g. during a "Change current VNF package" operation or due to + its final failure). + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" cpProtocolInfo: description: > Network protocol information for this CP. @@ -1049,7 +1052,7 @@ definitions: Shall be present in case this CP instance maps to a VNFC CP(s). The attributes "associatedVnfcCpId" and "associatedVnfVirtualLinkId" are mutually exclusive. One and only one shall be present. - $ref: "#/definitions/IdentifierInVnf" + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" associatedVnfVirtualLinkId: description: > Identifier of the "VnfVirtualLinkResourceInfo" structure that represents @@ -1057,7 +1060,7 @@ definitions: present in case this CP instance maps to an internal VL. The attributes "associatedVnfcCpId" and "associatedVnfVirtualLinkId" are mutually exclusive. One and only one shall be present. - $ref: "#/definitions/IdentifierInVnf" + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" CpGroupInfo: description: > @@ -1362,6 +1365,12 @@ 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, as + specified in clause 5.5.3.2 of ETSI GS NFV-SOL 003. + $ref: "#/definitions/VnfExtCpData" ExtLinkPortInfo: description: > @@ -1549,8 +1558,12 @@ definitions: description: > 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. + 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 @@ -1569,20 +1582,23 @@ definitions: $ref: "../../definitions/SOL005_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. + 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 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: "#/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. 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: "#/definitions/IdentifierInVnf" metadata: description: > @@ -2546,6 +2562,10 @@ definitions: extManagedVirtualLinks: description: > information about internal VLs that are managed by NFVO. + 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 + xternally-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 @@ -2561,13 +2581,13 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" extensions: description: > - This attribute provides values for the "vnfConfigurableProperties" input parameter of the Change VNF Flavour + This attribute provides values for the "extensions" input parameter of the Change VNF Flavour operation defined in ETSI GS NFV-SOL 003. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" vnfConfigurableProperties: description: > - This attribute provides values for the "extensions" input parameter of the Change VNF Flavour operation defined - in ETSI GS NFV-SOL 003. + This attribute provides values for the "vnfConfigurableProperties" input parameter of the Change VNF Flavour + operation defined in ETSI GS NFV-SOL 003. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" OperateVnfData: @@ -3123,10 +3143,13 @@ definitions: - LINK_PORT_REMOVED linkPortIds: description: > - Identifiers of the link ports of the affected VL (reference to the nsLinkPortInfo) related to the change. - Shall be set when changeType is equal to "ADD_LINK_PORT" or "REMOVE_LINK_PORT", and the related linkPort + Identifiers of the link ports of the affected VL related to the change. + Each identifier references an "NsLinkPortInfo" structure. + Shall be set when changeType is equal to "ADD_LINK_PORT" or "REMOVE_LINK_PORT", and the related "NsLinkPortInfo" structures are present (case "add") or have been present (case "remove") in the NsVirtualLinkInfo structure that is represented by the "virtualLink¬Info" attribute in the "NsInstance" structure. + The resource handles of the affected NS link ports can be found by dereferencing the identifiers in the + "linkPortIds" attribute. type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNs" @@ -3647,6 +3670,11 @@ definitions: This attribute shall only be present if the subscriber requires authorization of notifications. $ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication" + verbosity: + description: > + This attribute signals the requested verbosity of LCM operation occurrence notifications. + If it is not present, it shall default to the value "FULL". + $ref: "#/definitions/LcmOpOccNotificationVerbosityType" LccnSubscription: description: > @@ -3673,6 +3701,10 @@ definitions: description: > The URI of the endpoint to send the notification to. $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" + verbosity: + description: > + This attribute signals the verbosity of LCM operation occurrence notifications. + $ref: "#/definitions/LcmOpOccNotificationVerbosityType" _links: description: > Links to resources related to this resource. @@ -4547,8 +4579,19 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" cpConfig: description: > - List of instance data that need to be configured on the CP instances - created from the respective CPD. + Map of instance data that need to be configured on the CP instances 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). + 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. + 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. type: array items: $ref: "#/definitions/VnfExtCpConfig" @@ -4581,27 +4624,17 @@ 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 + anyOf: + - required: + - linkPortId + - required: + - cpProtocolData properties: - id: - description: > - Identifier of the "VnfExtCpConfig" entry. Managed by the API consumer. - In case the NFVO manages its own identifier space, the NFVO may remap this identifier when communicating with - the VNFM. If the NFVO knows that there can be an identifier collision when communicating with the VNFM by using - the identifier from the OSS/BSS, the NFVO shall remap it. - $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 subport 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. + Value of the key that identifies to the "VnfExtCpConfig" entry that corresponds to the parent port of the trunk. + Only present in "VnfExtCpConfig" map structures which provide configuration information for a CP which represents + a subport in a trunk, and if parent ports are supported. $ref: "#/definitions/IdentifierInVnf" linkPortId: description: > @@ -4609,12 +4642,9 @@ definitions: will be associated. The following conditions apply to the attributes "linkPortId" and "cpProtocolData": - * The "linkPortId" and "cpProtocolData" attributes shall both be - absent for the deletion of an existing external CP instance - addressed by cpInstanceId. - * At least one of these attributes shall be present for a - to-be-created external CP instance or an existing external - CP instance. + * 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. * If the "linkPortId" attribute is absent, the VNFM shall create a link port. * If the "cpProtocolData" attribute is absent, the "linkPortId" @@ -4631,13 +4661,19 @@ definitions: 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": - * The "linkPortId" and "cpProtocolData" attributes shall both be absent for the deletiondisconnection of an - existing external CP instance addressed by "cpInstanceId" from a particular external virtual link, and - deletion of that instance in case it represents a subport. - * At least one of these attributes shall be present for a to-be-createdan 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 + * 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. + * If the "linkPortId" attribute is absent, the VNFM shall create a + link port. + * 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. + * 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". type: array items: $ref: "#/definitions/CpProtocolData" @@ -4750,12 +4786,28 @@ definitions: description: > Identifier of the "Individual VNF snapshot" resource. This identifier is allocated by the VNFM. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfSnapshotPkgId: + description: > + Identifier of the VNF snapshot package information held by the NFVO. Shall be present when the + "Individual VNF snapshot" resource is created from a VNF snapshot package extraction. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" vnfSnapshot: description: > 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 on a VNFM, either 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/SOL005_def.yaml#/definitions/Link" VnfSnapshot: description: > @@ -4778,13 +4830,13 @@ definitions: description: > Identifier of the snapshotted VNF instance. $ref: "../../definitions/SOL005_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/SOL005_def.yaml#/definitions/DateTime" - createdAt: + creationFinishedAt: description: > - Timestamp indicating when the VNF Snapshot has been created. + Timestamp indicating when the VNF Snapshot has been completed by the VNFM. $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" vnfdId: description: > @@ -4843,7 +4895,10 @@ definitions: description: | This type provides protocol specific information about the connectivity to the WAN of network resources realizing a VL, e.g., when the VL is deployed on several sites and across a WAN, and the related multi-site connectivity - service (MSCS) enabling the connectivity through the WAN. It shall comply with the provisions defined in table 6.5.3.91-1. + service (MSCS) enabling the connectivity through the WAN. This type supports providing information about both + pre-provisioned WAN connectivity realized by external entities to NFV-MANO but parts of such connectivity is known + to the NFVO, as well as information about MSCS created under NFV-MANO responsibility (i.e., connectivity is realized + when NFVO communicates with the WIM). It shall comply with the provisions defined in table 6.5.3.91-1. type: object properties: mscsInfo: @@ -5021,6 +5076,11 @@ definitions: Identifier of information held by the VNFM about the VNF Snapshot to be reverted. This identifier was allocated by the VNFM. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + additionalParams: + description: > + 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/SOL005_def.yaml#/definitions/KeyValuePairs" CreateVnfSnapshotData: description: > @@ -5065,28 +5125,31 @@ definitions: description: > Identifier of the snapshotted VNFC instance. $ref: "#/definitions/IdentifierInVnf" - triggeredAt: + creationStartedAt: description: > - Timestamp indicating when the VNFC Snapshot creation has been started. + Timestamp indicating when the VNFC Snapshot creation has been started by the VNFM. $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" - createdAt: + creationFinishedAt: description: > - Timestamp indicating when the VNFC Snapshot has been completed. + Timestamp indicating when the VNFC Snapshot has been completed by the VNFM. $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" - vnfcInfoId: + vnfcResourceInfoId: description: > - Reference to the information of the snapshotted VNFC instance. + Reference to the "VnfcResourceInfo" 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/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. + 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/SOL005_def.yaml#/definitions/ResourceHandle" storageSnapshotResources: description: > - Mapping of the storage resources associated to the VNFC with the storage snapshot resources. + Reference to the "VirtualStorageResourceInfo" structure in the "VnfInstance" structure that represents + the virtual storage resource. type: array items: type: object @@ -5103,7 +5166,7 @@ definitions: 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. + has been newly created by the VNFM as a result of the "Create VNF snapshot task". $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" userDefinedData: description: > @@ -5139,18 +5202,25 @@ 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 7396 [11], 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: "../../definitions/SOL005_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 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. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" extensions: description: > - This attribute signals the content of the "extensions" 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 "extensions" 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 7396 [11], 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: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" vnfdId: description: > @@ -5160,15 +5230,15 @@ 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. + 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: 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. + 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: string vnfSoftwareVersion: description: > @@ -5188,8 +5258,10 @@ definitions: WanConnectionProtocolData: description: > This type provides protocol specific information used to connect the comprising network resources realizing a VL, - e.g., when the VL is deployed on several sites and across a WAN. It shall comply with the provisions defined in - table 6.5.3.81-1. + e.g., when the VL is deployed on several sites and across a WAN. This type supports signalling input information + about both pre-provisioned WAN connectivity realized by external entities to NFV-MANO, as well as for the creation + of MSCS under NFV-MANO responsibility (i.e., when connectivity is realized when NFVO communicates with the WIM). + It shall comply with the provisions defined in table 6.5.3.81-1. type: object anyOf: - required: @@ -5246,8 +5318,8 @@ definitions: The type of connectivity that is provided to the virtualized networks in the NFVI-PoP and characterizes the connectivity service across the WAN. Permitted values: - - L2VPN - - L3VPN + - L2 + - L3 type: string enum: - L2VPN @@ -5256,14 +5328,16 @@ definitions: description: > Type of underlying connectivity service and protocol associated to the MSCS. Permitted values are as listed below and restricted by the type of MSCS: - - EVPN: as specified in IETF RFC 7432. Only applicable for mscsType="L2VPN". - - VPLS_BGP: as specified in IETF RFC 4761 and IETF RFC 6624. Only applicable for mscsType="L2VPN". - - VPLS_LDP: as specified in IETF RFC 4762. Only applicable for mscsType="L2VPN". - - VPWS: as specified in IETF RFC 6074. Only applicable for mscsType="L2VPN". - - BGP_IP_VPN: BGP/MPLS based IP VPN as specified in IETF RFC 4364. Only applicable for mscsType="L3VPN". + - EVPN_BGP_MPLS: as specified in IETF RFC 7432. Only applicable for mscsType="L2". + - EVPN_VPWS: as specified in IETF RFC 8214. Only applicable for mscsType="L2". + - VPLS_BGP: as specified in IETF RFC 4761 and IETF RFC 6624. Only applicable for mscsType="L2". + - VPLS_LDP_L2TP: as specified in IETF RFC 4762. Only applicable for mscsType="L2". + - VPWS_LDP_L2TP: as specified in IETF RFC 6074. Only applicable for mscsType="L2". + - BGP_IP_VPN: BGP/MPLS based IP VPN as specified in IETF RFC 4364. Only applicable for mscsType="L3". type: string enum: - - EVPN + - EVPN_BGP_MPLS + - EVPN_VPWS - VPLS_BGP - VPLS_LDP - VPWS @@ -5433,31 +5507,60 @@ definitions: - ETH - VLAN - VXLAN - taggingType: + vlanTaggingType: description: > - Type of encapsulation method for VLAN tagging. Shall be present if interfaceTagging="TAGGED". + Type of encapsulation method for VLAN tagging. Shall be present if interfaceTagging="TAGGED" and + encapsulationType="VLAN". Permitted values: - - DOT1Q - - QINQ + - DOT1Q: used when packets on the CSE are encapsulated with one or a set of customer VLAN identifiers. + - QINQ: used when packets on the CSE are encapsulated with multiple customer VLAN identifiers and a single + service VLAN identifier. + - QINANY: used when packets on the CSE have no specific customer VLAN and a service VLAN identifier is used. type: string enum: - DOT1Q - QINQ + - QINANY wanSegmentIds: description: > - Segment identifiers to pass on the tagged interface. Shall be present if encapsulationType="VLAN". + Segment identifiers to pass on the tagged interface. Shall be present if encapsulationType="VLAN" or “VXLAN". type: object required: - wanSegmentIdValue properties: wanSegmentIdValue: description: > - Identifier of the network segment. + Identifier of the network segment (e.g., VLAN id or VNI). type: string wanSegmentIdUpperRange: description: > Identifier of the upper range network segment, in case the "wanSegmentIds" is used to define a range. type: string + vxlanConfig: + description: > + Additional configuration needed when using VXLAN encapsulation. Shall be present if interfaceTagging="TAGGED" + and encapsulationType="VXLAN". + type: object + required: + - peerMode + properties: + peerMode: + description: > + Type of VXLAN access mode. Default value is "STATIC". + + Permitted values: + - STATIC + - BGP_EVPN + type: string + enum: + - STATIC + - BGP_EVPN + peers: + description: > + List of IP addresses of VTEP peers when using static mode. + type: array + items: + $ref: "#/definitions/IpAddress" lagInterfaceData: description: > Information for setting up a LAG interface aggregating multiple connectivity service endpoints. @@ -5487,12 +5590,12 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" layer2ControlProtocol: description: > - Configuration enabling the control plane protocol in between the NFVI-PoP network gateway and the WAN. - type: object + Configuration enabling the L2 control protocol in between the NFVI-PoP network gateway and the WAN. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" mtuL2: description: > Maximum Transmission Unit (MTU) that can be forwarded at layer 2 (in bytes). Default value is "1500" (bytes). - type: number + type: virtualRoutingAndForwarding: description: > Configuration related to the L2 virtual routing and forwarding (MAC-VRF). @@ -5507,7 +5610,9 @@ definitions: forwardingConfig: description: > Information related to the forwarding of the VN in the NFVI-PoP to the connectivity service endpoint, - if information about the VN to "stitch" is already known. + if information about the VN to "stitch" is already known. . by the OSS/BSS. Shall not be provided otherwise, + in which case the NFVO will infer the forwarding configuration based on the NS VL, or external VL, or + externally-managed VL provisioning. type: object oneOf: - required: @@ -5571,6 +5676,7 @@ definitions: type: object required: - routingProtocol + - routingAddressFamily properties: routingProtocol: description: > @@ -5667,6 +5773,32 @@ definitions: description: > Maps of routes that are permitted or denied for redistribution. type: object + required: + - policy + - sequence + - matchAndSetRule + properties: + policy: + description: > + The policy to apply to the route distribution. + + Permitted values: + - PERMIT + - DENY + type: string + enum: + - PERMIT + - DENY + sequence: + description: > + Sequence or index number assigned to the route-map. + type: number + matchAndSetRule: + description: > + Set of "match" and "set" rules for the distribution of routing information. "Match" key entries define + the routes that are selected. "Set" key entries define what information to modify when distributing the + routing information. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" mtuL3: description: > Maximum Transmission Unit (MTU) that can be forwarded at layer 3 (in bytes). Default value is "1500" (bytes). @@ -5700,12 +5832,12 @@ definitions: The type of connectivity that is requested to be provided to the virtualized networks in the NFVI-PoP and characterizes the connectivity service across the WAN. Permitted values: - - L2VPN - - L3VPN + - L2 + - L3 type: string enum: - - L2VPN - - L3VPN + - L2 + - L3 siteAccessProtectionSchemes: description: > Information to determine the proper MSCS endpoints configuration to fulfil certain resiliency/protection @@ -5762,16 +5894,18 @@ definitions: description: > Type of underlying connectivity service and protocol associated to the type of MSCS. Permitted values are as listed below and restricted by the type of MSCS: - - EVPN: as specified in IETF RFC 7432. + - EVPN_BGP_MPLS: as specified in IETF RFC 7432. + - EVPN_VPWS: as specified in IETF RFC 8214. - VPLS_BGP: as specified in IETF RFC 4761 and IETF RFC 6624. - - VPLS_LDP: as specified in IETF RFC 4762. - - VPWS: as specified in IETF RFC 6074. + - VPLS_LDP_L2TP: as specified in IETF RFC 4762 and IETF RFC 6074. + - VPWS_LDP_L2TP: as specified in IETF RFC 6074. type: string enum: - - EVPN + - EVPN_BGP_MPLS + - EVPN_VPWS - VPLS_BGP - - VPLS_LDP - - VPWS + - VPLS_LDP_L2TP + - VPWS_LDP_L2TP isSegmentPreservation: description: > Indicates the requirement of whether to ensure network segment (e.g., VLAN id) preservation across the MSCS @@ -5928,4 +6062,16 @@ definitions: locationConstraints: description: > Defines the location constraints for the nested NS instance to be created based on the NS profile. - $ref: "#/definitions/LocationConstraints" \ No newline at end of file + $ref: "#/definitions/LocationConstraints" + + LcmOpOccNotificationVerbosityType: + description: > + The enumeration LcmOpOccNotificationVerbosityType provides values to control the verbosity of LCM operation + occurrence notifications. It shall comply with the provisions defined in table 6.5.4.11-1. + * FULL: This signals a full notification which contains all change details. + * SHORT: This signals a short notification which omits large-volume change details to reduce the size of data to + be sent via the notification mechanism. + type: string + enum: + - FULL + - SHORT \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml index d365627..41aecb0 100644 --- a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml +++ b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml @@ -10,7 +10,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: 2.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: description: ETSI GS NFV-SOL 005 V3.3.1 diff --git a/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml b/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml index 3888100..90030db 100644 --- a/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml +++ b/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml @@ -75,10 +75,22 @@ definitions: NS is modified as a result of an operation on its composite NS. Set to false otherwise. $ref: "../../definitions/SOL005_def.yaml#/definitions/Boolean" + verbosity: + description: > + This attribute signals the verbosity of the notification. + If it is not present, it shall default to the value "FULL". + If the value is "SHORT", full change details can be obtained by performing a GET request on the + "Individual LCM operation occurrence" resource that is signalled by the "nsLcmOpOcc" child attribute + of the "_links" attribute. + $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LcmOpOccNotificationVerbosityType" affectedVnf: description: > Information about the VNF 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 NS LCM + operation occurrence and by any of the error handling procedures for that operation occurrence. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnf" @@ -86,6 +98,10 @@ definitions: description: > Information about the PNF 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 NS LCM + operation occurrence and by any of the error handling procedures for that operation occurrence. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedPnf" @@ -93,6 +109,10 @@ definitions: description: > Information about the VL 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 NS LCM + operation occurrence and by any of the error handling procedures for that operation occurrence. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink" @@ -100,21 +120,31 @@ definitions: description: > Information about the VNFFG 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 NS LCM + operation occurrence and by any of the error handling procedures for that operation occurrence. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnffg" affectedNs: description: > Information about the SAP instances that were affected - during the lifecycle operation. See note. + 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 NS LCM + operation occurrence and by any of the error handling procedures for that operation occurrence. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedNs" affectedSap: description: > Information about the SAP 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. + 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 NS LCM + operation occurrence and by any of the error handling procedures for that operation occurrence. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedSap" @@ -163,7 +193,9 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" nsInstanceId: description: > - The created NS instance identifier + The created NS instance identifier. + Shall be set to the same "id" attribute value of the associated "NsInstance" representation of the + "Individual NS instance" resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" _links: description: > @@ -203,7 +235,9 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" nsInstanceId: description: > - The created NS instance identifier + The deleted NS instance identifier. + Shall be set to the same "id" attribute value of the associated "NsInstance" representation of the + "Individual NS instance" resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" _links: description: > diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index 547dabf..44d1b2c 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -70,6 +70,9 @@ paths: summary: Create a new individual VNF package resource. description: | The POST method creates a new individual VNF package resource. + Upon successful creation of the "Individual VNF package" resource, the NFVO shall set the "onboardingState" + attribute in the "VnPkgInfo" structure to "CREATED", the "operationalState" attribute to "DISABLED", and the + "usageState" attribute to "NOT_IN_USE". parameters: - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept @@ -519,7 +522,9 @@ paths: package, if the package references external artifacts, the NFVO shall obtain the external artifacts. Subsequently, upon success, the NFVO shall set that attribute to "PROCESSING" and shall process the package, which shall include checking package consistency. Upon successful processing, the NFVO shall set the "onboardingState" attribute to - "ONBOARDED". If an error occurs during obtaining the package, downloading the external artifacts or processing + "ONBOARDED", the "operationalState" attribute to "ENABLED", and the "usageState" attribute to "NOT_IN_USE". + In addition, the NFVO shall set the value of the attributes in the "VnfPkgInfo" that are copied from the VNFD + (refer to clause 9.5.2.5). If an error occurs during obtaining the package, downloading the external artifacts or processing the package, the NFVO shall set the "onboardingState" attribute to "ERROR" and shall populate the "onboardingFailureDetails" attribute in "VnfPkgInfo". parameters: @@ -758,7 +763,7 @@ components: name: artifactPath in: path description: | - For an artifact contained as a file in the VNF package, this variable shall contain a sequence of one or path + For an artifact contained as a file in the VNF package, this variable shall contain a sequence of one or more path segments representing the path of the artifact within the VNF package, relative to the root of the package. See note 3. EXAMPLE: foo/bar/m%40ster.sh For an external artifact represented as a URI in the VNF package manifest, this variable shall contain a sequence of one or more path segments as synthesized by the NFVO (see clause 9.5.3.3), @@ -774,7 +779,7 @@ components: in: path description: | Identifier of this subscription. This identifier can be retrieved from the resource referenced by the "Location" - HTTP header in the response to a POST request creating a new subscription resource. It can also be retrieved + 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. required: true style: simple @@ -1337,7 +1342,7 @@ components: 201 Created Shall be returned when the subscription has been created successfully. The response body shall contain a representation of the created "Individual subscription" resource. The HTTP response shall include a "Location" - HTTP header that points to the created subscription resource. + HTTP header that points to the created resource. headers: Version: description: | diff --git a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml index 23e1b51..1e72448 100644 --- a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml +++ b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml @@ -150,7 +150,7 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" vnfd: description: > - Link to the VNFD resource. + Link to the "VNFD in an individual VNF package" resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" packageContent: description: > @@ -159,7 +159,7 @@ definitions: VnfPackageArtifactInfo: description: > - This type represents an artifact other than a software image which is contained in a VNF package. + This type represents an artifact other than a software image which is contained in or external to a VNF package. It shall comply with provisions defined in Table 9.5.3.3-1. required: - isEncrypted @@ -175,7 +175,7 @@ definitions: attribute shall start with the name of the first segment in the path in the package, i.e. it shall not be prefixed by path separator characters such as "." and "/". - EXAMPLE: foo/bar/m@ster + EXAMPLE: foo/bar/m@ster.sh For an external artifact represented as a URI in the VNF descriptor, this attribute shall be present if the artifact has been downloaded by the NFVO and shall be absent @@ -244,8 +244,8 @@ definitions: vnfPackage: description: > Link to the resource representing the VNF package to - which the notified change applies, i.e. the individual on boarded - VNF package resource that represents the VNF package. + which the notified change applies, i.e. the "Individual + VNF package" resource that represents the VNF package. $ref: "../../definitions/SOL005_def.yaml#/definitions/NotificationLink" subscription: description: > @@ -254,7 +254,7 @@ definitions: VnfPackageSoftwareImageInfo: description: > - This type represents an artifact contained in a VNF package which represents a software image. + This type represents an artifact contained in or external to a VNF package which represents a software image. required: - id - name @@ -371,10 +371,27 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" imagePath: description: > - Path in the VNF package, which identifies the image - artifact and also allows to access a copy of the image - artifact. + Path, which identifies the image artifact and also allows to access a copy of the image artifact. + For a software image contained as a file in the VNF package, this attribute shall be present, and the value of + this attribute shall start with the name of the first segment in the path in the package, i.e., it shall not + be prefixed by path separator characters such as "." and "/". + + EXAMPLE: foo/bar/m%40ster.vhd + + For an external software image represented as a URI in the VNF descriptor, this attribute shall be present if + the image artifact has been downloaded by the NFVO and shall be absent otherwise. If present, it shall contain + the artifactPath under which the image artifact can be obtained using the "Individual artifact in a VNF package" + resource defined in clause 9.4.7. It is the responsibility of the NFVO to synthesize this path in a manner that + avoids any collision of the synthesized artifact path with the paths and names of image artifacts included in + the package. type: string + imageUri: + description: > + URI of the image artifact as defined in the VNF package manifest. Shall be present if the image artifact is + external to the VNF package and shall be absent otherwise. + + EXAMPLE: https://example.com/m%40ster.vhd + $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" NsdOperationalStateType: type: "string" @@ -414,14 +431,14 @@ definitions: - PROCESSING - ONBOARDED - ERROR + PackageUsageStateType: - type: "string" + type: string description: > "The enumeration PackageUsageStateType shall comply with the provisions. Acceptable values are: - - IN_USE: The VNF package is enabled, i.e. it can be used for the creation of new "Individual VNF instance" resources. - - NOT_IN_USE: The VNF package is disabled, i.e. it shall not be used for the creation of further - "Individual VNF instance" resources (unless and until the VNF package is re enabled). + - IN_USE: "Individual VNF instance" resources created from this VNF package exist. + - NOT_IN_USE: No "individual VNF instance" resource created from this VNF package exists. enum: - IN_USE - NOT_IN_USE @@ -540,7 +557,7 @@ definitions: properties: id: description: > - Identifier of this subscription resource + Identifier of this "Individual subscription" resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" filter: description: > @@ -741,7 +758,7 @@ definitions: properties: artifact: description: > - Access configuration information for an external artefact. + Access configuration information for an external artifact. type: object required: - artifactUri diff --git a/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml b/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml index 11c6f48..373a045 100644 --- a/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml +++ b/src/SOL005/VNFPackageManagementNotification/definitions/SOL005VNFPackageManagementNotification_def.yaml @@ -75,7 +75,7 @@ definitions: mandatory. The notification shall be triggered by the NFVO when there is a change in the status of an onboarded VNF package, as follows. • The "operationalState" attribute of a VNF package has changed, and the "onboardingState" attribute of the - package has the value "ONBOARDED". + package has the value "ONBOARDED" (i.e. the package has been onboarded previously). • The on-boarded VNF package has been deleted, and the "onboardingState" attribute of the deleted package had the value "ONBOARDED". type: object diff --git a/src/SOL005/components/SOL005_params.yaml b/src/SOL005/components/SOL005_params.yaml index 78d6d0c..3545a01 100644 --- a/src/SOL005/components/SOL005_params.yaml +++ b/src/SOL005/components/SOL005_params.yaml @@ -112,9 +112,9 @@ components: - virtualLinkInfo - vnffgInfo - sapInfo - - vnfSnapshotInfo - nsScaleStatus - additionalAffinityOrAntiAffinityRules + - wanConnectionInfo required: false schema: type: string -- GitLab