diff --git a/Readme.md b/Readme.md index 2d91c95f1d9f3e8abed6c2ed0f245ea4eef4225c..79f29dce4579a17188cc0dd23e8a00a7e85816d6 100644 --- a/Readme.md +++ b/Readme.md @@ -30,7 +30,7 @@ and the results will be stored in a `build/` directory in the project folder. ## How to raise issues -Change requests can be filed at [ETSI Forge Bugzilla](forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=62&product=NFV). Please report errors, bugs or other issues [here](https://forge.etsi.org/bugzilla/enter_bug.cgi?product=NFV). +Please report errors, bugs or other issues [here](https://forge.etsi.org/rep/nfv/SOL005/-/issues). ## How to contribute diff --git a/docker/Dockerfile b/docker/Dockerfile index 9b3d8380bbce4da5163ba8292cbefad5963ab448..b2bc21580d5bfed368756d3b9ca38b3051a135d3 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -12,7 +12,7 @@ RUN apk add asciidoctor RUN apk add openjdk8 RUN apk add ca-certificates wget && update-ca-certificates RUN apk add openssl -RUN gem install rdoc --pre || gem install rdoc --pre +RUN gem install rdoc -v 6.3.3 || gem install rdoc -v 6.3.3 RUN gem install asciidoctor-pdf-cjk RUN wget https://forge.etsi.org/swagger2markup-cli-1.3.2.jar RUN npm config set proxy $http_proxy diff --git a/src/SOL005/APIVersion/APIVersion.yaml b/src/SOL005/APIVersion/APIVersion.yaml index 3c27bffb5b8cffeb1125b688b5fd12c76b33cc13..bec77fe1070f37c35112864e5b3b5a97730348f6 100644 --- a/src/SOL005/APIVersion/APIVersion.yaml +++ b/src/SOL005/APIVersion/APIVersion.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/ diff --git a/src/SOL005/NFVICapacityInformation/NFVICapacityInformation.yaml b/src/SOL005/NFVICapacityInformation/NFVICapacityInformation.yaml index a8c0da6c024bd4d2592bf4d8da23f70cb514bb4a..02364421f3d2bec2e31b2de442d5067c7d7e3fb5 100644 --- a/src/SOL005/NFVICapacityInformation/NFVICapacityInformation.yaml +++ b/src/SOL005/NFVICapacityInformation/NFVICapacityInformation.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/nfvici/v1 @@ -48,12 +48,12 @@ paths: capacity information available by the NFVO is requested. The following attribute names in the NfviCapacityInfo shall be supported by the NFVO in the filter expression: - - resourceZoneId - - vimId - - timeInterval - - resourceType - - capacityMeasurementName - - capacity values: {totalCapacity, allocatedCapacity, reservedCapacity, availableCapacity} + - resourceZoneId + - vimId + - timeInterval + - resourceType + - capacityMeasurementName + - capacity values: {totalCapacity, allocatedCapacity, reservedCapacity, availableCapacity} schema: type: string - $ref: ../components/SOL005_params.yaml#/components/parameters/all_fields @@ -67,9 +67,9 @@ paths: The following attributes shall be excluded from the NfviCapacityInfo structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - - capacityInfoPerZone - - totalCapacityInfo - - timeInterval + - capacityInfoPerZone + - totalCapacityInfo + - timeInterval schema: type: string - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker @@ -115,11 +115,11 @@ paths: capacity information available by the NFVO is requested. The following attribute names in the NfviCapacityInfo shall be supported by the NFVO in the filter expression: - - resourceZoneId - - timeInterval - - resourceType - - capacityMeasurementName - - capacity values: {totalCapacity, allocatedCapacity, reservedCapacity, availableCapacity} + - resourceZoneId + - timeInterval + - resourceType + - capacityMeasurementName + - capacity values: {totalCapacity, allocatedCapacity, reservedCapacity, availableCapacity} schema: type: string - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept @@ -592,11 +592,37 @@ components: explode: false schema: type: string + Etag: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + Last-Modified: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + If-Unmodified-Since: + description: The If-Unmodified-Since of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + If-Match: + description: The If-Match of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + content: application/json: schema: $ref: ./definitions/NFVICapacityInformation_def.yaml#/components/schemas/CapacityThresholdModifications + IndividualCapacityThreshold.Patch.412: description: | 412 PRECONDITION FAILED diff --git a/src/SOL005/NFVICapacityInformation/definitions/NFVICapacityInformation_def.yaml b/src/SOL005/NFVICapacityInformation/definitions/NFVICapacityInformation_def.yaml index 0416e51cc672c91137076f718d5873763b8930c2..01e053cac8e33651382ccdd493e81972a735f5e8 100644 --- a/src/SOL005/NFVICapacityInformation/definitions/NFVICapacityInformation_def.yaml +++ b/src/SOL005/NFVICapacityInformation/definitions/NFVICapacityInformation_def.yaml @@ -37,9 +37,9 @@ components: type: object description: | This type represents a capacity threshold. It shall comply with the provisions defined in table 10.5.2.8-1. - NOTE 1: The "objectInstanceId" aims to identify the "Individual VIM's NFVI capacity information", which is + NOTE 1: The "objectInstanceId" aims to identify the "Individual VIM's NFVI capacity information", which is associated to a VIM instance. - NOTE 2: The "subObjectInstanceIds" aim to identify the resource zones in which the available NFVI capacity + NOTE 2: The "subObjectInstanceIds" aim to identify the resource zones in which the available NFVI capacity crosses a threshold value. required: - id @@ -129,9 +129,9 @@ components: description: | This type represents criteria that define a capacity threshold. It shall comply with the provisions defined in table 10.5.3.3-1. - NOTE 1: In the present document, simple thresholds are defined. + NOTE 1: In the present document, simple thresholds are defined. The definition of additional threshold types is left for future specification. - NOTE 2: The hysteresis is defined to prevent storms of threshold crossing + NOTE 2: The hysteresis is defined to prevent storms of threshold crossing notifications. When processing a request to create a threshold, implementations should enforce a suitable minimum value for this attribute (e.g. override the value or reject the request). @@ -161,10 +161,10 @@ components: description: | The type of capacity for the threshold. Permitted values: - - TOTAL: for total capacity. - - ALLOCATED: for allocated/used capacity. - - RESERVED: for reserved capacity. - - AVAILABLE: for available capacity. + - TOTAL: for total capacity. + - ALLOCATED: for allocated/used capacity. + - RESERVED: for reserved capacity. + - AVAILABLE: for available capacity. type: string enum: - TOTAL @@ -175,7 +175,7 @@ components: description: | Type of capacity threshold. This attribute determines which other attributes are present in the data structure. Permitted values: - - SIMPLE: Single-valued static threshold. + - SIMPLE: Single-valued static threshold. See note 1. type: string enum: @@ -227,7 +227,7 @@ components: type: object description: | This type defines the format of a time interval. The type shall comply with the provisions defined in table 10.5.2.7-1. - NOTE: When only the startTime is present, there is no time interval being defined, and therefore the provided timing + NOTE: When only the startTime is present, there is no time interval being defined, and therefore the provided timing information refers to a specific point in time. required: - aTime @@ -248,7 +248,7 @@ components: description: | This type defines the format of the NFVI capacity information on a per resource type basis. The type shall comply with the provisions defined in table 10.5.2.6-1. - NOTE: The present document and referred documents do not specify the capacity measurements, + NOTE: 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. required: - resourceType @@ -302,7 +302,7 @@ components: CapacityThresholdModifications: description: | This type represents modifications to a capacity threshold. It shall comply with the provisions defined in table 10.5.2.8-1. - NOTE: At least one of the attributes defined in this type shall be present in request bodies. + NOTE: At least one of the attributes defined in this type shall be present in request bodies. type: object properties: callbackUri: diff --git a/src/SOL005/NFVICapacityInformationNotification/NFVICapacityInformationNotification.yaml b/src/SOL005/NFVICapacityInformationNotification/NFVICapacityInformationNotification.yaml index 38aaad72f0fe48404a6c82a695fd8e1ba7e2a772..98dd7afb2bdff41be9fbec773a38c71724347b39 100644 --- a/src/SOL005/NFVICapacityInformationNotification/NFVICapacityInformationNotification.yaml +++ b/src/SOL005/NFVICapacityInformationNotification/NFVICapacityInformationNotification.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/callback/v1 diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index 91038d476180334396c5cdc1b3a28ac53d1961f2..acd9e978486085acbdf5661c5bf875c11074cbfe 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/nsd/v2 @@ -97,8 +97,8 @@ paths: The following attributes shall be excluded from the NsdInfo structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - - userDefinedData - - onboardingFailureDetails + - userDefinedData + - onboardingFailureDetails schema: type: string - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker @@ -196,6 +196,11 @@ paths: delete: description: | The DELETE method deletes an individual NS descriptor resource. See clause 5.4.3.3.5. + An individual NS descriptor resource can only be deleted when there is no NS instance + using it (i.e. "nsdUsageState" = "NOT_IN_USE"), there is no NSD referring to it which + have a value of "strict NSD constituent onboarding" set to True and has been disabled + already (i.e. "nsdOperationalState" = "DISABLED"). Otherwise, the DELETE method shall + fail. responses: 204: $ref: '#/components/responses/IndividualNSDescriptor.Delete.204' @@ -265,8 +270,29 @@ paths: put: description: | The PUT method is used to upload the content of an NSD archive. See clause 5.4.4.3.3. + Whether all descriptors referenced from the NSD: VNFD, PNFD and NSD for nested NSs + shall be on-boarded before this operation depends on the value of "strict NSD + constituent onboarding" present in the NSD. + The user may use this operation to upload a new NSD version, which can be associated + to an NS instance with the Update NS operation (see clause 6.4.6). Different NSD + versions have the same "nsdInvariantId" attribute, but different "nsdId" attributes + and different NSD information objects. The design of different NSD versions and their + business logic is out of scope of the present document. + After a successful result, the NSD and those referenced descriptors that are already + on-boarded are known to and validated by the NFVO. The associated NSD information + object is updated with the information populated from the validated NSD. The NSD is + onboarded and is in "nsdOperationalState" = "ENABLED" and "nsdUsageState" = "NOT_IN_USE" + states, allowing its use for NS lifecycle management. See the NSD state model in clause + B.1.2. If there are on-boarded NSDs that refer to this NSD as a nested NSD, their + respective NsdInfo records are updated to refer to the on-boarded nested NSD. parameters: - $ref: '#/components/parameters/ContentTypeZip' + requestBody: + content: + application/zip: + schema: + type: string + format: binary responses: 202: $ref: '#/components/responses/NsdArchiveContent.Put.202' @@ -499,8 +525,8 @@ paths: The following attributes shall be excluded from the PnfdInfo structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - - userDefinedData - - onboardingFailureDetails + - userDefinedData + - onboardingFailureDetails schema: type: string - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker @@ -598,6 +624,9 @@ paths: delete: description: | The DELETE method deletes an individual PNF descriptor resource. See clause 5.4.6.3.5. + An individual PNF descriptor resource can only be deleted when there is no NS instance + using it or there is NSD referencing it which have a value of "strict NSD constituent + onboarding" set to True. responses: 204: $ref: '#/components/responses/IndividualPnfDescriptor.Delete.200' @@ -667,6 +696,15 @@ paths: put: description: | The PUT method is used to upload the content of a PNFD archive. See clause 5.4.7.3.3. + The user may use this operation to upload a new PNFD version. Different PNFD versions + have the same "pnfdInvariantId" attribute, but different "pnfdId" attributes and different + PNFD information objects. The design of different PNFD versions and their business logic + is out of scope of the present document. + Once on-boarded, the PNFD is known to and validated by the NFVO. The associated PNFD information + object is updated with the information populated from the validated PNFD. If there are on-boarded + NSDs that refer to this PNFD, their respective NsdInfo records are updated to refer to the + on-boarded PNFD. + parameters: - $ref: '#/components/parameters/AcceptText' - $ref: '#/components/parameters/ContentTypeZip' @@ -1007,8 +1045,8 @@ components: The following attributes shall be excluded from the NsdInfo structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - - userDefinedData - - onboardingFailureDetails + - userDefinedData + - onboardingFailureDetails required: false schema: type: string @@ -1319,8 +1357,8 @@ components: 200 OK Shall be returned when the operation has been accepted and completed successfully. - The response body shall contain attribute modifications for an 'Individual NS descriptor' - resource (see clause 5.5.2.1). + The response body shall contain attribute modifications for an "Individual NS + descriptor" resource (see clause 5.5.2.1). headers: Content-Type: description: | @@ -1344,10 +1382,35 @@ components: explode: false schema: type: string + Etag: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + Last-Modified: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + If-Unmodified-Since: + description: The If-Unmodified-Since of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + If-Match: + description: The If-Match of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string content: application/json: schema: $ref: "definitions/SOL005NSDescriptorManagement_def.yaml#/definitions/NsdInfoModifications" + IndividualNSDescriptor.Patch.409: description: | @@ -1678,6 +1741,30 @@ components: explode: false schema: type: string + Etag: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + Last-Modified: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + If-Unmodified-Since: + description: The If-Unmodified-Since of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + If-Match: + description: The If-Match of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string NsdArchiveContent.Put.409: description: | @@ -1825,8 +1912,8 @@ components: the manifest file does not have all the security-related information embedded (i.e. there is a separate certificate file), the "Content-Type" HTTP header shall be set to "application/zip" and the payload body shall contain a ZIP archive which includes: - - a copy of the manifest file of the NSD archive; - - a copy of the related individual certificate file. + - a copy of the manifest file of the NSD archive; + - a copy of the related individual certificate file. headers: Content-Type: description: | @@ -2616,8 +2703,8 @@ components: security-related information embedded (i.e. there is a separate certificate file), the "Content-Type" HTTP header shall be set to "application/zip" and the payload body shall contain a ZIP archive which includes: - - a copy of the manifest file of the PNFD archive; - - a copy of the related individual certificate file. + - a copy of the manifest file of the PNFD archive; + - a copy of the related individual certificate file. headers: Content-Type: description: | @@ -3105,4 +3192,4 @@ components: style: simple explode: false schema: - type: string \ No newline at end of file + type: string diff --git a/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml index 2cc9132a88e8d39b2b002fb35fd52a262cf30fad..a12578cd7f7294ce7e62de475437aafa52a6272d 100644 --- a/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml +++ b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml @@ -23,11 +23,21 @@ definitions: Modifications of the userDefinedData attribute in NsdInfo data type. See note. If present, these modifications shall be applied according to the rules of JSON Merge Patch (see IETF RFC 7396). - type: array - items: - $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" NsdInfo: + description: + 'This type represents a response for the query NSD operation. + NOTE 1: At least one of the attributes - vnfPkgId and nestedNsdInfoId shall be present, + after the NSD is on-boarded. + NOTE 2: If the value of the nsdOnboardingState attribute is not equal to "ONBOARDED", + the value of the nsdOperationalState attribute shall be equal to "DISABLED". + NOTE 3: If the value of the nsdOnboardingState attribute is not equal to "ONBOARDED", + the value of the nsdUsageState attribute shall be equal to "NOT_IN_USE". + NOTE 4: State changes of an NSD are illustrated in clause B.2. + NOTE 5: This attribute shall be present after the NSD is on-boarded for those VNF packages that are already on-boarded. + NOTE 6: This attribute shall be present after the NSD is on-boarded for those PNFDs that are already on-boarded. + NOTE 7: This attribute shall be present after the NSD is on-boarded for those nested NSDs that are already on-boarded.' type: object anyOf: - required: @@ -45,13 +55,6 @@ definitions: description: > Identifier of the on boarded individual NS descriptor resource. This identifier is allocated by the NFVO. - NOTE 1: At least one of the attributes - vnfPkgId and nestedNsdInfoId shall be present, - after the NSD is on-boarded. - NOTE 2: If the value of the nsdOnboardingState attribute is not equal to "ONBOARDED", - the value of the nsdOperationalState attribute shall be equal to "DISABLED". - NOTE 3: If the value of the nsdOnboardingState attribute is not equal to "ONBOARDED", - the value of the nsdUsageState attribute shall be equal to "NOT_IN_USE". - NOTE 4: State changes of an NSD are illustrated in clause B.2. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" nsdId: description: > @@ -60,6 +63,13 @@ definitions: way. It is copied from the NSD content and shall be present after the NSD content is on-boarded. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + nsdExtInvariantId: + description: > + Identifies an NSD in a version independent manner. This attribute is invariant across versions of the NSD that fulfil + certain conditions related to the external connectivity and management of the NS. It shall be present after the NSD + content has been on-boarded if it is included in the NSD and shall be absent otherwise. If present it is copied from + the NSD of the on-boarded content. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" nsdName: type: string description: > @@ -80,15 +90,16 @@ definitions: description: > This identifier, which is allocated by the NSD designer, identifies an NSD in a version independent - manner. This information is copied from the NSD - content and shall be present after the NSD content is + manner. This attribute is invariant across versions of NSD with no constraint + on the changes across versions. This information is copied from the NSD + of the on-boarded content and shall be present after the NSD content is on-boarded. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" vnfPkgIds: description: > Identifies the VNF package for the VNFD referenced by the on-boarded NS descriptor resource. - See note 1. + See notes 1 and 5. type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" @@ -96,7 +107,7 @@ definitions: description: > Identifies the PnfdInfo element for the PNFD referenced by the on-boarded NS descriptor - resource. + resource. See note 6. type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" @@ -105,7 +116,7 @@ definitions: Identifies the NsdInfo element for the nested NSD referenced by the on-boarded NS descriptor resource. - See note 1. + See notes 1 and 7. type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" @@ -181,8 +192,6 @@ definitions: description: > Link to the NSD content resource. $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" - description: > - This type represents a response for the query NSD operation. CreateNsdInfoRequest: type: object @@ -232,7 +241,7 @@ definitions: is copied from the PNFD content and shall be present after the PNFD content is on-boarded. type: string - pnfdersion: + pnfdVersion: $ref: "../../definitions/SOL005_def.yaml#/definitions/Version" pnfdProvider: description: > @@ -241,10 +250,20 @@ definitions: type: string pnfdInvariantId: description: > - Identifies a PNFD in a version independent - manner. This attribute is invariant across versions - of PNFD. + Identifies a PNFD in a version independent manner. This attribute is invariant + across versions of PNFD. It is copied from the PNFD content and shall be present + after the PNFD content is on-boarded. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + + pnfdExtInvariantId: + description: > + Identifies a PNFD in a version independent manner. This attribute is invariant + across versions of the PNFD that expose the same external connectivity, i.e. + same number of pnfExtCpds and same identifiers. It shall be present after the PNFD + content has been on-boarded if it is included in the PNFD and shall be absent otherwise. + If present it is copied from the PNFD of the on-boarded content. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + archiveSecurityOption: description: > Signals the security option used by the PNFD archive as defined @@ -377,14 +396,14 @@ definitions: is an array, the attribute shall match if at least one of the values in the array matches (logical "or" between the values of one filter attribute). - NOTE 1: The permitted values of the "notificationTypes" attribute are spelled exactly + NOTE 1: The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems. - NOTE 2: The attributes "nsdId" and "nsdInfoId" are alternatives to reference to a + NOTE 2: The attributes "nsdId" and "nsdInfoId" are alternatives to reference to a particular NSD in a filter. They should not be used both in the same filter instance, but one alternative should be chosen. - NOTE 3: The attributes "pnfdId" and "pnfdInfoId" are alternatives to reference to a particular + NOTE 3: The attributes "pnfdId" and "pnfdInfoId" are alternatives to reference to a particular PNFD in a filter. They should not be used both in the same filter instance, but one alternative should be chosen. anyOf: - oneOf: @@ -403,13 +422,13 @@ definitions: Match particular notification types. Permitted values: - - NsdOnBoardingNotification - - NsdOnboardingFailureNotification - - NsdChangeNotification - - NsdDeletionNotification - - PnfdOnBoardingNotification - - PnfdOnBoardingFailureNotification - - PnfdDeletionNotification + - NsdOnBoardingNotification + - NsdOnboardingFailureNotification + - NsdChangeNotification + - NsdDeletionNotification + - PnfdOnBoardingNotification + - PnfdOnBoardingFailureNotification + - PnfdDeletionNotification See note 1. type: array @@ -668,4 +687,4 @@ definitions: is not-in-use. enum: - IN_USE - - NOT_IN_USE \ No newline at end of file + - NOT_IN_USE diff --git a/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml b/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml index 198a39ffce9eb2c008b6054b4725f1abb54a088b..1be7a87596fefb3d977db3066b96658293ef4e34 100644 --- a/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml +++ b/src/SOL005/NSDManagementNotification/NSDManagementNotification.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.2.1-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/callback/v2 diff --git a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml index a9af4563ce66b47f0661ffc4692cb725c3f7edb8..caf122368c817c1199533a6cdb3a320ae127cbdc 100644 --- a/src/SOL005/NSFaultManagement/NSFaultManagement.yaml +++ b/src/SOL005/NSFaultManagement/NSFaultManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/nsfm/v1 @@ -45,15 +45,15 @@ paths: The NFVO shall support receiving this parameter as part of the URI query string. The OSS/BSS may supply this parameter. The following attribute names shall be supported by the NFVO in the filter expression: - - id - - nsInstanceId - - rootCauseFaultyComponent.faultyNestedNsInstanceId - - rootCauseFaultyComponent.faultyNsVirtualLinkInstanceId - - rootCauseFaultyComponent.faultyVnfInstanceId - - rootCauseFaultyResource.faultyResourceType - - eventType - - perceivedSeverity - - probableCause + - id + - nsInstanceId + - rootCauseFaultyComponent.faultyNestedNsInstanceId + - rootCauseFaultyComponent.faultyNsVirtualLinkInstanceId + - rootCauseFaultyComponent.faultyVnfInstanceId + - rootCauseFaultyResource.faultyResourceType + - eventType + - perceivedSeverity + - probableCause schema: type: string - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker @@ -440,6 +440,30 @@ components: explode: false schema: type: string + Etag: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + Last-Modified: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + If-Unmodified-Since: + description: The If-Unmodified-Since of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + If-Match: + description: The If-Match of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string content: application/json: schema: diff --git a/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml b/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml index 79f8a9b3b7a5d65d8f5a30120922179552efa408..b34accf44f0188a8aa6bed6a166d965498895e27 100644 --- a/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml +++ b/src/SOL005/NSFaultManagementNotification/NSFaultManagementNotification.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/callback/v1 diff --git a/src/SOL005/NSLCMCoordination/NSLCMCoordination.yaml b/src/SOL005/NSLCMCoordination/NSLCMCoordination.yaml index 9714854025a6385c0097cf9d0ddbd7a3fd30d446..e34958e4309ff264b465b8170069d28e3970798d 100644 --- a/src/SOL005/NSLCMCoordination/NSLCMCoordination.yaml +++ b/src/SOL005/NSLCMCoordination/NSLCMCoordination.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 1.0.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 1.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/lcmcoord/v1 diff --git a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml index bd76cb81b7412abafa2696ab2c25da268a611c24..d7f8c989cd243c5f375e69d26c71c0c93490ce19 100644 --- a/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml +++ b/src/SOL005/NSLifecycleManagement/NSLifecycleManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/nslcm/v2 @@ -59,14 +59,14 @@ paths: The following attributes shall be excluded from the NsInstance structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - - vnfInstances - - pnfInfo - - virtualLinkInfo - - vnffgInfo - - sapInfo - - nsScaleStatus - - additionalAffinityOrAntiAffinityRules - - wanConnectionInfo + - vnfInstances + - pnfInfo + - virtualLinkInfo + - vnffgInfo + - sapInfo + - nsScaleStatus + - additionalAffinityOrAntiAffinityRules + - wanConnectionInfo schema: type: string - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker @@ -203,7 +203,24 @@ paths: - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization post: description: | - The POST method instantiates an NS instance. See clause 6.4.4.3.1. + The POST method instantiates an NS instance. + In case of the "feasibilityCheckReserve" attribute is present, the method + runs the feasibility check procedure for an NS instantiation scheduled + operation or runs the feasibility checking procedure followed by the + execution of the subsequent (actual) NS instantiation operation. + This method shall follow the provisions specified in the tables 6.4.4.3.1-1 + and 6.4.4.3.1-2 for URI query parameters, request and response data + structures, and response codes. + The steps and conditions that apply as the result of successfully executing + this method are specified in clause 6.4.1.2. + Before the NFVO initiates the "Instantiate NS" operation it shall verify + (if not already done previously when onboarding the NSD) that all descriptors + referenced in the selected NS deployment flavour, or a respective + overriding descriptor indicated in the operation, are already on-boarded. + In addition, once the NFVO has successfully completed the underlying NS LCM + operation occurrence, it shall set the "nsState" attribute to the value + "INSTANTIATED" in the representation of the "Individual NS instance" resource. + parameters: - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType @@ -281,7 +298,30 @@ paths: - $ref: ../components/SOL005_params.yaml#/components/parameters/Authorization post: description: | - The POST method updates an NS instance. See clause 6.4.6.3.1. + The POST method updates an NS instance. + In case of the "feasibilityCheckReserve" attribute is present, + the NFVO runs the feasibility check procedure for an NS updating + scheduled operation or runs the feasibility checking procedure + followed by the execution of the subsequent (actual) NS updating + operation. + This method shall follow the provisions specified in the tables + 6.4.6.3.1-1 and 6.4.6.3.1-2 for URI query parameters, request + and response data structures, and response codes. + The steps and conditions that apply as the result of successfully + executing this method are specified in clause 6.4.1.2. + If the "Update NS" operation involves adding a VNF instance, a + nested NS instance or a PNF to the NS instance, changing an NS + or VNF deployment flavour, or changing the associated NSD descriptor + or a current VNF package, the NFVO shall, before it initiates the + operation, verify (if not already done previously when onboarding + the NSD) that all descriptors referenced in the selected NS + deployment flavour, or a respective overriding descriptor indicated + in the operation, are already on-boarded. + In addition, once the NFVO has successfully completed the underlying + NS LCM operation occurrence, it shall reflect the result of the update + of the NS instance by updating the representation of the "Individual + NS instance" resource accordingly to the update. + parameters: - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType @@ -419,11 +459,11 @@ paths: See clause 5.3 of ETSI GS NFV-SOL 013 for details. The NFVO shall support this parameter. The following attributes shall be excluded from the NsLcmOpOcc structure in the response body if this parameter is provided: - - operationParams - - changedVnfInfo - - error - - resourceChanges - - lcmCoordinations + - operationParams + - changedVnfInfo + - error + - resourceChanges + - lcmCoordinations - warnings schema: type: string @@ -487,6 +527,42 @@ paths: "504": $ref: ../responses/SOL005_resp.yaml#/components/responses/504 + patch: + description: | + This method modifies an "Individual NS LCM operation occurrence" resource. + requestBody: + $ref: '#/components/requestBodies/NsLcmInfoModificationRequest' + responses: + "204": + $ref: '#/components/responses/NsLcmOpOccs.Patch.204' + "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 + "409": + $ref: ../responses/SOL005_resp.yaml#/components/responses/409 + description: Shall be returned upon the following error The operation cannot be executed currently, due to a conflict with the state of the "Individual NS instance" resource. Typically, this is due to an attempt to modify the scheduled time of an operation that has already started. The response body shall contain a ProblemDetails structure, in which the "detail" attribute should convey more information about the error. + "412": + $ref: ../responses/SOL005_resp.yaml#/components/responses/412 + description: Shall be returned upon the following error A precondition given in an HTTP request header is not fulfilled. + "416": + $ref: ../responses/SOL005_resp.yaml#/components/responses/416 + "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 + + /ns_lcm_op_occs/{nsLcmOpOccId}/retry: parameters: - $ref: '#/components/parameters/NsLcmOpOccId' @@ -834,8 +910,8 @@ paths: The following attributes shall be excluded from the VnfSnapshot structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - - vnfInstance - - vnfcSnapshots + - vnfInstance + - vnfcSnapshots schema: type: string - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker @@ -948,14 +1024,14 @@ components: The following attributes shall be excluded from the NsInstance structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - - vnfInstances - - pnfInfo - - virtualLinkInfo - - vnffgInfo - - sapInfo - - nsScaleStatus - - additionalAffinityOrAntiAffinityRules - - wanConnectionInfo + - vnfInstances + - pnfInfo + - virtualLinkInfo + - vnffgInfo + - sapInfo + - nsScaleStatus + - additionalAffinityOrAntiAffinityRules + - wanConnectionInfo required: false schema: type: string @@ -1080,6 +1156,15 @@ components: $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/LccnSubscriptionRequest required: true + NsLcmInfoModificationRequest: + description: | + Parameters for the "Individual NS LCM operation occurrence" resource modification information, as defined in clause 6.5.2.20 + content: + application/json: + schema: + $ref: ./definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/NsLcmInfoModificationRequest + required: true + responses: NsInstances.Get.200: description: | @@ -2574,4 +2659,56 @@ components: explode: false schema: type: string - content: {} \ No newline at end of file + content: {} + + NsLcmOpOccs.Patch.204: + description: | + 204 No Content + Shall be returned when the "Individual NS LCM operation occurrence" resource has been changed successfully. + The response body shall be empty. + 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 + Etag: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + Last-Modified: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + If-Unmodified-Since: + description: The If-Unmodified-Since of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + If-Match: + description: The If-Match of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string \ No newline at end of file diff --git a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml index e2e6917b3d9795772b9685760f648502c7b253a1..5a26c1781ae67756bdbba7046066bcd896564f48 100644 --- a/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml +++ b/src/SOL005/NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml @@ -43,7 +43,7 @@ definitions: This type represents the information used to heal a NS. It shall comply with the provisions defined in Table 6.5.3.43-1. - NOTE: Either the actionsHealing or healScript attribute shall be present, not both attributes. + NOTE: Either the actionsHealing or healScript attribute shall be present, not both attributes. type: object required: - degreeHealing @@ -125,9 +125,9 @@ definitions: This type represents a NS termination request. It shall comply with the provisions defined in Table 6.5.2.15-1. - NOTE 1: Information needed for terminating specific VNF instances shall only be + NOTE 1: Information needed for terminating specific VNF instances shall only be specified in the "terminateVnfData" attribute, and not in the "terminateNsData" attribute. - NOTE 2: VNF instance(s) part of this NS instance is(are) terminated as part of Terminate + NOTE 2: VNF instance(s) part of this NS instance is(are) terminated as part of Terminate NS operation only if the instance(s) is(are) not used by any other NS instance. type: object @@ -136,7 +136,12 @@ definitions: description: > Timestamp indicating the end time of the NS, i.e. the NS will be terminated automatically at this timestamp. - Cardinality "0" indicates the NS termination takes place immediately + Cardinality "0" indicates the NS termination takes place + immediately".If the "Terminate NS" is a scheduled operation, + it shall be possible to modify the schedule time, whereas + it shall not be possible to change any other operational + parameters. This attribute can be modified with the PATCH method. + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" terminateNsData: description: > @@ -197,13 +202,13 @@ definitions: This type represents a response for Query NS operation. It shall comply with the provisions defined in Table 6.5.2.10-1. - NOTE 1: If the "nsState" attribute is INSTANTIATED, at least either one + NOTE 1: Void. "vnfInstance" attribute or one "nestedNsInstanceId" attribute shall be present. - NOTE 2: The “priority” attribute of the NS instance is configured in the NSD in the NsDf structure. + NOTE 2: The “priority” attribute of the NS instance is configured in the NSD in the NsDf structure. The mapping from application-specific priority values to a value in the NsDf is under OSS/BSS responsibility. The "zero" value expresses the highest priority and the fact that the NS instance based on this DF cannot be pre-empted during resource allocation. - NOTE 3: Examples for the usage of priority include conflict resolution in case of resource shortage + NOTE 3: Examples for the usage of priority include conflict resolution in case of resource shortage type: object required: @@ -231,6 +236,16 @@ definitions: description: > 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" + versionDependency: + description: > + Describes version dependencies currently valid for the nested NS instance. Identifies versions of descriptors of other constituents in the NSD upon which the nested NS depends. The dependencies may be described for the NSD referenced in this NsInfo with nsdId and for NSDs with the same NsdExtInvariantId. + There shall not be more than one versionDependency present with the same dependentConstituentId. + It may be present for the NsInfo of a nested NS. It shall not be present otherwise. + type: array + items: + $ref: "#/definitions/VersionDependency" + + nsdInfoId: description: > Identifier of the NSD information object on which the @@ -250,7 +265,6 @@ definitions: vnfInstance: description: > Information on constituent VNF(s) of the NS instance. - See note 1. type: array items: $ref: "#/definitions/VnfInstance" @@ -284,7 +298,6 @@ definitions: nestedNsInstanceId: description: > Identifier of the nested NS(s) of the NS instance. - See note. type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" @@ -397,6 +410,16 @@ definitions: INSTANTIATED state). $ref: "../../definitions/SOL005_def.yaml#/definitions/Link" + + McioTypeName: + description: + The present type definition provides valid String values for the "mcioType" attribute of the "McioInfo" + data type, and the valid values are defined in table 6.5.4.13-1. + type: string + enum: + - Deployment + - Statefulset + VnfInstance: description: > This type represents a VNF instance. It shall comply with the provisions defined in table 6.5.3.57-1. @@ -470,6 +493,17 @@ definitions: description: > Identifies the version of the VNFD. The value is copied from the VNFD. $ref: "../../definitions/SOL005_def.yaml#/definitions/Version" + versionDependency: + description: > + Describes version dependencies currently valid for the VNF instance. Identifies + versions of descriptors of other constituents in the NSD upon which the VNF depends. + The dependencies may be described for the VNFD referenced in this VnfInfo with vnfdId + and for VNFDs with the same VnfdExtInvariantId. + There shall not be more than one versionDependency present with the same + dependentConstituentId. + type: array + items: + $ref: "#/definitions/VersionDependency" vnfPkgId: description: > Identifier of information held by the NFVO about @@ -573,6 +607,14 @@ definitions: type: array items: $ref: "#/definitions/VipCpInfo" + virtualCpInfo: + description: > + virtual CPs that are part of the VNF instance. Shall be present when + a particular virtual CP is associated to an external CP of the VNF + instance. May be present otherwise. + type: array + items: + $ref: "#/definitions/VirtualCpInfo" extVirtualLinkInfo: description: > Information about the external VLs the VNF instance is connected to. @@ -623,6 +665,13 @@ definitions: type: array items: $ref: "#/definitions/VirtualStorageResourceInfo" + mcioInfo: + description: > + Information on the MCIO(s) representing VNFC instance(s) realized by one or a set + of OS containers and created from the same VDU for the VNF instance. + type: array + items: + $ref: "#/definitions/McioInfo" metadata: description: > Additional VNF-specific attributes that provide @@ -655,6 +704,186 @@ definitions: In addition, the provisions in clause 6.7 shall apply. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + + VirtualCpInfo: + description: 'This type represents the information related to a virtual CP instance of a VNF. + NOTE: A consumer of the VNF LCM interface can learn the actual VNFC instances implementing + the service accessible via the virtual CP instance by querying the "vnfcResourceInfo" from + the "InstantiatedVnfInfo" and filtering by corresponding "vduId" values.' + type: object + required: + - cpInstanceId + - cpdId + - resourceHandle + - vduId + properties: + cpInstanceId: + description: > + Identifier of this virtual CP instance. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf" + cpdId: + description: > + Identifier of the VirtualCpd in the VNFD. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + resourceHandle: + description: > + Reference to the virtualised resource realizing this virtual CP. + $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" + vnfExtCpId: + description: > + When the virtual CP is exposed as external CP of the VNF, the identifier of this external VNF CP instance. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf" + cpProtocolInfo: + description: > + Protocol information for this CP. There shall be one cpProtocolInfo for each layer protocol supported. + type: array + items: + $ref: "#/definitions/CpProtocolInfo" + vduId: + description: > + Reference to the VDU(s) which implement the service accessible via the virtual CP instance. See note. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + additionalServiceInfo: + description: > + Additional service identification information of the virtual CP instance. + type: array + items: + $ref: "#/definitions/AdditionalServiceInfo" + metadata: + description: > + Metadata about this virtual CP instance. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + + + AdditionalServiceInfo: + description: + 'This type represents the additional service information of the virtual CP instance + used to expose properties of the virtual CP to NFV-MANO. + + NOTE: This attribute shall only be present if additional information is needed + to identify the service termination within the VNF, such as for example a URL path + information in an HTTP request required to allow a single virtual CP IP address to + be used for several HTTP based services that use the same port number.' + type: object + required: + - portInfo + properties: + portInfo: + description: > + Service port numbers exposed by the virtual CP instance. + type: array + items: + $ref: "#/definitions/ServicePortInfo" + serviceInfo: + description: > + Service matching information exposed by the virtual CP instance. See note. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + + ServicePortInfo: + description: + 'This type represents the information related to the service identifying port + properties exposed by the virtual CP instance.' + type: object + required: + - name + - protocol + - port + - isPortConfigurable + + properties: + name: + description: > + The name of the port exposed by the virtual CP instance. + type: string + protocol: + description: > + The L4 protocol for this port exposed by the virtual CP instance. + Permitted values: + - TCP + - UDP + - SCTP + type: string + enum: + - TCP + - UDP + - SCTP + port: + description: > + The L4 port number exposed by the virtual CP instance. + type: integer + isPortConfigurable: + description: > + Specifies whether the port attribute value is allowed to be configurable. + type: boolean + + McioInfo: + description: + 'This type provides information about an MCIO representing the set of VNFC instances realized by one or a set of + OS containers which have been created based on the same VDU. + + NOTE 1 The type of MCIO as specified in the declarative descriptor of the MCIO, and that can be read from the CISM. + EXAMPLE: In case of MCIOs managed by Kubernetes, the type of MCIO corresponds to the “kind” property of the declarative descriptor. + NOTE 2 If the attribute additionalInfo is present, it may contain runtime information on the actual and desired state of the MCIO(s). + NOTE 3 When the container infrastructure service is a Kubernetes® instance, the mcioId is the combined values from the kind + and name fields of the Kubernetes® resource object, separated by a slash. Example: "Deployment/abcd". + NOTE 4 When the container infrastructure service is a Kubernetes® instance, the mcioName is the name field of the resource object.' + type: object + required: + - mcioId + - mcioName + - mcioNamespace + - vduId + - cismId + - mcioType + - desiredInstances + - availableInstances + + properties: + mcioId: + description: > + Identifier of this MCIO, created by the CISM. See note 3. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + mcioName: + description: > + Human readable name of this MCIO. See note 4. + type: string + mcioNamespace: + description: > + Namespace of this MCIO. + type: string + vduId: + description: > + Reference to the related VDU in the VNFD applicable to this resource. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + cismId: + description: > + Identifier of the CISM managing this MCIO. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + mcioType: + description: > + The type of MCIO. Specific values, their semantics and associated MCIO + types are defined in clause 6.5.4.13. Additional values are also permitted. + See note 1. + type: string + desiredInstances: + description: > + Number of desired MCIO instances. + type: integer + availableInstances: + description: > + Number of available MCIO instances + type: integer + additionalInfo: + description: > + Additional information which is specific to the MCIO, its type, and which is available from the CISM. + See note 2. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" LccnLinks: type: object required: @@ -728,6 +957,18 @@ definitions: description: > Identifier of the PNFD on which the PNF is based. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + versionDependency: + description: > + Describes version dependencies currently valid for the PNF. + Identifies versions of descriptors of other constituents in + the NSD upon which the PNF depends. The dependencies may be + described for the PNFD referenced in this PnfInfo with pnfdId + and for PNFDs with the same PnfdExtInvariantId. + There shall not be more than one versionDependency present with the same dependentConstituentId. + type: array + items: + $ref: "#/definitions/VersionDependency" + pnfdInfoId: description: > Identifier of the PNFD information onject related to this @@ -774,7 +1015,7 @@ definitions: This type specifies the information about an NS VL instance. It shall comply with the provisions defined in Table 6.5.3.53-1. - NOTE: As an NS can include NFs deployed in NFVI PoPs under the control + NOTE: As an NS can include NFs deployed in NFVI PoPs under the control of several different VIMs, therefore deploying an NS VL can involve several VIMs, each allocating different virtualised network resources, as well as WIMs handling the connectivity in between the NFVI-PoPs in @@ -820,7 +1061,7 @@ definitions: VnffgInfo: description: > Information on the VNFFG(s) of the NS instance. - NOTE: It indicates an exhaustive list of all the + NOTE: It indicates an exhaustive list of all the CP instances and SAP instances of the VNFFG. type: object required: @@ -868,7 +1109,7 @@ definitions: description: > This type represents an NFP instance. It shall comply with the provisions defined in Table 6.5.3.66-1. - NOTE: When multiple identifiers are included, the position + NOTE: When multiple identifiers are included, the position of the identifier in the CpGroup data type specifies the position of the group in the path. type: object @@ -927,10 +1168,10 @@ definitions: This type represents an identifier of the CP or SAP instance. It shall comply with the provisions defined in Table 6.5.3.56-1. - NOTE 1: For the VNF external CP instance, both vnfInstanceId and vnfExtCpInstanceId shall be present as a pair. - NOTE 2: For the PNF external CP instance, both pnfInfoId and PnfExtCpInstanceId shall be present as a pair. - NOTE 3: For the SAP instance, both nsInstanceId and nsSapInstanceId shall be present as a pair. - NOTE 4: One pair of identifiers (VNF external CP, PNF external CP or SAP) shall be present. + NOTE 1: For the VNF external CP instance, both vnfInstanceId and vnfExtCpInstanceId shall be present as a pair. + NOTE 2: For the PNF external CP instance, both pnfInfoId and PnfExtCpInstanceId shall be present as a pair. + NOTE 3: For the SAP instance, both nsInstanceId and nsSapInstanceId shall be present as a pair. + NOTE 4: One pair of identifiers (VNF external CP, PNF external CP or SAP) shall be present. type: object oneOf: - required: @@ -953,19 +1194,19 @@ definitions: description: > Identifier of the VNF external CP instance in the scope of the VNF instance. This attribute shall be present if the CP instance is VNF - external CP. See notes 1 and 4. + external CP. See note 1 and note 4. $ref: "#/definitions/IdentifierInVnf" pnfInfoId: description: > Identifier of the PNF instance associated to the CP instance. This attribute shall be present if the CP instance is PNF - external CP. See notes 2 and 4. + external CP. See note 2 and note 4. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" pnfExtCpInstanceId: description: > Identifier of the PNF external CP instance in the scope of the PNF. This attribute shall be present if the CP instance is PNF - external CP. See notes 2 and 4. + external CP. See note 2 and note 4. $ref: "#/definitions/IdentifierInPnf" nsInstanceId: description: > @@ -977,7 +1218,7 @@ definitions: description: > Identifier of the SAP instance in the scope of the NS instance. This attribute shall be present if the CP instance is NS - SAP. See notes 3 and 4. + SAP. See note 3 and note 4. $ref: "#/definitions/IdentifierInNs" SapInfo: @@ -1069,18 +1310,27 @@ definitions: description: > This type represents information about an external CP of a VNF. It shall comply with the provisions defined in Table 6.5.3.70-1. - NOTE 1: The attributes "associatedVnfcCpId", "associatedVipCpId" and + NOTE 1: The attributes attributes "associatedVnfcCpId", "associatedVipCpId", "associatedVirtualCpId" and "associatedVnfVirtualLinkId" are mutually exclusive. Exactly one shall be present. - NOTE 2: An external CP instance is not associated to a link + NOTE 2: An external CP instance is not associated to a link port in the cases indicated for the “extLinkPorts” attribute in clause 6.5.3.26. + NOTE 3: Cardinality greater than 1 is only applicable for specific cases where more than one network + attachment definition resource is needed to fulfil the connectivity requirements of the external CP, + e.g. to build a link redundant mated pair in SR-IOV cases. + NOTE 4: When more than one "netAttDefResourceId" is indicated, all shall belong to the same namespace. type: object required: - id - cpdId + - cpProtocolInfo oneOf: - required: - associatedVnfcCpId + - required: + - associatedVipCpId + - required: + - associatedVirtualCpId - required: - associatedVnfVirtualLinkId properties: @@ -1117,6 +1367,18 @@ definitions: structure. Shall be present if the CP is associated to a link port. See note 2. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + netAttDefResourceId: + description: > + Identifier of the "NetAttDefResourceInfo" structure that provides the + specification of the interface to attach the connection point to a secondary + container cluster network. See notes 3 and 4. + + It shall be present if the external CP is associated to a VNFC realized + by one or a set of OS containers and is connected to a secondary container + cluster network. It shall not be present otherwise. + type: array + items: + $ref: "#/definitions/IdentifierInVnf" metadata: description: > Metadata about this external CP. @@ -1129,10 +1391,15 @@ definitions: $ref: "#/definitions/IdentifierInVnf" associatedVipCpId: description: > - Identifier of the VIP CP instance that is exposed as this VnfExtCp instance, either - directly or via a floating IP address, and the related "VipCpInfo" structure - in "VnfInstance". Shall be present if the cpdId of this VnfExtCp has a vipCpd - attribute. See note 1. + Identifier of the "VipCpInfo" structure that represents the VIP CP that is exposed by this external CP + instance, either directly or via a floating IP address, and the related "VipCpInfo" structure in "VnfInstance". + Shall be present in case this CP instance maps to a VIP CP. + See note 1. + $ref: "#/definitions/IdentifierInVnf" + associatedVirtualCpId: + description: > + Identifier of the "VirtualCpInfo" structure that represents the virtual CP that is exposed by this external CP + instance. Shall be present in case this CP instance maps to a virtual CP. See note 1. $ref: "#/definitions/IdentifierInVnf" associatedVnfVirtualLinkId: description: > @@ -1148,7 +1415,7 @@ definitions: This type represents describes a group of CPs and/or SAPs pairs associated to the same position in an NFP. It shall comply with the provisions defined in Table 6.5.3.71-1. - NOTE: All CP or SAP pairs in a group shall be instantiated from connection + NOTE: All CP or SAP pairs in a group shall be instantiated from connection point descriptors or service access point descriptors referenced in the corresponding NfpPositionDesc. type: object @@ -1189,8 +1456,9 @@ definitions: This type represents describes a pair of ingress and egress CPs or SAPs which the NFP passes by. It shall comply with the provisions defined in Table 6.5.3.72-1. - NOTE 1: The presence of a single vnfExpCpId, pnfExtCpId, or sapId occurrence indicates that the CP or SAP is used both as an ingress and egress port at a particular NFP position. - NOTE 2: Only one of these three attributes shall be present. + NOTE 1: The presence of a single vnfExpCpId, pnfExtCpId, or sapId occurrence indicates + that the CP or SAP is used both as an ingress and egress port at a particular NFP position. + NOTE 2: Only one of these three attributes shall be present. type: object properties: vnfExtCpIds: @@ -1225,8 +1493,8 @@ definitions: description: > This type represents provides input parameters to configure the forwarding behaviour. It shall comply with the provisions defined in Table 6.5.3.73-1. - NOTE 1: If applicable to the algorithm but not provided, default values determined by the VIM or NFVI are expected to be used. - NOTE 2: Weight applies to the CP instances in the order they have been created. + NOTE 1: If applicable to the algorithm but not provided, default values determined by the VIM or NFVI are expected to be used. + NOTE 2: Weight applies to the CP instances in the order they have been created. type: object properties: algortihmName: @@ -1262,7 +1530,7 @@ definitions: description: > This type describes the protocol layer(s) that a CP or SAP uses together with protocol-related information, like addresses. It shall comply with the provisions defined in Table 6.5.3.58-1. - NOTE: This attribute allows to signal the addition of further types of layer and + NOTE: This attribute allows to signal the addition of further types of layer and protocol in future versions of the present document in a backwards-compatible way. In the current version of the present document, only IP over Ethernet is supported. type: object @@ -1276,11 +1544,12 @@ definitions: associated to the network address information. Permitted values: - IP_OVER_ETHERNET - + - IP_FOR_VIRTUAL_CP See note. type: string enum: - IP_OVER_ETHERNET + - IP_FOR_VIRTUAL_CP ipOverEthernet: description: > IP addresses over Ethernet to assign to the CP @@ -1288,15 +1557,46 @@ definitions: layerProtocol is equal to " IP_OVER_ETHERNET", and shall be absent otherwise. $ref: "#/definitions/IpOverEthernetAddressInfo" + virtualCpAddress: + description: > + IP address data assigned to an external CP instance + exposing a virtual CP. It shall be present if layerProtocol + is equal to “IP_FOR_VIRTUAL_CP” and the external CP instance + exposes a virtual CP and shall not be present otherwise. + $ref: "#/definitions/VirtualCpAddressInfo" + + VirtualCpAddressInfo: + description: > + This type represents information about a network address that has been assigned to a virtual CP. + type: object + required: + - type + properties: + type: + description: > + The type of the IP addresses. + Permitted values: + - IPV4 + - IPV6 + type: string + enum: + - IPV4 + - IPV6 + loadBalancerIp: + description: Fixed addresses assigned to an external load balancer. + $ref: "#/definitions/IpAddress" + + + IpOverEthernetAddressInfo: description: > This type represents information about a network address that has been assigned. - NOTE 1: At least one of "macAddress" or "ipAddresses" shall be present. - NOTE 2: Exactly one of "addresses" or "addressRange" shall be present. - NOTE 3: If the Cp instance represents a subport in a trunk, "segmentationId" shall be present. Otherwise it shall not be present. - NOTE 4: Depending on the NFVI networking infrastructure, the "segmentationId" may indicate the actual network segment value + NOTE 1: At least one of "macAddress" or "ipAddresses" shall be present. + NOTE 2: Exactly one of "addresses" or "addressRange" shall be present. + NOTE 3: If the Cp instance represents a subport in a trunk, "segmentationId" shall be present. Otherwise it shall not be present. + NOTE 4: Depending on the NFVI networking infrastructure, the "segmentationId" may indicate the actual network segment value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the transport header of the packets or it may be an identifier used between the application and the NFVI networking infrastructure to identify the network sub-interface of the trunk port in question. In the latter case the NFVI infrastructure will map this local @@ -1444,10 +1744,12 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim" ExtVirtualLinkInfo: + description: This type represents information about an VNF external VL. type: object required: - id - resourceHandle + - currentVnfExtCpData properties: id: description: > @@ -1466,6 +1768,14 @@ definitions: type: array items: $ref: "#/definitions/ExtLinkPortInfo" + extNetAttDefResource: + description: > + Network attachment definition resources that provide the specification + of the interface to attach connection points to this VL. + type: array + items: + $ref: "#/definitions/NetAttDefResourceInfo" + currentVnfExtCpData: description: > Allows the API consumer to read the current CP configuration information @@ -1477,9 +1787,9 @@ definitions: description: > This type represents information about a link port of an external VL, i.e. a port providing connectivity for the VNF to an NS VL. - NOTE 1: The use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 + NOTE 1: The use cases UC#4 and UC#5 in Annex A.4 of ETSI GS NFV-IFA 007 provide examples for such a configuration. - NOTE 2: The value of "trunkResourceId" is scoped by the value of + NOTE 2: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute. type: object required: @@ -1521,10 +1831,14 @@ definitions: $ref: "#/definitions/IdentifierInVim" ExtManagedVirtualLinkInfo: + description: > + This type provides information about an externally-managed internal virtual link for VNFs type: object + required: - id - vnfVirtualLinkDescId + - networkResource properties: id: description: > @@ -1546,13 +1860,21 @@ definitions: networkResource: description: > Reference to the VirtualNetwork resource or multi-site connectivity service providing this VL. - $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" vnfLinkPorts: description: > Link ports of this VL. type: array items: $ref: "#/definitions/VnfLinkPortInfo" + vnfNetAttDefResource: + description: > + Network attachment definition resources that provide the specification of the interface + to attach connection points to this VL. + $ref: "#/definitions/NetAttDefResourceInfo" + extManagedMultisiteVirtualLinkId: description: > Identifier of the externally-managed multi-site VL instance. The identifier is assigned by the NFV-MANO entity @@ -1562,13 +1884,46 @@ definitions: shall refer to the same extManagedMultisiteVirtualLinkId. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + NetAttDefResourceInfo: + description: > + This type represents the information related to a network attachment definition resource that provides the specification + of the interface used to connect one or multiple connection points to a secondary container cluster network + type: object + + required: + - netAttDefResourceInfoId + - netAttDefResource + properties: + netAttDefResourceInfoId: + description: > + Identifier of this network attachment definition resource as provided by the entity that has created it. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + netAttDefResource: + description: > + Resource handle of the resource in the scope of the CISM. + $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" + associatedExtCpId: + description: > + Identifier of the external CP of the VNF associated to this network attachment definition resource. + Shall be present when the network attachment definition resource is used for external connectivity by the VNF + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf" + associatedVnfcCpId: + description: > + Identifier of the VNFC CP of the VNF associated to this network attachment definition resource. + May be present when the network attachment definition resource is used for internal connectivity by the VNF. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf" + VnfLinkPortInfo: type: object description: > This type represents a link port of an internal VL of a VNF. It shall comply with the provisions defined in table 6.5.3.64-1. - NOTE 1: Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId with + NOTE 1: Either cpInstanceId with cpInstanceType set to "EXT_CP" or any combination of cpInstanceId with cpInstanceType set to "VNFC_CP" and vipCpInstanceId (i.e. one or both of them) shall be present for a VnfLinkPortInfo. In case both cpInstanceId with cpInstanceType set to "VNFC_CP" and vipCpInstanceId are present, the two different CP instances share the linkport. @@ -1662,12 +2017,22 @@ definitions: description: > This type represents the information on virtualised compute and storage resources used by a VNFC in a VNF instance. - NOTE 1: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. - NOTE 2: A VNFC CP is "connected to" an external CP if the VNFC CP + This feature addresses the following capabilities: + • NFV Architecture support for VNFs which follow “cloud-native” design principles. + • Enhance NFV-MANO capabilities to support container technologies. + • Enhance NFV-MANO capabilities for container management and orchestration. + • Enhance information model for containerized VNFs both using bare metal or nested virtualization technologies. + + NOTE 1: ETSI GS NFV-SOL 001 specifies the structure and format of the VNFD based on TOSCA specifications. + NOTE 2: A VNFC CP is "connected to" an external CP if the VNFC CP is connected to an internal VL that exposes an external CP. A VNFC CP is "exposed as" an external CP if it is connected directly to an external VL. - NOTE 3: The information can be omitted because it is already available + NOTE 3: The information can be omitted because it is already available as part of the external CP information. + NOTE 4: Cardinality greater than 1 is only applicable for specific cases where more than one network + attachment definition resource is needed to fulfil the connectivity requirements of the internal CP, + e.g. to build a link redundant mated pair in SR-IOV cases. + NOTE 5: When more than one "netAttDefResourceId" is indicated, all shall belong to the same namespace. type: object required: - id @@ -1690,15 +2055,15 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" computeResource: description: > - Reference to the VirtualCompute resource. + Reference to the VirtualCompute resource or reference to a Compute MCIO. $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" storageResourceIds: description: > - References to the VirtualStorage resources. The value refers to a - VirtualStorageResourceInfo item in the VnfInstance. + References to the VirtualStorage resources or references to Storage MCIOs. + The value refers to a VirtualStorageResourceInfo item in the VnfInstance. type: array items: - $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf" reservationId: description: > The reservation identifier applicable to the resource. It shall be @@ -1755,6 +2120,15 @@ definitions: structure. Shall be present if the CP is associated to a link port on an internal VL (including externally-managed internal VL) of the VNF instance and shall be absent otherwise. $ref: "#/definitions/IdentifierInVnf" + netAttDefResourceId: + description: > + Identifier of the "NetAttDefResourceInfo" structure that provides the specification of the interface to attach + the connection point to a secondary container cluster network. See notes 4 and 5. + It shall be present if the internal CP is associated to a VNFC realized by one or a set of OS containers and + is connected to a secondary container cluster network. It shall not be present otherwise. + type: array + items: + $ref: "#/definitions/IdentifierInVnf" metadata: description: > Metadata about this CP. @@ -1790,7 +2164,7 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" networkResource: description: > - Reference to the VirtualNetwork resource. + Reference to the VirtualNetwork resource or reference to a Network MCIO. $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" reservationId: description: > @@ -1837,7 +2211,7 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" storageResource: description: > - Reference to the VirtualStorage resource. + Reference to the VirtualStorage resource or reference to a Storage MCIO. $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" reservationId: description: > @@ -1853,7 +2227,7 @@ definitions: description: > This type represents information about a link port of a VL instance. It shall comply with the provisions defined in Table 6.5.3.55-1. - NOTE: When the NsVirtualLink, from which the present NsLinkPort is part of, + NOTE: When the NsVirtualLink, from which the present NsLinkPort is part of, is provided as an ExtVirtualLink as input of a VNF LCM operation, the id of the ExtLinkPort shall be the same as the corresponding NsLinkPort. type: object @@ -1951,22 +2325,57 @@ definitions: - ZONE_GROUP - NFVI_NODE + InstantiateNsRequest: type: object description: > This type represents request parameters for the "Instantiate NS" operation. - NOTE 1: The DF of the VNF instance shall match the VNF DF present in the associated VNF Profile. - NOTE 2: The NS DF of each nested NS shall be one of the allowed flavours in the associated - NSD (as referenced in the nestedNsd attribute of the NSD of the NS to be instantiated). - NOTE 3: The NSD of each referenced NSs (i.e. each nestedInstanceId) shall match the one of the - nested NSD in the composite NSD. - NOTE 4: When the NS is deployed over several sites, the VLs of this NS will include VNs - in each site connected over the WAN. In this case, the "wanConnectionData" provides the needed - information required to connect each VN to the WAN. Annex E provides additional information and - guidelines about the usage of the "wanConnectionData" attribute. - required: - - nsFlavourId + NOTE 1: The DF of the VNF instance shall match the VNF DF present in the associated VNF Profile. + The VNFD of the VNF instance shall match the one in the associated VNF Profile if no overridingVnfdId + is provided in the interface as part of vnfInstanceData, or the overridingVnfdId provided in the + interface if it is provided. + NOTE 2: The NS DF of each nested NS shall be one of the allowed flavours in the associated NSD + (as referenced in the nestedNsd attribute of the NSD of the NS to be instantiated). + NOTE 3: The NSD of each referenced NSs (i.e. each nestedInstanceId) shall match the one of the nested + NSD in the composite NSD if no overridingNsdId is provided in the interface as part of NestedNsInstanceData, + or the overridingNsdId provided in the interface if it is provided. + NOTE 4: When the NS is deployed over several sites, the VLs of this NS will include VNs in + each site connected over the WAN. In this case, the "wanConnectionData" provides the needed + information required to connect each VN to the WAN. Annex E provides additional information + and guidelines about the usage of the "wanConnectionData" attribute. + NOTE 5: The target size for NS instantiation may be specified in either nsInstantiationLevelId + or targetNsScaleLevelInfo, but not both. If none of the two parameters (nsInstantiationLevelId or + targetNsScaleLevelInfo) are present, the default NS instantiation level as declared in the NSD shall be used. + NOTE 6: If targetNsScaleLevelInfo is specified, information provided in targetNsScaleLevelInfo shall be used + to calculate the number of instances of the VNFs/nested NSs referred in the NSD. For VNFs or nested NSs that + are not scalable based on targetNsScaleLevelInfo, the default NS instantiation level as declared in the NSD + shall be used to calculate the number of instances those VNFs/nested NSs. + NOTE 7: When "feasibilityCheckReserve" is set to FEASIBILITY_CHECK_ONLY, the "startTime" attribute shall be ignored. + NOTE 8: When feasibilityCheckReserve is set to NO_FEASIBILITY_CHECK, the feasibility checking procedure is not performed. + Resources might be reserved as triggered by means outside the present operation request (e.g., configuration or policies), + e.g. if it is a scheduled NS instantiation operation. See Annex A.2.3 in ETSI GS NFV-IFA 010. + NOTE 9: When feasibilityCheckReserve is set to FEASIBILITY_CHECK_ONLY, only feasibility checking procedure + is performed for the operation, no resources are reserved. + NOTE 10: When feasibilityCheckReserve is set to FEASIBILITY_CHECK_WITH_OPERATION, the feasibility checking + procedure is performed and based on the procedure result, the actual NS instantiation operation is performed + at the time indicated by the "startTime" attribute, if provided. Resources might be reserved as triggered by + means outside the present operation request (e.g., configuration or policies), e.g. if it is a scheduled NS + instantiation operation. See Annex A.2.3 in ETSI GS NFV-IFA 010. + NOTE 11: When feasibilityCheckReserve is set to FEASIBILITY_CHECK_WITH_RESERVATION_AND_OPERATION, the feasibility + checking is performed and based on the procedure result, resources are reserved as part of the feasibility check, + and the actual NS instantiation operation is performed using the resources reserved during the feasibility checking + procedure execution, and at the time indicated by the "startTime" attribute, if provided. + + oneOf: + - required: + - nsFlavourId + - required: + - nsFlavourId + - nsInstantiationLevelId + - required: + - nsFlavourId + - targetNsScaleLevelInfo properties: nsFlavourId: description: > @@ -2056,14 +2465,25 @@ definitions: description: > Timestamp indicating the earliest time to instantiate the NS. Cardinality "0" indicates the NS instantiation takes place immediately. + If the "Instantiate NS" is a scheduled operation, it shall be possible to + modify the schedule time, whereas it shall not be possible to change any + other operational parameters. + + This attribute can be modified with the PATCH method. + See note 7. $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" nsInstantiationLevelId: description: > - Identifies one of the NS instantiation levels declared in - the DF applicable to this NS instance. If not present, the - default NS instantiation level as declared in the NSD - shall be used. + Identifies one of the NS instantiation levels declared in the DF applicable to this NS instance. See note 5. $ref: "#/definitions/IdentifierInNsd" + targetNsScaleLevelInfo: + description: > + This attribute is applicable for NS target scale level instantiation. + This attribute defines the target NS scale level to which the NS instance is to be instantiated for each NS scaling aspect of the DF applicable to this NS instance. + See notes 5 and 6. + type: array + items: + $ref: "#/definitions/NsScaleInfo" wanConnectionData: description: > Information for connecting VNs to the WAN when VLs are deployed across a WAN. @@ -2080,11 +2500,36 @@ definitions: type: array items: $ref: "#/definitions/AffinityOrAntiAffinityRule" + + feasibilityCheckReserve: + description: > + Specifies the feasibility check and reserve option for the NS instantiation operation. + Default option is NO_FEASIBILITY_CHECK. + If not present, default value applies. + See notes 7, 8, 9, 10 and 11. + $ref: "#/definitions/FeasibilityCheckReserveType" + dataFlowMirroringData: + description: > + Information for the data flow mirroring to be associated to this NS instance. + type: array + items: + $ref: "#/definitions/DataFlowMirroringData" + + ParamsForNestedNs: description: > This type specifies additional parameters on a per-nested NS instance basis. It shall comply with the provisions defined in Table 6.5.3.21a-1. + + NOTE 1: This attribute allows for a nested NS at instantiation of + the composite NS the use of an NSD different from the one specified in the + NSD of the composite NS with nsProfileId, provided they have the same nsdExtInvariantId. + NOTE 2: A VnfProfile, NsProfile or PnfProfile may contain multiple VersionDependencies + as it may describe the version dependencies of the descriptor referenced in the + profile or of other descriptors with the same external invariant identifier. + NOTE 3: The overridingVersionDependency attribute may only be present if + the overrridingNsdId attribute is present. type: object required: - nsProfileId @@ -2099,12 +2544,46 @@ definitions: type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + overridingNsdId: + description: > + Reference to an NSD. + If present it replaces the nsdId indicated in the referenced NsProfile + at the instantiation of the nested NS. The NSD referenced by this + ttribute shall have the same nsdExtInvariantId as the one indicated + in the NsProfile. If the NsProfile does not contain an nsdExtInvariantId + this attribute shall be ignored. + See notes 1 and 3. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + overridingVersionDependency: + description: > + If present, information in each overridingVersionDependency replaces + the versionDependency in the runtime information that the NFVO + keeps about the VnfProfile, NsProfile or PnfProfile indicated in + the OverridingVersionDependency. + Only the versionDependency in the VnfProfile, NsProfile or PnfProfile + with the same dependentConstituentId as in the overridingVersionDependency + is replaced. See note 2. + If no versionDependency with the dependentConstituentId indicated in + the overridingVersionDependency exists in the VnfProfile, NsProfile + or PnfProfile, the new versionDependency is added to the runtime information + that the NFVO keeps about the profile. + See note 3. + $ref: "#/definitions/OverridingVersionDependency" ParamsForVnf: description: > This type defines the additional parameters for the VNF instance to be created associated with an NS instance. It shall comply with the provisions defined in Table 6.5.3.22-1. + + NOTE 1: This attribute allows at VNF instantiation the use of a VNFD different + from the one specified in the NSD with vnfProfileId provided the two VNFDs refer + to the same vnfdExtInvariantId. + NOTE 2: A VnfProfile, NsProfile or PnfProfile may contain multiple VersionDependencies + as it may describe the version dependencies of the descriptor referenced in the profile + or of other descriptors with the same external invariant identifier. + NOTE 3: The overridingVersionDependency attribute may only be present if the overrridingVnfdId + attribute is present. type: object required: - vnfProfileId @@ -2114,6 +2593,36 @@ definitions: Identifier of (reference to) a vnfProfile to which the additional parameters apply. $ref: "#/definitions/IdentifierInNsd" + + overridingVnfdId: + description: > + Reference to a VNFD. + If present it replaces the vnfdId indicated in the referenced + VnfProfile at the VNF instantiation. The VNFD referenced by this + attribute shall have the same vnfdExtInvariantId as the one indicated + in the VnfProfile. If the VnfProfile does not contain a + vnfdExtInvariantId this attribute shall be ignored. + See notes 1 and 3. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + overridingVersionDependency: + description: > + If present, information in each overridingVersionDependency replaces + the versionDependency in the runtime information that the NFVO keeps + about the VnfProfile, NsProfile or PnfProfile indicated in the + OverridingVersionDependency. + Only the versionDependency in the VnfProfile, NsProfile or PnfProfile + with the same dependentConstituentId as in the overridingVersionDependency + is replaced. See note 2. + If no versionDependency with the dependentConstituentId indicated in the + overridingVersionDependency exists in the VnfProfile, NsProfile or PnfProfile, + the new versionDependency is added to the runtime information that the NFVO + keeps about the profile. + See note 3. + type: array + items: + $ref: "#/definitions/OverridingVersionDependency" + + vnfInstanceName: description: > Human-readable name of the VNF instance to be created. @@ -2163,11 +2672,11 @@ definitions: description: > This type represents location constraints for a VNF to be instantiated. The location constraints can be represented as follows: - • as a country code - • as a civic address combined with a country code - • as an area, conditionally combined with a country code + • as a country code + • as a civic address combined with a country code + • as an area, conditionally combined with a country code - NOTE: If both "countryCode" and "area" are present, no conflicts should + NOTE: If both "countryCode" and "area" are present, no conflicts should exist between the values of these two attributes. In case of conflicts, the API producer (i.e. the NFVO) shall disregard parts of the geographic area signalled by "area" that are outside the boundaries of the country @@ -2245,10 +2754,23 @@ definitions: This type specifies an existing VNF instance to be used in the NS instance and if needed, the VNF Profile to use for this VNF instance. It shall comply with the provisions defined in Table 6.5.3.19-1. + NOTE 1: If the overridingVnfdId attribute is present the vnfProfileId attribute shall also be present. + NOTE 2: This attribute allows to use an existing VNF instance based on a different VNFD to the one specified + in the NSD with vnfProfileId, provided both have the same vnfdExtInvariantId. + NOTE 3: A VnfProfile, NsProfile or PnfProfile may contain multiple VersionDependencies as it may describe the + version dependencies of the descriptor referenced in the profile or of other descriptors with the same external invariant identifier. + NOTE 4: The overridingVersionDependency attribute may only be present if the overridingVnfdId attribute is present. type: object - required: - - vnfInstanceId - - vnfProfileId + oneOf: + - required: + - vnfInstanceId + - required: + - vnfInstanceId + - overridingVnfdId + - required: + - vnfInstanceId + - overridingVnfdId + - overridingVersionDependency properties: vnfInstanceId: description: > @@ -2256,20 +2778,66 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" vnfProfileId: description: > - Identifier of (Reference to) a vnfProfile defined in the - NSD which the existing VNF instance shall be matched - with. If not present, the NFVO will select the VnfProfile - matching the information in the VNF instance. + Identifier of (Reference to) a vnfProfile defined in the NSD + which the existing VNF instance shall be matched with. If not + present, the NFVO will select the VnfProfile matching the + information in the VNF instance. See note 1. $ref: "#/definitions/IdentifierInNsd" + overridingVnfdId: + description: > + Reference to a VNFD. + It replaces the vnfdId indicated in the vnfProfileId. + The VNFD referenced by this attribute shall have the same + vnfdExtInvariantId as the one indicated in the VnfProfile. + If the VnfProfile does not contain a vnfdExtInvariantId this + attribute shall be ignored. If the VNFD of the existing VNF + instance referenced by vnfInstanceId does not match the VNFD + indicated by this attribute the VNF instance shall not be + added to the NS instance. See notes 1, 2 and 4. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + overridingVersionDependency: + description: > + If present, information in each overridingVersionDependency replaces + the versionDependency in the runtime information that the NFVO + keeps about the VnfProfile, NsProfile or PnfProfile indicated + in the OverridingVersionDependency. + Only the versionDependency in the VnfProfile, NsProfile or PnfProfile + with the same dependentConstituentId as in the overridingVersionDependency + is replaced. See note 3. + If no versionDependency with the dependentConstituentId indicated in the + overridingVersionDependency exists in the VnfProfile, NsProfile + or PnfProfile, the new versionDependency is added to the runtime + information that the NFVO keeps about the Profile. + See note 4. + type: array + items: + $ref: "#/definitions/OverridingVersionDependency" + NestedNsInstanceData: description: > This type specifies an existing nested NS instance to be used in the NS instance and if needed, the NsProfile to use for this nested NS instance. It shall comply with the provisions defined in Table 6.5.3.19a-1. + + NOTE 1: If the overridingNsdId attribute is present the nsProfileId attribute shall also be present. + NOTE 2: This attribute allows to use as nested NS an existing NS instance based on a different NSD to the one + specified in the composite NSD with nsProfileId, provided they have the same nsdExtInvariantId. + NOTE 3: A VnfProfile, NsProfile or PnfProfile may contain multiple VersionDependencies as it may describe + the version dependencies of the descriptor referenced in the profile or of other descriptors with the same external invariant identifier. + NOTE 4: The overridingVersionDependency attribute may only be present if the overridingNsdId attribute is present. + type: object - required: - - nestedNsInstanceId + oneOf: + - required: + - nestedNsInstanceId + - required: + - nestedNsInstanceId + - overridingNsdId + - required: + - nestedNsInstanceId + - overridingNsdId + - overridingVersionDependency properties: nestedNsInstanceId: description: > @@ -2277,11 +2845,46 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" nsProfileId: description: > - Identifier of an NsProfile defined in the NSD which the existing - nested NS instance shall be matched with. - If not present, the NFVO will select the NsProfile matching the - information in the nested NS instance. - $ref: "#/definitions/IdentifierInNs" + Identifier of an NsProfile defined in the NSD which the existing nested NS instance shall be matched with. + If not present, the NFVO will select the NsProfile matching the information in the nested NS instance. + See note 1. + $ref: "#/definitions/IdentifierInNsd" + overridingNsddId: + description: > + Reference to an NSD. + It replaces the nsdId indicated in the nsProfileId. + The NSD referenced by this attribute shall have the + same nsdExtInvariantId as the one indicated in the + NsProfile. If the NsProfile does not contain an + nsdExtInvariantId this attribute shall be ignored. + If the NSD of the existing NS instance referenced + by nestedNsInstanceId does not match the NSD + indicated by this attribute the NS instance + shall not be added as nested NS to the composite + NS instance. + See notes 1, 2 and 4. + + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + overridingVersionDependency: + description: > + If present, information in each overridingVersionDependency + replaces the versionDependency in the runtime information that + the NFVO keeps about the VnfProfile, NsProfile or PnfProfile + indicated in the OverridingVersionDependency. + Only the versionDependency in the VnfProfile, NsProfile + or PnfProfile with the same dependentConstituentId as in + the overridingVersionDependency is replaced. See note 3. + + If no versionDependency with the dependentConstituentId indicated + in the overridingVersionDependency exists in the VnfProfile, NsProfile + or PnfProfile, the new versionDependency is added to the runtime + information that the NFVO keeps about the profile. + See note 4. + type: array + items: + $ref: "#/definitions/OverridingVersionDependency" + + SapData: description: > @@ -2317,7 +2920,7 @@ definitions: This type represents a request for the scale NS operation. Either the parameter scaleNsData or the parameter scaleVnfData, but not both shall be provided - NOTE: Either the parameter scaleNsData or the parameter scaleVnfData, but not both shall be provided. + NOTE: Either the parameter scaleNsData or the parameter scaleVnfData, but not both shall be provided. type: object required: - scaleType @@ -2356,20 +2959,45 @@ definitions: Timestamp indicating the scale time of the NS, i.e. the NS will be scaled at this timestamp. Cardinality "0" indicates the NS scaling takes place immediately". + If the "Scale NS" is a scheduled operation, it shall be + possible to modify the schedule time, whereas it shall + not be possible to change any other operational parameters. + This attribute can be modified with the PATCH method. + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" UpdateNsRequest: description: > This operation supports the update of a NS instance operation. - NOTE 1: If a VNF instance is removed from an NS and this NS was the last one for which this VNF instance was a + NOTE 1: If a VNF instance is removed from an NS and this NS was the last one for which this VNF instance was a part, the VNF instance is terminated by the NFVO. - NOTE 2: It depends on the VNF capabilities, and is declared in the VNFD whether the operation is supported for + NOTE 2: It depends on the VNF capabilities, and is declared in the VNFD whether the operation is supported for a particular VNF. - NOTE 3: The operation might be service-disruptive. + NOTE 3: The operation might be service-disruptive. NOTE 4: For each of the referred vnfInstanceId in the terminateVnfData, there shall be a corresponding value in the removeVnfInstanceId. - + NOTE 5: A change of VNFD version of a constituent VNF where the source and target VNFD versions have the same + vnfdExtInvariantId can also be performed without a change in the NSD by a sequence of two Update NS + operations, the first one of type RemoveVnf, the second one of type AddVnf or of type InstantiateVnf; + or with the Scale NS operation, removing the existing VNF instance and adding a VNF instance with the + target VNFD. + NOTE 6: When feasibilityCheckReserve is set to FEASIBILITY_CHECK_ONLY, the "updateTime" attribute shall be ignored. + NOTE 7: When feasibilityCheckReserve is set to NO_FEASIBILITY_CHECK, the feasibility checking procedure is not + performed. Resources might be reserved as triggered by means outside of the present operation request + (e.g., configuration or policies), e.g. if it is a scheduled Update NS operation. See Annex A.2.3 in + ETSI GS NFV-IFA 010. + NOTE 8: When feasibilityCheckReserve is set to FEASIBILITY_CHECK_ONLY, only feasibility checking procedure is + performed for the operation, no resources are reserved. + NOTE 9: When feasibilityCheckReserve is set to FEASIBILITY_CHECK_WITH_OPERATION, the feasibility checking procedure + is performed and based on the procedure result, the actual Update NS operation is performed at the time + indicated by the "updateTime" attribute, if provided. Resources might be reserved as triggered by means + outside of the present operation request (e.g., configuration or policies), e.g. if it is a scheduled + Update NS operation. See Annex A.2.3 in ETSI GS NFV-IFA 010. + NOTE 10: When feasibilityCheckReserve is set to FEASIBILITY_CHECK_WITH_RESERVATION_AND_OPERATION, the feasibility + checking is performed and based on the procedure result, resources are reserved as part of the feasibility + check, and the actual Update NS operation is performed using the resources reserved during the feasibility + checking procedure execution, and at the time indicated by the "updateTime" attribute, if provided. type: object required: - updateType @@ -2385,7 +3013,7 @@ definitions: * OPERATE_VNF: Changing VNF state, * MODIFY_VNF_INFORMATION: Modifying VNF information and/or the configurable properties of VNF instance(s) * CHANGE_EXTERNAL_VNF_CONNECTIVITY: Changing the external connectivity of VNF instance(s) - * CHANGE_VNFPKG: Changing the VNF package(s) on which (a) VNF instance(s) is/are based + * CHANGE_VNFPKG: Changing the VNF package(s) on which (a) VNF instance(s) is/are based (see note 5) * ADD_SAP: Adding SAP(s) * REMOVE_SAP: Removing SAP(s) * ADD_NESTED_NS: Adding existing NS instance(s) as nested NS(s) @@ -2399,12 +3027,12 @@ definitions: * ADD_PNF: Adding PNF * MODIFY_PNF: Modifying PNF * REMOVE_PNF: Removing PNF - * CREATE_VNF_SNAPSHOT: Creating VNF Snapshots of VNF instances belonging to the NS instance. See note 2 + * CREATE_VNF_SNAPSHOT: Creating VNF Snapshots of VNF instances belonging to the NS instance. See note 2 * REVERT_VNF_TO_SNAPSHOT: Reverting a VNF instance belonging to the NS instance to a VNF Snapshot. See note 2 and note 3 * DELETE_VNF_SNAPSHOT_INFO: Deleting available VNF Snapshot information for a VNF instance belonging to the NS instance. See note 2 - * MODIFY_WAN_CONNECTION_INFO: Modify WAN related connectivity information. - * CREATE_NS_VIRTUAL_LINK: Create an NsVirtualLink instance. - * DELETE_NS_VIRTUAL_LINK: Delete an NsVirtualLink instance. + * MODIFY_WAN_CONNECTION_INFO: Modify WAN related connectivity information. + * CREATE_NS_VIRTUAL_LINK: Create an NsVirtualLink instance. + * DELETE_NS_VIRTUAL_LINK: Delete an NsVirtualLink instance. type: string enum: - ADD_VNF @@ -2415,7 +3043,7 @@ definitions: - MODIFY_VNF_INFORMATION - CHANGE_EXTERNAL_VNF_CONNECTIVITY - CHANGE_VNFPKG - - ADD SAP + - ADD_SAP - REMOVE_SAP - ADD_NESTED_NS - REMOVE_NESTED_NS @@ -2612,6 +3240,12 @@ definitions: Timestamp indicating the update time of the NS, i.e. the NS will be updated at this timestamp. Cardinality "0" indicates the NS update takes place immediately. + If the "Update NS" is a scheduled operation, it shall be + possible to modify the schedule time, whereas it shall not + be possible to change any other operational parameters. + This attribute can be modified with the PATCH method. + See note 6. + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" createSnapshotData: description: > @@ -2642,6 +3276,14 @@ definitions: type: array items: $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + feasibilityCheckReserve: + description: > + Specifies the feasibility check and reserve option for the Update NS operation. + Default option is NO_FEASIBILITY_CHECK. + If not present, default value applies. + See notes 6, 7, 8, 9 and 10. + $ref: "#/definitions/FeasibilityCheckReserveType" + InstantiateVnfData: description: > @@ -2650,19 +3292,78 @@ definitions: the OSS/BSS explicitly requests VNF instantiation for a given NS. When the NFVO invokes the Instantiate VNF update operation, a set of these parameters are then passed by the NFVO to the VNFM. - NOTE 1: It is possible to have several ExtManagedVirtualLinkData for the same VNF internal - VL in case of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkData - corresponding to the same VNF internal VL shall indicate so by referencing to the same - VnfVirtualLinkDesc and externally-managed multi-site VL instance (refer to clause 6.5.3.27). - NOTE 2: If vnfdId and vnfFlavourId (and vnfInstantiationLevelId, if provided) are present, - there should be only one vnfProfile that matches the vnfdId and vnfFlavourId (and vnfInstantiationLevelId, - if present) in the NS deployment flavour specified in the NSD associated to the NS instance to which - the present operation is triggered. In the case there is more than one matching vnfProfile, the NFVO - may select a matching vnfProfile based on other information, such as external VL. - NOTE 3: Either the attribute triple "vnfdId, vnfFlavourId and vnfInstantiationLevelId - (if provided)" or the attribute "vnProfileId" shall be present, but not both. + NOTE 1: It is possible to have several ExtManagedVirtualLinkData for the same VNF internal + VL in case of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkData + corresponding to the same VNF internal VL shall indicate so by referencing to the same + VnfVirtualLinkDesc and externally-managed multi-site VL instance (refer to clause 6.5.3.27). + NOTE 2: If vnfdId and vnfFlavourId (and vnfInstantiationLevelId, if provided) are present, + there should be only one vnfProfile that matches the vnfdId and vnfFlavourId (and vnfInstantiationLevelId, + if present) in the NS deployment flavour specified in the NSD associated to the NS instance to which + the present operation is triggered. In the case there is more than one matching vnfProfile, the NFVO + may select a matching vnfProfile based on other information, such as external VL. + NOTE 3: Either the attribute triple "vnfdId, vnfFlavourId and vnfInstantiationLevelId + (if provided)" or the attribute "vnProfileId" shall be present, but not both. + NOTE 4: The target size for VNF instantiation may be specified in either vnfInstantiationLevelId or + targetScaleLevelInfo, but not both. If none of the two attributes (vnfInstantiationLevelId or + targetScaleLevelInfo) are present, the default instantiation level as declared in the VNFD shall be used. + NOTE 5: If targetScaleLevelInfo is specified, information provided in targetScaleLevelInfo shall be used for instantiating + scalable constituents of the VNF (e.g, VDUs/VLs). For scaling aspects not specified in targetScaleLevelInfo + or for the VNF constituents (e.g., VDUs/VLs) that are not scalable, the default instantiation level as declared + in the VNFD shall be used for instantiation. + NOTE 6: If the overridingVnfdId attribute is present the vnfProfileId attribute shall also be present. + NOTE 7: This attribute allows at VNF instantiation the use of a VNFD different from the one specified + in the NSD with vnfProfileId provided the two VNFDs have the same vnfdExtInvariantId. + NOTE 8: A VnfProfile, NsProfile or PnfProfile may contain multiple VersionDependencies as it may describe the version + dependencies of the descriptor referenced in the profile or of other descriptors with the same external invariant identifier. + NOTE 9: The overridingVersionDependency attribute may only be present if the overridingVnfdId attribute is present. type: object + + oneOf: + - oneOf: + - required: + - vnfdId + - vnfFlavourId + - vnfInstantiationLevelId + - required: + - vnfdId + - vnfFlavourId + - vnfInstantiationLevelId + - overridingVnfdId + - required: + - vnfdId + - vnfFlavourId + - vnfInstantiationLevelId + - overridingVnfdId + - overridingVersionDependency + - required: + - vnfdId + - vnfFlavourId + - required: + - vnfdId + - vnfFlavourId + - overridingVnfdId + - required: + - vnfdId + - vnfFlavourId + - overridingVnfdId + - overridingVersionDependency + - oneOf: + - required: + - vnfProfileId + - required: + - vnfProfileId + - overridingVnfdId + - required: + - vnfProfileId + - overridingVnfdId + - overridingVersionDependency + properties: + defaultInstantiationLevel: + description: > + Default instantiation level + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + vnfdId: description: > Information sufficient to identify the VNFD which defines @@ -2679,17 +3380,23 @@ definitions: vnfInstantiationLevelId: description: > Identifier of the instantiation level of the deployment - flavor to be instantiated. If not present, the default - instantiation level as declared in the VNFD is - instantiated. - - See note 2 and 3. + flavor to be instantiated. + See notes 2, 3 and 4. $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + targetScaleLevelInfo: + description: > + This attribute is applicable if VNF supports target scale level instantiation. + + For each scaling aspect of the current deployment flavour, the attribute specifies the scale level of VNF constituents (e.g., VDU level) to be instantiated. + See notes 4 and 5. + type: array + items: + $ref: "#/definitions/VnfScaleInfo" vnfProfileId: description: > Identifier of (Reference to) a vnfProfile defined in the NSD which is used for instantiating the VNF. - See note 3. + See notes 3 and 6. $ref: "#/definitions/IdentifierInNsd" vnfInstanceName: description: > @@ -2730,8 +3437,11 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" additionalParams: description: > - Additional input parameters for the instantiation process, - specific to the VNF being instantiated. + Additional input parameters for the instantiation process, + specific to the VNF being instantiated, as declared in the + VNFD as part of "InstantiateVnfOpConfig" defined in ETSI + GS NFV-IFA 011. + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" metadata: description: > @@ -2758,26 +3468,80 @@ definitions: An example can be a constraint for the VNF to be in a specific geographic location. $ref: "#/definitions/VnfLocationConstraint" + overridingVnfdId: + description: > + Reference to a VNFD. + If present the vnfProfileId shall also be present. + It replaces the vnfdId indicated in the vnfProfileId. + The VNFD referenced by this attribute shall have the same + vnfdExtInvariantId as the one indicated in the VnfProfile. + If the VnfProfile does not contain a vnfdExtInvariantId this + attribute shall be ignored. + See notes 6, 7 and 9. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + overridingVersionDependency: + description: > + If present, information in each overridingVersionDependency + replaces the versionDependency in the runtime information that + the NFVO keeps about the VnfProfile, NsProfile or PnfProfile + indicated in the OverridingVersionDependency. + + Only the versionDependency in the VnfProfile, NsProfile or + PnfProfile with the same dependentConstituentId as in the + overridingVersionDependency is replaced. See note 8. + + If no versionDependency with the dependentConstituentId indicated + in the overridingVersionDependency exists in the VnfProfile, NsProfile + or PnfProfile, the new version Dependency is added to the runtime + information that the NFVO keeps about the profile. + See note 9. + + type: array + items: + $ref: "#/definitions/OverridingVersionDependency" + + + + ChangeVnfFlavourData: description: > The type represents the information that is requested to be changed deployment flavor for an existing VNF instance. - NOTE 1: The indication of externally-managed internal VLs + NOTE 1: The indication of externally-managed internal VLs is needed in case networks have been pre-configured for use with certain VNFs, for instance to ensure that these networks have certain properties such as security or acceleration features, or to address particular network topologies. The present document assumes that externally-managed internal VLs are managed by the NFVO and created towards the VIM. - NOTE 2: It is possible to have several ExtManagedVirtualLinkData for the same + NOTE 2: It is possible to have several ExtManagedVirtualLinkData for the same VNF internal VL in case of a multi-site VNF spanning several VIMs. The set of ExtManagedVirtualLinkData corresponding to the same VNF internal VL shall indicate so by referencing to the same VnfVirtualLinkDesc and externally-managed multi-site VL instance (refer to clause 6.5.3.27). + NOTE 3: The target size for VNF instantiation may be specified in either + instantiationLevelId or targetScaleLevelInfo, but not both. If none of the + two attributes (instantiationLevelId or targetScaleLevelInfo) are present, + the default instantiation level as declared in the VNFD shall be used. + NOTE 4: If targetScaleLevelInfo is specified, information provided in + targetScaleLevelInfo shall be used for instantiating scalable constituents + of the VNF (e.g, VDUs/VLs). For scaling aspects not specified in + targetScaleLevelInfo or for the VNF constituents (e.g., VDUs/VLs) that + are not scalable, the default instantiation level as declared in the VNFD + shall be used for instantiation. type: object - required: - - vnfInstanceId - - newFlavourId + oneOf: + - required: + - vnfInstanceId + - newFlavourId + - required: + - vnfInstanceId + - newFlavourId + - instantiationLevelId + - required: + - vnfInstanceId + - newFlavourId + - targetScaleLevelInfo properties: vnfInstanceId: description: > @@ -2790,10 +3554,18 @@ definitions: instantiationLevelId: description: > Identifier of the instantiation level of the deployment - flavor to be instantiated. If not present, the default - instantiation level as declared in the VNFD is - instantiated. - $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + flavour to be instantiated. + See note 3. + + targetScaleLevelInfo: + description: > + This attribute is applicable if VNF supports target scale level instantiation. + For each scaling aspect of the current deployment flavour, the attribute + specifies the scale level of VNF constituents (e.g., VDU level) to be instantiated. + See notes 3 and 4. + type: array + items: + $ref: "#/definitions/VnfScaleInfo" extVirtualLinks: description: > Information about external VLs to connect the VNF to. @@ -2828,7 +3600,7 @@ definitions: description: > This type represents a VNF instance for which the operational state needs to be changed and the requested new state. - NOTE: The "stopType" and "gracefulStopTimeout" attributes shall be absent, + NOTE: The "stopType" and "gracefulStopTimeout" attributes shall be absent, when the "changeStateTo" attribute is equal to "STARTED". The "gracefulStopTimeout" attribute shall be present, when the "changeStateTo" attribute is equal to "STOPPED" and the "stopType" attribute is equal to "GRACEFUL". The "gracefulStopTimeout" @@ -2950,7 +3722,7 @@ definitions: VL in the same operation. 3) Change the connectivity parameters of the existing external CPs, including changing addresses. - NOTE: Depending on the capabilities of the underlying VIM resources, certain changes (e.g. modifying the IP address + NOTE: Depending on the capabilities of the underlying VIM resources, certain changes (e.g. modifying the IP address assignment) might not be supported without deleting the resource and creating another one with the modified configuration. @@ -2988,6 +3760,13 @@ definitions: nsdInvariantId of the NSD version that is to be associated to this NS instance is different from the one used before, the NFVO shall reject the request. Only new versions of the same NSD can be associated to an existing NS instance. This data type shall comply with the provisions defined in Table 6.5.3.34-1. + NOTE: The replacement of VNF instances, nested NS instances or PNF instances + by instances whose descriptor is referenced by the new NSD is applicable even if + the instance with a descriptor not referenced from the new NSD has the same + VnfdExtInvariantId, NsdExtInvariantId or PnfdExtInvariantId as the new one, i.e. + the synchronization procedure is based on descriptor identities of NSD constituents, + and does not consider VnfdExtInvariantId, NsdExtInvariantId or PnfdExtInvariantId + values. type: object required: - newNsdId @@ -3014,7 +3793,7 @@ definitions: VNFD is referenced by the old NSD version but not referenced by the new NSD version, modifying information of VNF instances to the new applicable - VNFD provided in the new NSD version. + VNFD provided in the new NSD version. See note. A cardinality of 0 indicates that synchronization shall not be done. type: boolean @@ -3098,10 +3877,10 @@ definitions: This type contains information used to create or modify NFP instance parameters for the update of an existing VNFFG instance. It shall comply with the provisions defined in Table 6.5.3.38-1. - NOTE 1: It shall be present for modified NFPs and shall be absent for the new NFP. - NOTE 2: It shall be present for the new NFP, and it may be present otherwise. - NOTE 3: At least a CP or an nfpRule shall be present. - NOTE 4: When multiple identifiers are included, the position of the identifier + NOTE 1: It shall be present for modified NFPs and shall be absent for the new NFP. + NOTE 2: It shall be present for the new NFP, and it may be present otherwise. + NOTE 3: At least a CP or an nfpRule shall be present. + NOTE 4: When multiple identifiers are included, the position of the identifier in the cpGroup value specifies the position of the group in the path. type: object properties: @@ -3145,7 +3924,7 @@ definitions: it is met only if all the values expressed in the condition are matched by those in the packet. It shall comply with the provisions defined in Table 6.5.3.40-1. - NOTE: At least one attribute shall be present. If multiple attributes are present, a logical "AND" + NOTE: At least one attribute shall be present. If multiple attributes are present, a logical "AND" operation shall be applied to those attributes when matching packets against the rule. type: object anyOf: @@ -3185,8 +3964,8 @@ definitions: Indicates the protocol carried over the Ethernet layer. Permitted values: - - IPV4 - - IPV6 + - IPV4 + - IPV6 See note. type: string @@ -3195,7 +3974,7 @@ definitions: - IPV6 vlanTag: description: > - Indicates a VLAN identifier in an IEEE 802.1Q-2018 + Indicates a VLAN identifier in an IEEE 802.1Q™-2018 tag Multiple tags can be included for QinQ stacking. See note. type: array items: @@ -3281,6 +4060,13 @@ definitions: description: > This type specifies an PNF to be added to the NS instance and the PNF Profile to use for this PNF. It shall comply with the provisions defined in Table 6.5.3.14-1. + + NOTE 1: This attribute allows the use of a PNFD different from the one specified in + the NSD when adding the PNF to the NS, provided they have the same pnfdExtInvariantId. + NOTE 2: A VnfProfile, NsProfile or PnfProfile may contain multiple VersionDependencies + as it may describe the version dependencies of the descriptor referenced in the profile + or of other descriptors with the same external invariant identifier. + type: object required: - pnfId @@ -3291,6 +4077,12 @@ definitions: pnfId: description: > Identifier of the PNF. This identifier is allocated by the OSS/BSS. + If different to the one indicated in the referenced PnfProfile it replaces + it when adding the PNF to an NS. The PNFD referenced by this attribute shall + have the same pnfdExtInvariantId as the one indicated in the PnfProfile. If + the PnfProfile does not contain a pnfdExtInvariantId this attribute shall be ignored. + See note 1. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" pnfName: description: > @@ -3299,6 +4091,12 @@ definitions: pnfdId: description: > Identifier of the PNFD on which the PNF is based. + If different to the one indicated in the referenced PnfProfile it replaces + it when adding the PNF to an NS. The PNFD referenced by this attribute shall + have the same pnfdExtInvariantId as the one indicated in the PnfProfile. If + the PnfProfile does not contain a pnfdExtInvariantId this attribute shall be + ignored. See note 1 + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" pnfProfileId: description: > @@ -3310,6 +4108,50 @@ definitions: type: array items: $ref: "#/definitions/PnfExtCpData" + overridingVersionDependency: + description: > + If present, information in each overridingVersionDependency replaces + the versionDependency in the runtime information that the NFVO keeps + about the VnfProfile, NsProfile or PnfProfile indicated in the + OverridingVersionDependency. + Only the versionDependency in the VnfProfile, NsProfile or PnfProfile + with the same dependentConstituentId as in the overridingVersionDependency + is replaced. See note 2. + If no versionDependency with the dependentConstituentId indicated in + the overridingVersionDependency exists in the VnfProfile, NsProfile + or PnfProfile, the new versionDependency is added to the runtime + information that the NFVO keeps about the profile. + type: array + items: + $ref: "#/definitions/OverridingVersionDependency" + + OverridingVersionDependency: + description: > + This type represents the information to override or add a version + dependency in the runtime information that the NFVO keeps about a + profile of a NSD constituent. It shall comply with the provisions + defined in table 6.5.3.111-1. + + type: object + required: + - profileId + - versionDependency + properties: + profileId: + description: > + Reference to a vnfProfile, nsProfile or pnfProfile where the versionDependency + overrides an existing versionDependency or is added to the existing version + dependencies. + If the referenced profile contains a versionDependency with a dependentConstituent + equal to the one indicated in the versionDependency attribute of this information + element, the versionDependency in this information element overrides the one in the + profile, otherwise it is added to the version dependencies in the profile. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd" + versionDependency: + description: > + Describes version dependencies for a specific NSD constituent. + $ref: "#/definitions/VersionDependency" + PnfExtCpData: description: > @@ -3340,7 +4182,7 @@ definitions: This type specifies an PNF to be modified in the NS instance. It shall comply with the provisions defined in Table 6.5.3.15-1. - NOTE: At least one attribute shall be present. + NOTE: At least one attribute shall be present. type: object required: - pnfId @@ -3369,7 +4211,7 @@ definitions: description: > This type provides information about added, deleted, modified and temporary VLs. - NOTE: The resource handles of the affected NS link ports can be + NOTE: The resource handles of the affected NS link ports can be found by dereferencing the identifiers in the "linkPortIds" attribute. type: object required: @@ -3486,7 +4328,7 @@ definitions: description: > This type provides information about added, deleted and modified VNFs. - NOTE: At least one of the attributes "changedVnfInfo", "changedExtConnectivity" + NOTE: At least one of the attributes "changedVnfInfo", "changedExtConnectivity" or "modificationsTriggeredByVnfPkgChange" shall be present. Not more than one of "changedVnfInfo" and "modificationsTriggeredByVnfPkgChange" shall be present. type: object @@ -3536,7 +4378,7 @@ definitions: - OPERATE - MODIFY_INFORMATION - CHANGE_EXTERNAL_VNF_CONNECTIVITY - - CHANGE_VNFPKG + - CHANGE_VNFPKG type: string enum: - ADD @@ -3895,6 +4737,25 @@ definitions: - TERMINATE - HEAL + NsLcmInfoModificationRequest: + description: > + This type represents attribute modifications for an "Individual + NS LCM operation occurrence" resource, i.e. modifications to a + resource representation based on the "NsLcmOpOcc" data structure. + NOTE: The "scheduledTime" attribute represents the new value of + the "startTime" attribute of the "NsLcmOpOcc" data structure to + start the NS LCM operation. + type: object + required: + - scheduledTime + properties: + scheduledTime: + description: This attribute specifies the modifications to + the scheduled time of the specific NS LCM operation. + See note. + $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + + LccnSubscriptionRequest: description: > This type represents a subscription request related to notifications @@ -3981,7 +4842,7 @@ definitions: If an attribute is an array, the attribute shall match if at least one of the values in the array matches (logical "or" between the values of one filter attribute). - NOTE: The permitted values of the "notificationTypes" attribute are spelled exactly as the names + NOTE: The permitted values of the "notificationTypes" attribute are spelled exactly as the names of the notification types to facilitate automated code generation systems. type: object properties: @@ -3996,7 +4857,7 @@ definitions: - NsLcmOperationOccurrenceNotification - NsIdentifierCreationNotification - NsIdentifierDeletionNotification - - NsLcmCapacityShortageNotification + - NsLcmCapacityShortageNotification - NsChangeNotification See note. @@ -4091,14 +4952,14 @@ definitions: ScaleNsData: description: > This type represents the information to scale a NS. - NOTE 1: No more than two attributes between vnfInstanceToBeAdded, + NOTE 1: No more than two attributes between vnfInstanceToBeAdded, vnfInstanceToBeRemoved, scaleNsByStepsData and scaleNsToLevelData shall be present. In case of two, the attributes shall be vnfInstanceToBeAdded and vnfInstanceToBeRemoved. - NOTE 2: The DF of the VNF instance shall match the VNF DF present in the associated VNF + NOTE 2: The DF of the VNF instance shall match the VNF DF present in the associated VNF Profile of the new NS flavour. - NOTE 3: This functionality is the same as the one provided by the Update NS operation when + NOTE 3: This functionality is the same as the one provided by the Update NS operation when the AddVnf update type is selected (see clause 7.3.5). - NOTE 4: This functionality is the same as the one provided by the Update NS operation when + NOTE 4: This functionality is the same as the one provided by the Update NS operation when the RemoveVnf update type is selected (see clause 7.3.5). type: object properties: @@ -4171,11 +5032,11 @@ definitions: description: > This type represents defines the information to scale a VNF instance to a given level, or to scale a VNF instance by steps. - NOTE 1: ETSI GS NFV-IFA 010 (available at https://www.etsi.org/deliver/etsi_gs/NFV-IFA/001_099/010/03.02.01_60/gs_NFV-IFA010v030201p.pdf) + NOTE 1: ETSI GS NFV-IFA 010 (available at https://www.etsi.org/deliver/etsi_gs/NFV-IFA/001_099/010/03.02.01_60/gs_NFV-IFA010v030201p.pdf) specifies that the lifecycle management operations that expandor contract a VNF instance include scale in, scale out, scale up and scale down. Vertical scaling (scale up, scale down) is not supported in the present document. - NOTE 2: Either scaletoLevelData or scaleByStepData but not both shall be present. The scaleByStepData + NOTE 2: Either scaletoLevelData or scaleByStepData but not both shall be present. The scaleByStepData is used for scale out/in type of scaling, and the scaleToLevelData is used for scale to instantiation/scale level type of scaling. @@ -4255,7 +5116,7 @@ definitions: an NS instantiation level or as a list of NS scale levels, one per NS scaling aspect, of the current DF. The NS instantiation levels, the NS scaling aspects and their corresponding NS scale levels applicable to the NS instance are declared in the NSD. - NOTE: Either nsInstantiationLevel or nsScaleInfo, but not both, shall be present. + NOTE: Either nsInstantiationLevel or nsScaleInfo, but not both, shall be present. type: object oneOf: - required: @@ -4282,7 +5143,7 @@ definitions: an instantiation level of that DF as defined in the VNFD, or given as a list of scale levels, one per scaling aspect of that DF. Instantiation levels and scaling aspects are declared in the VNFD. The NFVO shall then invoke the ScaleVnfToLevel operation towards the appropriate VNFM. - NOTE: Either the instantiationLevelId attribute or the scaleInfo attribute shall be included. + NOTE: Either the vnfInstantiationLevelId attribute or the vnfScaleInfo attribute shall be included. type: object anyOf: - required: @@ -4314,7 +5175,7 @@ definitions: This type describes the information to scale a VNF instance by steps. The NFVO shall then invoke the Scale VNF operation towards the appropriate VNFM. - NOTE: A scaling step is the smallest unit by which a VNF instance can be scaled w.r.t a particular scaling aspect. + NOTE: A scaling step is the smallest unit by which a VNF instance can be scaled w.r.t a particular scaling aspect. type: object required: - aspectId @@ -4340,17 +5201,18 @@ definitions: the scaling process, specific to the VNF instance being scaled. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + NsLcmOperationStateType: description: > Value | Description ------|------------ - PROCESSING | The LCM operation is currently in execution. - COMPLETED | The LCM operation has been completed successfully. - PARTIALLY_COMPLETED | The LCM operation has been partially completed with accepTable errors. - FAILED_TEMP | The LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. - FAILED | The LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action will not succeed. - OLLING_BACK | The LCM operation is currently being rolled back. - ROLLED_BACK | The LCM operation has been successfully rolled back, i.e. The state of the NS prior to the original operation invocation has been restored as closely as possible. + PROCESSING | The NS LCM operation is currently in execution. + COMPLETED | The NS LCM operation has been completed successfully. + PARTIALLY_COMPLETED | The NS LCM operation has been partially completed with accepTable errors. + FAILED_TEMP | The NS LCM operation has failed and execution has stopped, but the execution of the operation is not considered to be closed. + FAILED | The NS LCM operation has failed and it cannot be retried or rolled back, as it is determined that such action will not succeed. + OLLING_BACK | The NS LCM operation is currently being rolled back. + ROLLED_BACK | The NS LCM operation has been successfully rolled back, i.e. The state of the NS prior to the original operation invocation has been restored as closely as possible. type: string enum: - PROCESSING @@ -4420,23 +5282,23 @@ definitions: NS component and trigger an NS change notification. It shall comply with the provisions defined in table 6.5.4.6-1. Value | Description - VNF_INSTANTIATE Represents the "Instantiate VNF" LCM operation. - VNF_SCALE Represents the "Scale VNF" LCM operation. - VNF_SCALE_TO_LEVEL Represents the "Scale VNF to Level" LCM operation. - VNF_CHANGE_FLAVOUR Represents the "Change VNF Flavour" LCM operation. - VNF_TERMINATE Represents the "Terminate VNF" LCM operation. - VNF_HEAL Represents the "Heal VNF" LCM operation. - VNF_OPERATE Represents the "Operate VNF" LCM operation. - VNF_CHANGE_EXT_CONN Represents the "Change external VNF connectivity" LCM operation. - VNF_MODIFY_INFO Represents the "Modify VNF Information" LCM operation. - VNF_CREATE_SNAPSHOT Represents the "Create VNF Snapshot" LCM operation. - VNF_REVERT_TO_SNAPSHOT Represents the "Revert To VNF Snapshot" LCM operation. - VNF_CHANGE_VNFPKG Represents the "Change current VNF package" LCM operation. - NS_INSTANTIATE Represents the "Instantiate NS" LCM operation. - NS_SCALE Represents the "Scale NS" LCM operation. - NS_UPDATE Represents the "Update NS" LCM operation. - NS_TERMINATE Represents the "Terminate NS" LCM operation. - NS_HEAL Represents the "Heal NS" LCM operation. + VNF_INSTANTIATE Represents the "Instantiate VNF" LCM operation. + VNF_SCALE Represents the "Scale VNF" LCM operation. + VNF_SCALE_TO_LEVEL Represents the "Scale VNF to Level" LCM operation. + VNF_CHANGE_FLAVOUR Represents the "Change VNF Flavour" LCM operation. + VNF_TERMINATE Represents the "Terminate VNF" LCM operation. + VNF_HEAL Represents the "Heal VNF" LCM operation. + VNF_OPERATE Represents the "Operate VNF" LCM operation. + VNF_CHANGE_EXT_CONN Represents the "Change external VNF connectivity" LCM operation. + VNF_MODIFY_INFO Represents the "Modify VNF Information" LCM operation. + VNF_CREATE_SNAPSHOT Represents the "Create VNF Snapshot" LCM operation. + VNF_REVERT_TO_SNAPSHOT Represents the "Revert To VNF Snapshot" LCM operation. + VNF_CHANGE_VNFPKG Represents the "Change current VNF package" LCM operation. + NS_INSTANTIATE Represents the "Instantiate NS" LCM operation. + NS_SCALE Represents the "Scale NS" LCM operation. + NS_UPDATE Represents the "Update NS" LCM operation. + NS_TERMINATE Represents the "Terminate NS" LCM operation. + NS_HEAL Represents the "Heal NS" LCM operation. type: string enum: @@ -4464,15 +5326,15 @@ definitions: This type represents a request a NS lifecycle operation occurrence. It shall comply with the provisions defined in Table 6.5.2.3-1. - NOTE 1: This allows the OSS/BSS to obtain a copy of the latest "result" notification if it has not received + NOTE 1: This allows the OSS/BSS to obtain a copy of the latest "result" notification if it has not received it due to an error. If the notification represents the successful result of a lifecycle operation, at least an affectedVnf, or affectedPnf, or affectedVl, or affectedVnffg or affectedNs, or affectedSap shall be present. - NOTE 2: A coordination action has timed out if the NFVO has not been able to read the "Individual coordination + NOTE 2: A coordination action has timed out if the NFVO has not been able to read the "Individual coordination action" resource within a timeout interval after requesting the coordination to be started or to be cancelled. The length of the timeout interval is defined by means outside the scope of the present document - NOTE 3: The list of rejected coordinations may be garbage collected if the LCM operation occurrence has reached + NOTE 3: The list of rejected coordinations may be garbage collected if the LCM operation occurrence has reached a terminal state, i.e. one of "COMPLETED", "FAILED", “PARTIALLY COMPLETED” and "ROLLED_BACK". type: object required: @@ -4489,13 +5351,13 @@ definitions: id: description: > Identifier of this NS lifecycle operation occurrence. - NOTE 1: This allows the OSS/BSS to obtain a copy of the latest "result" + NOTE 1: This allows the OSS/BSS to obtain a copy of the latest "result" notification if it has not received it due to an error. If the notification represents the successful result of a lifecycle operation, at least an affectedVnf, or affectedPnf, or affectedVl, or affectedVnffg or affectedNs, or affectedSap shall be present. - NOTE 2: A coordination action has timed out if the NFVO has not been able to read + NOTE 2: A coordination action has timed out if the NFVO has not been able to read the "Individual coordination action" resource within a timeout interval after requesting the coordination to be started or to be cancelled. The length of the timeout interval is defined by means outside the scope of the present document. @@ -4678,7 +5540,7 @@ definitions: description: > The endpoint type used by this coordination action. Valid values: - - MGMT: coordination with other operation supporting management systems (e.g. OSS/BSS) + - MGMT: coordination with other operation supporting management systems (e.g. OSS/BSS) type: string enum: - MGMT @@ -4713,7 +5575,7 @@ definitions: description: > The endpoint type used by this coordination action. Valid values: - - MGMT: coordination with other operation supporting management systems (e.g. OSS/BSS) + - MGMT: coordination with other operation supporting management systems (e.g. OSS/BSS) type: string enum: - MGMT @@ -4791,6 +5653,11 @@ definitions: CpProtocolData: description: > This type represents network protocol data. + + NOTE: This attribute allows to signal the addition of further types + of layer and protocol in future versions of the present document in + a backwards-compatible way. In the current version of the present + document, only IP over Ethernet is supported. type: object required: - layerProtocol @@ -4798,10 +5665,14 @@ definitions: layerProtocol: description: > Identifier of layer(s) and protocol(s). - Permitted values: IP_OVER_ETHERNET. + Permitted values: + - IP_OVER_ETHERNET + - IP_FOR_VIRTUAL_CP + See note. type: string enum: - IP_OVER_ETHERNET + - IP_FOR_VIRTUAL_CP ipOverEthernet: description: > Network address data for IP over Ethernet to @@ -4809,15 +5680,52 @@ definitions: present if layerProtocol is equal to "IP_OVER_ETHERNET", and shall be absent otherwise. $ref: "#/definitions/IpOverEthernetAddressData" + virtualCpAddress: + description: > + IP address data to assign to an external CP instance + exposing a virtual CP. It shall be present if + layerProtocol is equal to “IP_FOR_VIRTUAL_CP” and + the external CP instance exposes a virtual CP and + shall not be present otherwise. + $ref: "#/definitions/VirtualCpAddressData" + + + VirtualCpAddressData: + description: > + This type represents network address data for a virtual CP. + It shall comply with the provisions defined in table 6.5.3.12a-1. + type: object + required: + - type + properties: + type: + description: > + Identifier of layer(s) and protocol(s). + Permitted values: IP_OVER_ETHERNET. + type: string + enum: + - IPV4 + - IPV6 + loadBalancerIp: + description: > + Fixed address to assign to an external load balancer. + + If the container cluster is set up to be able to configure an external + load balancer this address will be used, otherwise it will be ignored by the CISM. + In case the cluster can configure an external load balancer + but no loadBalancerIp is provided the container cluster will assign an IP address. + $ref: "#/definitions/IpAddress" + + IpOverEthernetAddressData: description: > This type represents network address data for IP over Ethernet. - NOTE 1: At least one of "macAddress" or "ipAddresses" shall be present. - NOTE 2: Exactly one of "fixedAddresses", "numDynamicAddresses" or "ipAddressRange" shall be present. - NOTE 3: If the CP instance represents a subport in a trunk, "segmentationId" shall be present. + NOTE 1: At least one of "macAddress" or "ipAddresses" shall be present. + NOTE 2: Exactly one of "fixedAddresses", "numDynamicAddresses" or "ipAddressRange" shall be present. + NOTE 3: If the CP instance represents a subport in a trunk, "segmentationId" shall be present. Otherwise it shall not be present. - NOTE 4: Depending on the NFVI networking infrastructure, the "segmentationId" may indicate + NOTE 4: Depending on the NFVI networking infrastructure, the "segmentationId" may indicate the actual network segment value (e.g. vlan Id, Vxlan segmentation id, etc.) used in the transport header of the packets or it may be an identifier used between the application and the NFVI networking infrastructure to identify the network sub-interface of the trunk port in question. In the latter @@ -4839,8 +5747,8 @@ definitions: description: > Specifies the encapsulation type for the traffics coming in and out of the trunk subport. Permitted values are: - - VLAN: The subport uses VLAN as encapsulation type. - - INHERIT: The subport gets its segmentation type from the network it is connected to. + - VLAN: The subport uses VLAN as encapsulation type. + - INHERIT: The subport gets its segmentation type from the network it is connected to. This attribute may be present for CP instances that represent subports in a trunk and shall be absent otherwise. If this attribute is not present for a subport CP instance, default value VLAN shall be used. type: string @@ -4927,15 +5835,16 @@ definitions: description: > This type represents an external VL. - NOTE: A link port is not needed for an external CP instance that exposes a VIP CP in the following cases: - 1. For a VIP CP directly exposed as extCP: - 1.1. no dedicated IP address is allocated as VIP address, as indicated in the VNFD - 1.2. a dedicated IP address is allocated as VIP address, + NOTE 1: A link port is not needed for an external CP instance that exposes a VIP CP in the following cases: + 1. For a VIP CP directly exposed as extCP: + 1.1. no dedicated IP address is allocated as VIP address, as indicated in the VNFD + 1.2. a dedicated IP address is allocated as VIP address, but the NFVO indicates that no port is needed (createExtLinkPort in VnfExtCpConfig set to false). - 2. For a VIP CP exposed as extCP via a floating IP address: - 2.1. no dedicated IP address is allocated as VIP address, as indicated in the VNFD, + 2. For a VIP CP exposed as extCP via a floating IP address: + 2.1. no dedicated IP address is allocated as VIP address, as indicated in the VNFD, and the VNFC CP associated to the VIP CP is also exposed via a floating IP address. - + NOTE 2: An example of the network attachment definition resource when the container infrastructure service + is a Kubernetes® instance is a network attachment definition (NAD). type: object required: - resourceId @@ -4977,19 +5886,68 @@ definitions: external connection points to this external VL unless the extCp exposes a VIP CP and a link port is not needed for it based on the conditions defined below. - See note. + See note 1. type: array items: $ref: "#/definitions/ExtLinkPortData" + extNetAttDefResourceData: + description: > + Externally provided network attachment definition resource(s) that + provides the specification of the interface to attach external CPs to + this external VL. See note 2. + + It is only applicable if the external VL is realized by a secondary + container cluster network. It shall not be present otherwise. + type: array + items: + $ref: "#/definitions/NetAttDefResourceData" + + + NetAttDefResourceData: + description: > + This type represents the information related to a network attachment definition + resource that provides the specification of the interface to be used to connect + one or multiple connection points to a secondary container cluster network + realizing a VL. + type: object + required: + - netAttDefResourceId + - resourceHandle + properties: + netAttDefResourceId: + description: > + Identifier of this network attachment definition resource as provided by the entity that has created it. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + resourceHandle: + description: > + Resource handle of the resource identifying the network attachment definition resource that provides + the specification of the interface to attach the connection points to a secondary container cluster network. + $ref: "../../definitions/SOL005_def.yaml#/definitions/ResourceHandle" ExtManagedVirtualLinkData: description: > This type represents an externally-managed internal VL. It shall comply with the provisions defined in Table 6.5.3.27-1. + + NOTE 1: It is only applicable if the externally-managed VL is realized by a + secondary container cluster network. It shall not be present otherwise. + NOTE 2: An example of the network attachment definition resource when the + container infrastructure service is a Kubernetes® instance is a network + attachment definition (NAD). type: object - required: - - vnfVirtualLinkDescId - - resourceId + oneOf: + - required: + - vnfVirtualLinkDescId + - resourceId + - required: + - vnfVirtualLinkDescId + - resourceId + - netAttDefResourceData + - required: + - vnfVirtualLinkDescId + - resourceId + - netAttDefResourceData + - intCp properties: extManagedVirtualLinkId: description: > @@ -5022,11 +5980,27 @@ definitions: vnfLinkPort: description: > Externally provided link ports to be used to connect VNFC connection points to this externally-managed VL on - this network resource. If this attribute is not present, the VNFM shall create the link ports on the + this network resource. If this attribute is not present, the NFVO or the VNFM shall create the link ports on the externally-managed VL. type: array items: $ref: "#/definitions/VnfLinkPortData" + netAttDefResourceData: + description: > + Externally provided network attachment definition resource(s) that provides the specification of the + interface to attach VNFC connection points to this externally-managed VL. If this attribute is not present, + the NFVO shall create the network attachment definition resource(s) for the externally-managed VL. + See notes 1 and 2. + type: array + items: + $ref: "#/definitions/NetAttDefResourceData" + intCp: + description: > + Internal CPs of the VNF to be connected to this externally-managed VL. See note 1. + This attribute may only be present if the "netAttDefResourceData" is also present. + type: array + items: + $ref: "#/definitions/IntVnfCpData" extManagedMultisiteVirtualLinkId: description: > Identifier of the externally-managed multi-site VL instance. The identifier is assigned by the NFV-MANO entity @@ -5036,20 +6010,46 @@ definitions: on the same virtualLinkDescId shall refer to the same extManagedMultisiteVirtualLinkId. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + IntVnfCpData: + description: > + This type represents the input information related to one or more VNF internal CP instances created based on the same CPD. + NOTE: Cardinality greater than 1 is only applicable for specific cases where more than one network attachment definition + resource is needed to fulfil the connectivity requirements of the VNF internal CP, e.g. to build a link redundant mated + pair in SR-IOV cases. When more than one "netAttDefResourceId" is indicated, all shall belong to the same namespace as + defined by the corresponding "netAttDefResourceNamespace" attribute in the "NetAttDefResourceData". + type: object + required: + - cpdId + - netAttDefResourceId + properties: + cpdId: + description: > + Identifier of the CPD in the VNFD. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnfd" + netAttDefResourceId: + description: > + Identifier of the "NetAttDefResourceData" structure that provides the + specification of the interface to attach the VNF internal CP created + from the CPD identified by cpdId to a secondary container cluster network. + See note. + + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVnf" + + VnfExtCpData: description: > This type represents configuration information for external CPs created from a CPD. - NOTE 1: In case this identifier refers to a CPD with trunking enabled, the external + NOTE 1: In case this identifier refers to a CPD with trunking enabled, the external CP instances created from this CPD will represent ports in a trunk. - NOTE 2: The map entry value shall be set to "null" in order to delete a "VnfExtCpConfig" + NOTE 2: 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. - NOTE 3: Within one VNF instance, all VNFC instances created from a particular VDU have the + NOTE 3: 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 @@ -5086,7 +6086,7 @@ definitions: description: > This type represents an externally provided link port to be used to connect an external connection point to an external VL. - NOTE: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute. + NOTE: The value of "trunkResourceId" is scoped by the value of "vimConnectionId" in the "resourceHandle" attribute. type: object required: - id @@ -5111,27 +6111,46 @@ definitions: VnfExtCpConfig: description: > - This type represents an externally provided link port or network address - information per instance of an external connection point. In case a link - port is provided, the VNFM shall use that link port when connecting the - external CP to the external VL. In a link port is not provided, the VNFM - shall create a link port on the external VL, and use that link port to - connect the external CP to the external VL. - NOTE 1: The following conditions apply to the attributes "linkPortId" and "cpProtocolData": - - At least one of the "linkPortId" and "cpProtocolData" attributes shall be present for + This type represents an externally provided link port, or a network attachment definition + resource of secondary container cluster network, or network address information per + instance of a VNF external connection point. In the case of VM-based deployment of the + VNFC exposing the external CP: In case a link port is provided, the NFVO shall use that + link port when connecting the VNF external CP to the external VL. • In case a link port + is not provided, the NFVO or VNFM shall create a link port on the external VL, and use + that link port to connect the VNF external CP to the external VL. In the case of + container-based deployment of the VNFC exposing the external CP, the NFVO and VNFM + shall use the network attachment definition resource of secondary container cluster + network when connecting the CP to the external VL. + + NOTE 1: The following conditions apply to the attributes "linkPortId" and "cpProtocolData" + for an external CP instance connected or to be connected to a virtual network not + categorized as secondary container cluster network: + - At least one of the "linkPortId" and "cpProtocolData" attributes shall be present for an external CP instance representing a subport that is to be created, or an external CP instance that is to be created by creating the corresponding VNFC or VNF instance during the current or a subsequent LCM operation, or for an existing external CP instance that is to be re-configured or added to a particular external virtual link. - - If the "cpProtocolData" attribute is absent, the "linkPortId" attribute shall be provided + - If the "cpProtocolData" attribute is absent, the "linkPortId" attribute shall be provided referencing a pre-created link port with pre-configured address information. - - If both "cpProtocolData" and "linkportId" are provided, the API consumer shall ensure that + - 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". - NOTE 2: In case the NFVO manages its own identifier space, the NFVO may remap this identifier + NOTE 2: 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. + NOTE 3: The following conditions apply to the attributes “netAttDefResourceId” and “cpProtocolData” + for an external CP instance connected or to be connected to a secondary container cluster network; + The "netAttDefResourceId" 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. + NOTE 4: Cardinality greater than 1 is only applicable for specific cases where more than one network + attachment definition resource is needed to fulfil the connectivity requirements of the external CP, + e.g. to build a link redundant mated pair in SR-IOV cases. When more than one "netAttDefResourceId" + is indicated, all shall belong to the same namespace as defined by the corresponding + "netAttDefResourceNamespace" attribute in the "NetAttDefResourceData". + NOTE 5: Either "linkPortId" or "netAttDefResourceId" may be included, but not both. type: object - anyOf: + oneOf: - required: - linkPortId - required: @@ -5146,7 +6165,7 @@ definitions: linkPortId: description: > Identifier of a pre-configured link port to which the external CP - will be associated. + will be associated. . See notes 1 and 5. See note 1. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" createExtLinkPort: @@ -5161,10 +6180,21 @@ definitions: description: > Parameters for configuring the network protocols on the link port that connects the CP to a VL. - See note 1. + See notes 1 and 3. type: array items: $ref: "#/definitions/CpProtocolData" + netAttDefResourceId: + description: > + Identifier of the "NetAttDefResourceData" structure that provides the specification + of the interface to attach the external CP to a secondary container cluster network. + It is only applicable if the external CP is connected or to be connected to a secondary + container cluster network. It shall not be present if the external CP is related to a + virtual network not categorized as secondary container cluster network. + See notes 3, 4 and 5. + type: array + items: + $ref: "#/definitions/IdentifierInVnf" IdentifierInNs: description: > @@ -5349,7 +6379,7 @@ definitions: description: | This type provides information about the connectivity to the WAN of network resources realizing a VL, e.g., when the VL is deployed on several sites across a WAN. It shall comply with the provisions defined in table 6.5.3.90-1. - NOTE: Either a "nsVirtualLinkInfoId" or a "vnfVirtualLinkResourceInfoId" shall be provided, but not both. + NOTE: Either a "nsVirtualLinkInfoId" or a "vnfVirtualLinkResourceInfoId" shall be provided, but not both. type: object required: - wanConnectionInfoId @@ -5405,7 +6435,7 @@ definitions: description: | This type provides 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.80-1. - NOTE: Either a "nsVirtualLink" or a "vnfVirtualLink" shall be provided, but not both. + NOTE: Either a "nsVirtualLink" or a "vnfVirtualLink" shall be provided, but not both. type: object required: - protocolData @@ -5465,21 +6495,19 @@ definitions: This type specifies the information needed to change the current VNF package for a VNF instance. Clause B.3 of the ETSI GS NFV-IFA 007 illustrates the variants of changes to the current VNF Package and information flow procedures. This operation encompasses the following scenarios: - * Changes of the VNF virtualised resources, such as requirements, composition and structure between the VNF versions, + * Changes of the VNF virtualised resources, such as requirements, composition and structure between the VNF versions, without changing the VNF software version. - * Changes of both the VNF software version and the VNF virtualised resources. This case includes replacing the VNF + * Changes of both the VNF software version and the VNF virtualised resources. This case includes replacing the VNF software version by means of virtualised resources management, such as terminating the current virtualized resource instances running the current software version and instantiating new virtualized resource instances with the destination VNF software version. The new virtualized resource instances may have the same characteristics as the current virtualized resource instances. - * Changes related to the VNFD, such as correction of bugs in the VNFD, changes in the naming scheme of VNFD components + * Changes related to the VNFD, such as correction of bugs in the VNFD, changes in the naming scheme of VNFD components (e.g. name of the VDU, vduId), and adding/removing descriptors of VNF Package changes (VnfPackageChangeInfo). - NOTE: For software updates that are executed by functional entities outside NFV-MANO and that require synchronization - of the information held by the NFV-MANO entities with a new VNF package that reflects the same changes, an - alternative procedure using the PATCH method on the "Individual VNF instance" resource has been defined, as - illustrated in annex B.2 of ETSI GS NFV-IFA 007 [19]. This procedure assumes certain restrictions on the - characteristics of the new VNF package, as defined in note 1 in table 5.5.2.2-1 of ETSI GS NFV-SOL 003. - This type shall comply with the provisions defined in Table 6.5.3.54-1. + + NOTE: A VnfProfile, NsProfile or PnfProfile may contain multiple VersionDependencies as it may describe the version + dependencies of the descriptor referenced in the profile or of other descriptors with the same external invariant + identifier. type: object required: - vnfInstanceId @@ -5525,6 +6553,20 @@ definitions: operation, and needed passed parameter values in case of conflicts, are defined in clause 5.4.11a.3.1 of ETSI GS NFV-SOL 003. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + overridingVersionDependency: + description: > + If present, information in each overridingVersionDependency replaces the versionDependency in the VnfProfile, + NsProfile or PnfProfile indicated in the OverridingVersionDependency. + + Only the versionDependency in the VnfProfile, NsProfile or PnfProfile with the same dependentConstituentId as + in the overridingVersionDependency is replaced. + See note. + If no versionDependency with the dependentConstituentId indicated in the overridingVersionDependency exists + in the VnfProfile, NsProfile or PnfProfile, the new versionDependency is added to the runtime information + that the NFVO keeps about the profile. + type: array + items: + $ref: "#/definitions/OverridingVersionDependency" DeleteVnfSnapshotData: description: > @@ -5595,11 +6637,11 @@ definitions: VnfcSnapshotInfo: description: > This type represents a VNFC Snapshot. It shall comply with the provisions defined in table 6.5.3.77-1. - NOTE 1: The identifier of the compute snapshot resource is assigned during creation of a VNFC + NOTE 1: The identifier of the compute snapshot resource is assigned during creation of a VNFC Snapshot being returned from the VIM as output data in the response message of the individual resource operations. This attribute shall only be present for a VNFC snapshot that has been newly created by the VNFM as a result of the "Create VNF snapshot task". - NOTE 2: The identifier of the storage snapshot resource is assigned during creation of a VNFC snapshot + NOTE 2: The identifier of the storage snapshot resource is assigned during creation of a VNFC snapshot being returned from the VIM as output data in the response message of the individual resource operations. This attribute shall only be present for a VNFC snapshot with an associated storage resource and that has been newly created by the VNFM as a result of the "Create VNF snapshot task". @@ -5813,8 +6855,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: - - L2 - - L3 + - L2 + - L3 type: string enum: - L2VPN @@ -5823,12 +6865,12 @@ 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_BGP_MPLS: as specified in IETF RFC 7432. Only applicable for mscsType="L2". + - 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". + - 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_BGP_MPLS @@ -5854,10 +6896,10 @@ definitions: description: > Defines the protection scheme. Permitted values: - - UNPROTECTED: to indicate no protection. - - ONE_TO_ONE: to indicate an active-passive access protection. - - ONE_PLUS_ONE: to indicate an active-active access protection. - - ONE_TO_N: to indicate an N active to 1 passive access protection. + - UNPROTECTED: to indicate no protection. + - ONE_TO_ONE: to indicate an active-passive access protection. + - ONE_PLUS_ONE: to indicate an active-active access protection. + - ONE_TO_N: to indicate an N active to 1 passive access protection. type: string enum: - UNPROTECTED @@ -5893,9 +6935,9 @@ definitions: description: > Directionality of the data traffic in the context of the terminating MSCS endpoint from WAN’s perspective. Permitted values: - - INBOUND: to indicate into the WAN. - - OUTBOUND: to indicate from the WAN. - - BOTH: to indicate bidirectional data traffic to/from the WAN. + - INBOUND: to indicate into the WAN. + - OUTBOUND: to indicate from the WAN. + - BOTH: to indicate bidirectional data traffic to/from the WAN. type: string enum: - INBOUND @@ -5945,7 +6987,7 @@ definitions: This type provides information about Layer 2 protocol specific information for the configuration of the NFVI-PoP network gateway to enable the stitching of the intra-site VN to the MSCS over the WAN. It shall comply with the provisions defined in Table 6.5.3.85-1. - NOTE: Either "networkResources" or "vnSegmentsIds" shall be provided, but not both. + NOTE: Either "networkResources" or "vnSegmentsIds" shall be provided, but not both. type: object required: - layer2ConnectionInfo @@ -5964,8 +7006,8 @@ definitions: description: > The type of connection to be established on the connectivity service point. Permitted values: - - CSE: defined by the characteristics of the existing referred connectivity service point. - - AGGREGATE_CSE: create an aggregation of the connectivity service endpoints. + - CSE: defined by the characteristics of the existing referred connectivity service point. + - AGGREGATE_CSE: create an aggregation of the connectivity service endpoints. type: string enum: - CSE @@ -5975,8 +7017,8 @@ definitions: To indicate whether to create logical interfaces on the referred connectivity service endpoint or new aggregated connectivity service endpoint. Permitted values: - - PARENT: use the mapped interface to the connectivity service endpoint as is, i.e., do not create logical interfaces. - - LOGICAL: create logical interfaces. + - PARENT: use the mapped interface to the connectivity service endpoint as is, i.e., do not create logical interfaces. + - LOGICAL: create logical interfaces. type: string enum: - PARENT @@ -5985,8 +7027,8 @@ definitions: description: > The type of frames to forward on the connectivity service point. Permitted values: - - UNTAGGED: an interface where frames are not tagged. - - TAGGED: an interface configured to forward tagged frames (i.e., enabled for VLAN tagging). + - UNTAGGED: an interface where frames are not tagged. + - TAGGED: an interface configured to forward tagged frames (i.e., enabled for VLAN tagging). type: string enum: - UNTAGGED @@ -5995,9 +7037,9 @@ definitions: description: > The type of encapsulation. If the interfaceTagging="TAGGED", either "VLAN" or "VXLAN" shall be set. Permitted values: - - ETH: generic Ethernet encapsulation. - - VLAN: encapsulation based on VLAN. - - VXLAN: encapsulation based on VXLAN. + - ETH: generic Ethernet encapsulation. + - VLAN: encapsulation based on VLAN. + - VXLAN: encapsulation based on VXLAN. type: string enum: - ETH @@ -6008,8 +7050,8 @@ definitions: Type of encapsulation method for VLAN tagging. Shall be present if interfaceTagging="TAGGED" and encapsulationType="VLAN". Permitted values: - - 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 + - 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 @@ -6045,8 +7087,8 @@ definitions: Type of VXLAN access mode. Default value is "STATIC". Permitted values: - - STATIC - - BGP_EVPN + - STATIC + - BGP_EVPN type: string enum: - STATIC @@ -6178,12 +7220,12 @@ definitions: description: > The routing protocol that is activated on the connectivity service endpoint. Permitted values: - - BGP: used for dynamic routing BGPv4. - - RIP: used for dynamic routing RIPv2. - - OSPF: used for dynamic routing (OSPF version 2 for IPv4; and OSPF version 3 for IPv6). - - STATIC: used for static routing. - - DIRECT: used when the NFVI-PoP network is directly connected to the WAN provider network. - - VRRP: used when the NFVI-PoP network is directly connected to the WAN provider network with virtual + - BGP: used for dynamic routing BGPv4. + - RIP: used for dynamic routing RIPv2. + - OSPF: used for dynamic routing (OSPF version 2 for IPv4; and OSPF version 3 for IPv6). + - STATIC: used for static routing. + - DIRECT: used when the NFVI-PoP network is directly connected to the WAN provider network. + - VRRP: used when the NFVI-PoP network is directly connected to the WAN provider network with virtual router redundancy protocol support (VRRP). type: string enum: @@ -6207,8 +7249,8 @@ definitions: description: > The IP version applicable to the routing entry. Permitted values: - - IPV4 - - IPV6 + - IPV4 + - IPV6 type: string enum: - IPV4 @@ -6229,8 +7271,8 @@ definitions: description: > The IP version applicable to the dynamic routing protocol. Shall be present for dynamic routing protocols. Permitted values: - - IPV4 - - IPV6 + - IPV4 + - IPV6 type: string enum: - IPV4 @@ -6279,8 +7321,8 @@ definitions: The policy to apply to the route distribution. Permitted values: - - PERMIT - - DENY + - PERMIT + - DENY type: string enum: - PERMIT @@ -6328,8 +7370,8 @@ 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: - - L2 - - L3 + - L2 + - L3 type: string enum: - L2 @@ -6354,10 +7396,10 @@ definitions: description: > Defines the protection scheme. Permitted values: - - UNPROTECTED - - ONE_TO_ONE - - ONE_PLUS_ONE - - ONE_TO_N + - UNPROTECTED + - ONE_TO_ONE + - ONE_PLUS_ONE + - ONE_TO_N type: string enum: - UNPROTECTED @@ -6390,11 +7432,11 @@ 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_BGP_MPLS: 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_L2TP: as specified in IETF RFC 4762 and IETF RFC 6074. - - VPWS_LDP_L2TP: as specified in IETF RFC 6074. + - VPLS_BGP: as specified in IETF RFC 4761 and IETF RFC 6624. + - 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_BGP_MPLS @@ -6419,7 +7461,7 @@ 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: - - BGP_IP_VPN: BGP/MPLS based IP VPN as specified in IETF RFC 4364. + - BGP_IP_VPN: BGP/MPLS based IP VPN as specified in IETF RFC 4364. type: string enum: - BGP_IP_VPN @@ -6531,7 +7573,7 @@ definitions: description: > This type specifies the parameters used for the creation of a new NsVirtualLink instance. It shall comply with the provisions defined in table 6.5.3.95-1. - NOTE: All NsVirtualLink instances of a particular NS DF based on a specific "NsVirtualLinkDesc" + NOTE: All NsVirtualLink instances of a particular NS DF based on a specific "NsVirtualLinkDesc" have the same characteristics as they use the same "VirtualLinkProfile". type: object required: @@ -6577,11 +7619,46 @@ definitions: enum: - FULL - SHORT - + VersionDependency: + description: > + This type represents the information related to all dependencies that an NSD constituent has on the versions of other NSD constituents. + It shall comply with the provisions defined in table 6.5.3.112-1. + type: object + required: + - dependentConstituentId + properties: + dependentConstituentId: + description: > + Identifier of the NSD constituent (vnfdId, nsdId or pnfdId) which has version dependencies on other NSD constituents. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd" + versionDependencyStatement: + description: > + Identifies one or multiple versions of an NSD constituents upon which the dependent constituent identified by + dependentConstituentId has a dependency. Cardinality 0 is used to remove an existing version dependency in a profile. + type: array + items: + $ref: "#/definitions/VersionDependencyStatement" + VersionDependencyStatement: + description: > + This type represents the information related to one or more VNF, NS or PNF descriptor identifiers which describe one + single dependency. When more than one descriptor is indicated, they correspond to different versions of the same VNF, + NS or PNF and they represent alternatives to fulfil the dependency. It shall comply with the provisions defined in + table 6.5.3.113-1. + type: object + required: + - descriptorId + properties: + descriptorId: + description: Identifies a VNFD, NSD or PNFD upon which the entity using this information element depends. + When more than one descriptor is indicated, they shall correspond to versions of the same VNF, NS or PNF + and they represent. alternatives, i.e. the presence of one of them fulfills the dependency. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd" TerminateVnfData: description: > This type represents the information to terminate a VNF that is part of an NS. - NOTE: If the VNF is still in service, requesting forceful termination can adversely impact network service. + NOTE: If the VNF is still in service, requesting forceful termination can adversely impact network service. type: object required: - vnfInstanceId @@ -6595,8 +7672,8 @@ definitions: Indicates whether forceful or graceful termination is requested. See note. Permitted values: - - FORCEFUL - - GRACEFUL + - FORCEFUL + - GRACEFUL type: string enum: - FORCEFUL @@ -6611,7 +7688,7 @@ definitions: additionalParams: description: > Additional parameters passed by the OSS/BSS as input to the termination process, specific to the VNF being terminated. - EXAMPLE: Input parameters to VNF-specific termination procedures. + EXAMPLE: Input parameters to VNF-specific termination procedures. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" TerminateNsData: @@ -6673,4 +7750,198 @@ definitions: Allows the OSS/BSS to provide additional parameter(s) to the termination process at the NS level. type: array items: - $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" \ No newline at end of file + $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" + + FeasibilityCheckResultType: + description: > + The enumeration FeasibilityCheckResultType defines the permitted values to represent the result of + executing a feasibility check according to the options defined in clause 6.5.4.14. It shall comply + with the provisions defined in table 6.5.4.15-1. + type: string + enum: + - FEASIBILITY_CHECK_DONE + - FEASIBILITY_CHECK_DONE_WITH_RESERVATION + + FeasibilityCheckReserveType: + description: > + The enumeration FeasibilityCheckReserveType defines the permitted values to represent the feasibility + check and reserve options applicable for the NS LCM operations. It shall comply with the provisions + defined in table 6.5.4.14-1. + type: string + enum: + - NO_FEASIBILITY_CHECK + - FEASIBILITY_CHECK_ONLY + - FEASIBILITY_CHECK_WITH_OPERATION + - FEASIBILITY_CHECK_WITH_RESERVATION_AND_OPERATION + + + + DataFlowMirroringData: + description: > + This type represents the information for the data flow mirroring to be associated to this NS instance. + It shall comply with the provisions defined in table 6.5.3.100-1. + type: object + required: + - mirroringId + - mirroringName + - description + - collectorDetails + - dataFlowData + properties: + mirroringId: + description: > + Identifier of this DataFlowMirroringData. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + mirroringName: + description: > + Name of Data Flow Mirroring. + type: string + description: + description: > + Information description of Data Flow Mirroring. + type: string + collectorDetails: + description: > + Information about where the mirrored flow is to be delivered. + $ref: "#/definitions/CollectorDetails" + dataFlowData: + description: > + Information about the data flows to be mirrored. + type: array + items: + $ref: "#/definitions/DataFlowData" + + DataFlowData: + description: > + This type represents the information about the data flows to be mirrored. + It shall comply with the provisions defined in table 6.5.3.101-1. + NOTE: A value need not be provided at runtime if the APIconsumer does not + intend to refer to a data flow defined in the NSD. + + type: object + required: + - DataFlowDetails + properties: + dataFlowInfoId: + description: > + Identifier of the Data flow information in NSD. It may be provided if a corresponding data flow has been declared in the NSD. + A value need not be provided at runtime if the APIconsumer does not intend to refer to a data flow defined in the NSD. See note. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd" + dataFlowDetails: + description: > + Detailed information about the data flows that are requested to be mirrored. + $ref: "#/definitions/DataFlowDetails" + + DataFlowDetails: + description: > + This type represents the detailed information about the data flows that are requested to be mirrored. + It shall comply with the provisions defined in table 6.5.3.102-1. + + NOTE 1: It shall be present when dataFlowInfoId in DataFlowData is not provided. + NOTE 2: Depends on the value of the direction of the data flow to be mirrored, this + attribute defines whether the data flow from the connection point to the target IP address + or the data flow from the target IP address to the connection point or both shall be mirrored. + type: object + properties: + description: + description: > + Information description of the data flow. + type: string + cpdId: + description: > + Identifies the descriptor of an external connection point on a VNF/PNF or a + SAP which acts as the mirroring point of the data flow to be mirrored. See note 1. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInNsd" + direction: + description: > + The direction of the data flow that are requested to be mirrored. See note 1. + $ref: "#/definitions/DirectionType" + targetIpAddress: + description: > + If present, only the data flow to or/and from the target IP address shall be mirrored. See note 2. + $ref: "#/definitions/IpAddress" + + DirectionType: + type: string + description: The enumeration DirectionType represents the direction of the data flow that are requested + to be mirrored. It shall comply with the provisions defined in table 6.5.4.12-1. + enum: + - IN + - OUT + - BOTH + + CollectorDetails: + description: > + This type represents the information about where the mirrored flow is to be delivered. + It shall comply with the provisions defined in table 6.5.3.103-1. + NOTE: The collector which is attached to this port can be a virtual machine that uses the mirrored + data for analysis purpose. The collector is not managed by VIM. + type: object + required: + - collectorId + - collectorName + properties: + collectorId: + description: > + Identifier of the collector where the mirrored flow is to be delivered. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + collectorName: + description: > + Name of the collector where the mirrored flow is to be delivered. + type: string + portId: + description: > + Identifier of the collector port managed by VIM where the mirrored flow is to be delivered. + See note. + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierInVim" + + CreateDataFlowMirroring: + description: > + This type represents the information for the data flow mirroring to be associated to + this NS instance. It shall comply with the provisions defined in table 6.5.3.104-1. + type: object + required: + - dataFlowMirroringData + properties: + dataFlowMirroringData: + description: > + Information for the data flow mirroring to be associated to this NS instance. + $ref: "#/definitions/DataFlowMirroringData" + vnfInstanceId: + description: > + Identifier of the VNF instance from where the data flows are requested to be mirrored. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + cpInstanceId: + description: > + Identifier of the CP instance from where the data flows are requested to be mirrored. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + + UpdateDataFlowMirroring: + description: > + This type represents the information on the data flow mirroring associated to the NS instance + that is being modified. It shall comply with the provisions defined in table 6.5.3.105-1. + + NOTE: Updating Data Flow Mirroring can involve one or more following cases: + 1) updating the name of data flow mirroring, related to “mirroringName”. + 2) updating information description of data flow mirroring, related to “description”. + 3) updating the definition about where the mirrored data flow is requested to be delivered, related to “collectorDetails”. + type: object + required: + - mirroringId + properties: + mirroringId: + description: > + Identifier of the Data Flow Mirroring to be updated. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + mirroringName: + description: > + Name of Data Flow Mirroring. See note. + type: string + description: + description: > + Information description of Data Flow Mirroring. See note. + type: string + collectorDetails: + description: > + New information about the destination where the mirrored flow is to be delivered. See note. + $ref: "#/definitions/CollectorDetails" diff --git a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml index cba8174db25b156b05c505d4ca1e2173694a5707..7c62814e93837ede953818727f8be15c858ab779 100644 --- a/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml +++ b/src/SOL005/NSLifecycleManagementNotification/NSLifecycleManagementNotification.yaml @@ -14,11 +14,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/callback/v2 diff --git a/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml b/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml index 1b77d94e7048baf9744246b56d4d90066c6a8cf4..568ebbf709594c66a4786e6bc6949c279bed9c17 100644 --- a/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml +++ b/src/SOL005/NSLifecycleManagementNotification/definitions/SOL005NSLifecycleManagementNotification_def.yaml @@ -3,6 +3,9 @@ definitions: NsLcmOperationOccurrenceNotification: type: object + description: This type represents an NS lifecycle management operation occurrence notification, + which informs the receiver of changes in the NS lifecycle caused by an NS LCM operation occurrence. + The NS LCM operation occurrence may be triggered by the OSS/BSS or automatically triggered by the NFVO. required: - id - nsInstanceId @@ -22,12 +25,16 @@ definitions: multiple times due to multiple subscriptions, the "id" attribute of all these notifications shall have the same value. - NOTE: 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 + NOTE 1: Shall be present if the "notificationStatus" is set to "RESULT", + the "verbosity" attribute is set to "FULL" and the operation has performed + any resource modification. Shall be absent otherwise. This attribute contains + information about the cumulative changes to virtualised resources that were + performed so far by the NS LCM operation occurrence and by any of the error handling procedures for that operation occurrence. + NOTE 2: In case of failure in feasibility checking, additional information on + the failure shall be reported in the "error" attribute of the + NsLcmOperationOccurrenceNotification structure along with the result. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" nsInstanceId: description: > @@ -93,50 +100,55 @@ definitions: affectedVnf: description: > Information about the VNF instances that were affected - during the lifecycle operation. See note. + during the lifecycle operation. See note 1. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVnf" affectedPnf: description: > Information about the PNF instances that were affected - during the lifecycle operation. See note. + during the lifecycle operation. See note 1. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedPnf" affectedVl: description: > Information about the VL instances that were affected - during the lifecycle operation. See note. + during the lifecycle operation. See note 1. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedVirtualLink" affectedVnffg: description: > Information about the VNFFG instances that were - affected during the lifecycle operation. See note. + affected during the lifecycle operation. See note 1. 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.See note 1. 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. See note. + Information about the SAP instances that were affected during the lifecycle operation. See note 1. type: array items: $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/AffectedSap" + feasibilityCheckResult: + description: > + Information about the feasibility check result. The attribute shall be provided if the notification is sent + to indicate the result of feasibility check. See note 2. + $ref: "../../NSLifecycleManagement/definitions/SOL005NSLifecycleManagement_def.yaml#/definitions/FeasibilityCheckResultType" error: description: > Details of the latest error, if one has occurred during executing the LCM operation (see clause 6.3 of ETSI GS NFV SOL 013). Shall be present if operationState is "FAILED_TEMP" or - "FAILED", and shall be absent otherwise. + "FAILED", and shall be absent otherwise. See note 2. $ref: "../../definitions/SOL005_def.yaml#/definitions/ProblemDetails" _links: description: > @@ -242,16 +254,16 @@ definitions: of an NS LCM operation which will cause the LCM operation to be not successfully completed, or which will trigger the automatic executing of an LCM operation to reduce the resource consumption of one or more NS instances to resolve a resource shortage situation. The shortage conditions include: - • Necessary resources could not be allocated during an LCM operation because of resource shortage which causes + • Necessary resources could not be allocated during an LCM operation because of resource shortage which causes the LCM operation to fail. - • An LCM operation on an NS instance with higher priority pre-empted an LCM operation on NS instance with lower + • An LCM operation on an NS instance with higher priority pre-empted an LCM operation on NS instance with lower priority because of resource shortage. - • An LCM operation on an NS instance with higher priority pre-empted an existing NS instance. Resources were + • An LCM operation on an NS instance with higher priority pre-empted an existing NS instance. Resources were de-allocated from the lower priority NS instance to allow the LCM operation on a higher priority NS instance. - • The resource capacity shortage situation has ended, and it can be expected that an LCM operation that had + • The resource capacity shortage situation has ended, and it can be expected that an LCM operation that had failed could succeed now if retried. - NOTE: ETSI GS NFV-IFA 013 [x] defines further shortage situations. + NOTE: ETSI GS NFV-IFA 013 [x] defines further shortage situations. These are not supported by the present version of the present document. This notification shall also be triggered by the NFVO when a shortage condition has ended that has previously @@ -271,7 +283,7 @@ definitions: (“status“ = "LCM_SHORTAGE_END") which are pointed by "affectedNsId" in the list of "affectedOpOccs" structure can have the operations retried again (which needs a request by the OSS/BSS). - NOTE 1: The present version of the present document supports only the resource shortage status enumeration + NOTE 1: The present version of the present document supports only the resource shortage status enumeration values “LCM_RESOURCES_NOT_AVAILABLE” and “LCM_SHORTAGE_END” which represent a subset of the trigger conditions defined in clause 8.3.5.2 of ETSI GS NFV-IFA 013 [x]. type: object @@ -319,9 +331,9 @@ definitions: description: > Indicates the situation of capacity shortage. Permitted values: - - LCM_RESOURCES_NOT_AVAILABLE: the lifecycle operation identified by the nsLcmOpOccId attribute could not + - LCM_RESOURCES_NOT_AVAILABLE: the lifecycle operation identified by the nsLcmOpOccId attribute could not be completed because necessary resources were not available. - - LCM_SHORTAGE_END: the shortage situation which has caused the lifecycle management operation identified + - LCM_SHORTAGE_END: the shortage situation which has caused the lifecycle management operation identified by the nsLcmOpOccId attribute to fail has ended. type: string enum: @@ -331,7 +343,7 @@ definitions: description: > Indicates whether this notification reports about a resource shortage or NFV-MANO capacity or performance shortage. Permitted values: - - RESOURCE_SHORTAGE: the notification reports a resource shortage. + - RESOURCE_SHORTAGE: the notification reports a resource shortage. Shall be present when a resources shortage situation has been identified starts and the notification is sent with “status“ = “LCM_RESOURCES_NOT_AVAILABLE“ and shall be absent otherwise. @@ -364,9 +376,9 @@ definitions: affected by the resource shortage. Permitted values: - - PRE_EMPTED: the operation was pre-empted and the "operationState" = "FAILED_TEMP” of the NsLcmOpOcc + - PRE_EMPTED: the operation was pre-empted and the "operationState" = "FAILED_TEMP” of the NsLcmOpOcc structure identified by "affectedOpOccId" attribute. - - TRIGGERED: the operation was triggered by NFVO and the “operationState” = "FAILED_TEMP” of the + - TRIGGERED: the operation was triggered by NFVO and the “operationState” = "FAILED_TEMP” of the NsLcmOpOcc structure identified by "affectedOpOccId" attribute. In case the notification indicates the end of a shortage condition (“status“ = "LCM_SHORTAGE_END"), @@ -434,6 +446,9 @@ definitions: NsChangeNotification: type: object + description: This type represents an NS change notification, which informs the receiver of changes on an NS instance + caused by an LCM operation occurrence, which directly or indirectly impacts its NS component and is triggered without + any context of this NS instance. required: - id - nsInstanceId diff --git a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml index b36f7130f1dafa8d099d29b86035a33d86c0d672..e837c4c61a4609913b09168ce893f41a38de40ad 100644 --- a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml +++ b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/nspm/v2 @@ -96,7 +96,7 @@ paths: The following attributes shall be excluded from the PmJob structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - - Reports + - Reports schema: type: string - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker @@ -1058,6 +1058,31 @@ components: explode: false schema: type: string + Etag: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + Last-Modified: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + If-Unmodified-Since: + description: The If-Unmodified-Since of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + If-Match: + description: The If-Match of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + content: application/json: schema: @@ -1371,6 +1396,30 @@ components: explode: false schema: type: string + Etag: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + Last-Modified: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + If-Unmodified-Since: + description: The If-Unmodified-Since of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + If-Match: + description: The If-Match of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string content: application/json: schema: diff --git a/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml b/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml index a7b12b5681514a0962a450df0c11d5c6e3f3bd64..a2ab4dd15a04eb411a867da592a3eb60a5de2e39 100644 --- a/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml +++ b/src/SOL005/NSPerformanceManagementNotification/NSPerformanceManagementNotification.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.2.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/callback/v2 diff --git a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml index d220354844f219072ae7924266ebd7a73ccba00c..4054387cd5f0956f2f59f664a4a96d882153a05c 100644 --- a/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml +++ b/src/SOL005/VNFPackageManagement/VNFPackageManagement.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/vnfpkgm/v2 @@ -59,11 +59,11 @@ paths: The NFVO shall support this parameter. The following attributes shall be excluded from the VnfPkgInfo structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - - softwareImages - - additionalArtifacts - - userDefinedData - - checksum - - onboardingFailureDetails + - softwareImages + - additionalArtifacts + - userDefinedData + - checksum + - onboardingFailureDetails schema: type: string - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker @@ -159,6 +159,13 @@ paths: delete: description: | The DELETE method deletes an individual VNF Package resource. See clause 9.4.3.3.5. + A VNF Package may only be deleted once: + • there are no VNFs using it, + • there are no NSs using it, + • there are no NSDs referencing to it which have a value of "strict NSD constituent onboarding" set to True, and + • the operational state is DISABLED. + NOTE: An NS instance can be using a VNF Package even if no VNF instance is using it if the VNF is part of the + selected NS deployment flavour but the current NS scale level determines zero instances for the VNF. responses: "204": $ref: '#/components/responses/IndividualVnfPackage.Delete.204' @@ -411,7 +418,24 @@ paths: put: description: | The PUT method uploads the content of a VNF package. - See clause 9.4.5.3.3. + This method shall follow the provisions specified in the tables 9.4.5.3.3-1 + and 9.4.5.3.3-2 for URI query parameters, request and response data structures, + and response codes. + Upon start of the upload of the package, the NFVO shall set the "onboardingState" + attribute in the "VnfPkgInfo" structure to "UPLOADING". Upon successful upload of + the 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", 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 uploading 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". + If there are on-boarded NSDs that refer to the VNFD included in this VNF Package, their + respective NsdInfo records are updated to refer to the on-boarded VNF Package. parameters: - $ref: ../components/SOL005_params.yaml#/components/parameters/Accept - $ref: ../components/SOL005_params.yaml#/components/parameters/ContentType @@ -743,7 +767,7 @@ components: 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), - representing this artifact. See note 2 and note 3 + representing this artifact. See note 2 and note 3. required: true style: simple explode: false @@ -1013,6 +1037,30 @@ components: explode: false schema: type: string + Etag: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + Last-Modified: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + If-Unmodified-Since: + description: The If-Unmodified-Since of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + If-Match: + description: The If-Match of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string content: application/json: schema: @@ -1184,6 +1232,31 @@ components: explode: false schema: type: string + Etag: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + Last-Modified: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + If-Unmodified-Since: + description: The If-Unmodified-Since of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + If-Match: + description: The If-Match of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + content: application/json: schema: diff --git a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml index 230927107ca8774c5eb905798813e77a35e38ef4..fbd217e88229d391db534ff8252dd4e7aa06b13c 100644 --- a/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml +++ b/src/SOL005/VNFPackageManagement/definitions/SOL005VNFPackageManagement_def.yaml @@ -30,6 +30,15 @@ definitions: It is copied from the VNFD of the on boarded VNF package. It shall be present after the VNF package content has been on-boarded and absent otherwise. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfdExtInvariantId: + description: > + Identifies a VNFD in a version independent manner. This attribute is invariant + across versions of the VNFD that fulfil certain conditions related to the external + connectivity and management of the VNF. It shall be present after the VNF package + content has been on-boarded if it is included in the VNFD and shall be absent otherwise. + If present it is copied from the VNFD of the on-boarded VNF package. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" + vnfProvider: description: > Provider of the VNF package and the VNFD. This information is copied from the VNFD. diff --git a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml index 342cae489e7875d91b5cc05c05cc2bef5f720af4..6ad48adbd8f1a953a412b432906411dae30c1d32 100644 --- a/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml +++ b/src/SOL005/VNFPackageManagementNotification/VNFPackageManagementNotification.yaml @@ -16,11 +16,11 @@ info: license: name: ETSI Forge copyright notice url: https://forge.etsi.org/etsi-forge-copyright-notice.txt - version: 2.3.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 + version: 2.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/callback/v2 diff --git a/src/SOL005/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml b/src/SOL005/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml index adfa75e97539c61b8a7a68759cc0f2573cf2bc4a..f91012373b0a843a875378656dc5ab891616dbf4 100644 --- a/src/SOL005/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml +++ b/src/SOL005/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml @@ -16,11 +16,11 @@ 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.10.0-impl:etsi.org:ETSI_NFV_OpenAPI:1 externalDocs: - description: ETSI GS NFV-SOL 005 V3.6.1 - url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/03.06.01_60/gs_nfv-sol005v030601p.pdf + description: ETSI GS NFV-SOL 005 V4.3.1 + url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/005/04.03.01_60/gs_NFV-SOL005v040301p.pdf servers: - url: http://127.0.0.1/vnfsnapshotpkgm/v1 @@ -96,10 +96,10 @@ paths: The following attributes shall be excluded from the VnfSnapshotPkgInfo structure in the response body if this parameter is provided, or none of the parameters "all_fields", "fields", "exclude_fields", "exclude_default" are provided: - - vnfcSnapshotImages - - additionalArtifacts - - userDefinedData - - checksum + - vnfcSnapshotImages + - additionalArtifacts + - userDefinedData + - checksum schema: type: string - $ref: ../components/SOL005_params.yaml#/components/parameters/nextpage_opaque_marker @@ -856,6 +856,30 @@ components: explode: false schema: type: string + Etag: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + Last-Modified: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + If-Unmodified-Since: + description: The If-Unmodified-Since of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + If-Match: + description: The If-Match of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string content: application/json: schema: @@ -1480,6 +1504,30 @@ components: explode: false schema: type: string + Etag: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + Last-Modified: + description: The Etag of the response header. + style: simple + explode: false + schema: + type: string + If-Unmodified-Since: + description: The If-Unmodified-Since of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string + If-Match: + description: The If-Match of the response header. Available if in the previous response Last-Modified or ETag header was sent. + style: simple + explode: false + schema: + type: string content: application/json: schema: diff --git a/src/SOL005/definitions/SOL005_def.yaml b/src/SOL005/definitions/SOL005_def.yaml index 0b9b4409bdd563b2947063770ee16d0d2c520ea8..9699ec99b1f3d639d2be677c9838481b5a9f84f9 100644 --- a/src/SOL005/definitions/SOL005_def.yaml +++ b/src/SOL005/definitions/SOL005_def.yaml @@ -12,6 +12,7 @@ definitions: description: > Date-time stamp. Representation: String formatted according toas defined by the date-time production in IETF RFC 3339. + type: string format: date-time Uri: @@ -239,8 +240,20 @@ definitions: This type represents the information that allows addressing a virtualised resource that is used by a VNF instance or by an NS instance. Information about the resource is available from the VIM. - NOTE: The value set of the "vimLevelResourceType" attribute is within the scope of the VIM, - the WIM or the resource provider and can be used as information that complements the ResourceHandle. + + NOTE 1: The value set of the "vimLevelResourceType" attribute is within the scope of the VIM, + the CISM, the WIM or the resource provider and can be used as information that complements + the ResourceHandle. When the container infrastructure service is a Kubernetes® instance the + vimLevelResourceType is the type of resource, as would correspond to the ‘kind’ field if the + resource is declared in its own Kubernetes® manifest, e.g.: Pod, PersistentVolumeClaim, + NetworkAttachmentDefinition. + NOTE 2: When the container infrastructure service is a Kubernetes® instance the resourceId shall be populated in the following way: + * For a compute MCIO, it is the instance identifier that Kubernetes® assigns, which is unique cluster wide per resource type. + * For a storage MCIO modelled as a persistent volume claim, it is the name of the persistent volume claim, i.e. the value of the + ‘claimName’ field in the Kubernetes® manifest, or a compound name built by Kubernetes® if the persistent volume claim is + defined inline in another template instead of in its own manifest. + * For a network MCIO representing a NetworkAttachmentDefinition, a Service or an Ingress, it is the value of the + ‘metadata.name’ field in Kubernetes® manifest. type: object required: @@ -248,10 +261,11 @@ definitions: properties: vimId: description: > - Identifier of the VIM or WIM under whose control this resource is placed. - This attribute shall be present if VNF-related resource management - in direct mode is applicable. It shall also be present for resources - that are part of an NS instance such as virtual link resources. + Identifier of the VIM or CISM or WIM under whose control this resource is placed. + This attribute shall be supported when the resource is managed by a CISM. + When the resource is managed by a VIM or WIM, this attribute shall be present + if VNF-related resource management in direct mode is applicable. It shall also + be present for resources that are part of an NS instance such as virtual link resources. $ref: "#/definitions/Identifier" resourceProviderId: description: > @@ -262,17 +276,53 @@ definitions: $ref: "#/definitions/Identifier" resourceId: description: > - Identifier of the resource in the scope of the VIM, the WIM or the resource provider. + Identifier of the resource in the scope of the VIM, the CISM, the WIM or the resource provider. + See note 2. $ref: "#/definitions/IdentifierInVim" vimLevelResourceType: description: > - Type of the resource in the scope of the VIM, the WIM or the resource provider. - The value set of the "vimLevelResourceType" attribute is within the scope - of the VIM, the WIM or the resource provider and can be used as information that - complements the ResourceHandle. - See note. + Additional resource information which is specific to this resource and its type, and which + is available from the VIM or the CISM or the resource provider. See note 1. + type: string + + vimLevelAdditionalResourceInfo: + description: > + Type of the resource in the scope of the VIM, the CISM, the WIM or the resource provider. + $ref: "#/definitions/AdditionalResourceInfo" + + containerNamespace: + description: > + The value of the namespace in which the MCIO corresponding to the resource is deployed. + This attribute shall be present if the resource is managed by a CISM and it shall be absent otherwise. type: string + AdditionalResourceInfo: + description: > + This type represents additional resource information which resource and resource type specific, and which + is available from the VIM or the CISM or the resource provider. + NOTE: At least one attribute shall be present. + type: object + properties: + hostName: + description: > + Name of the host where the resource is allocated. It shall be present for compute resources in the + scope of the CISM and shall be absent otherwise. See note. + type: string + persistentVolume: + description: > + Name of the persistent volume to which the persistent volume claim representing the storage resource + is bound. It may be present for storage resources in the scope of the CISM and shall be absent otherwise. + See note. + type: string + additionalInfo: + description: > + nformation related to other properties directly owned by the resource and available from the VIM or + CISM or WIM or the resource provider. See note. + $ref: "#/definitions/KeyValuePairs" + + + + IdentifierInNs: description: > An identifier that is unique with respect to a NS. Representation: string of variable length. @@ -292,7 +342,7 @@ definitions: IdentifierInVim: description: > - An identifier maintained by the VIM or other resource provider. + An identifier maintained by the VIM or the CISM or other resource provider. It is expected to be unique within the VIM instance. Representation: string of variable length. type: string @@ -435,4 +485,4 @@ definitions: description: > The token endpoint from which the access token can be obtained. Shall be present if it has not been provisioned out of band. - $ref: "#/definitions/Uri" \ No newline at end of file + $ref: "#/definitions/Uri" diff --git a/src/SOL005/endpoints/SOL005_endpoints.yaml b/src/SOL005/endpoints/SOL005_endpoints.yaml index 96788733a281bc376986a04a5a0fafded222b9c9..7ae8dce541015456d6aa38bf4448ac3034f04cc2 100644 --- a/src/SOL005/endpoints/SOL005_endpoints.yaml +++ b/src/SOL005/endpoints/SOL005_endpoints.yaml @@ -3,8 +3,6 @@ endpoints: api-versions: - parameters: - - $ref: ../components/SOL005_params.yaml#/components/parameters/Version get: description: > The GET method reads API version information. This method shall follow the provisions specified in diff --git a/src/SOL005/responses/SOL005_resp.yaml b/src/SOL005/responses/SOL005_resp.yaml index d9047a1c550bb44286bb51668a655cf222c09f94..8ef9393b1dc7e0a9c856a72699a5bdbb07ec5bb5 100644 --- a/src/SOL005/responses/SOL005_resp.yaml +++ b/src/SOL005/responses/SOL005_resp.yaml @@ -3,6 +3,8 @@ components: responses: + + 202: description: > 202 ACCEPTED