From 26c44a2a6edc42975df54f4adafa875e63a09edd Mon Sep 17 00:00:00 2001 From: Samir Medjiah Date: Thu, 2 Jul 2020 18:41:13 +0200 Subject: [PATCH] SOL00: modifications according to v304 --- src/SOL005/NSDManagement/NSDManagement.yaml | 16 ++-- .../SOL005NSDescriptorManagement_def.yaml | 4 +- .../NSPerformanceManagement.yaml | 8 ++ .../SOL005NSPerformanceManagement_def.yaml | 38 ++++---- ...PerformanceManagementNotification_def.yaml | 5 ++ .../VNFSnapshotPackageManagement.yaml | 47 ++++++---- ...OL005VNFSnapshotPackageManagement_def.yaml | 87 ++++++++++--------- 7 files changed, 125 insertions(+), 80 deletions(-) diff --git a/src/SOL005/NSDManagement/NSDManagement.yaml b/src/SOL005/NSDManagement/NSDManagement.yaml index 4497659..cb715ca 100644 --- a/src/SOL005/NSDManagement/NSDManagement.yaml +++ b/src/SOL005/NSDManagement/NSDManagement.yaml @@ -412,16 +412,22 @@ paths: • If the "Accept" header contains both "text/plain" and "application/zip", it is up to the NFVO to choose the format to return for a single-file NSD; for a multi-file NSD, a ZIP file shall be returned. - The default format of the ZIP file shall be the one specified in ETSI GS NFV-SOL 007 + The default format of the ZIP file shall comply with the CSAR format as specified in ETSI GS NFV-SOL 007 where only the YAML files representing the NSD, and information necessary to navigate the ZIP file and to identify the file that is the entry point for parsing the NSD and - (if requested) further security information are included. This means that the content + (if requested) further security information are included and other artifacts referenced from the YAML files are excluded. This means that the content of the ZIP archive shall contain the following files from the NSD archive: • TOSCA.meta (if available in the NSD archive); - • the main service template (either as referenced from TOSCA.meta or available as a + • The main TOSCA definitions YAML file (either as referenced by the Entry-Definitions keyword from TOSCA.meta or available as a file with the extension ".yml" or ".yaml" from the root of the archive); - • every component of the NSD referenced (recursively) from the main service template; - • the related security information, if the "include_signatures" URI parameter is provided, as follows: + • Other TOSCA YAML files, if any, as referenced by the Other-Definitions keyword from TOSCA.meta; + • Every component of the NSD referenced (recursively) from the theYAML files as mentioned above; + NOTE 1: For a NSD based on TOSCA, it includes all the imported type definition files as indicated + in the top level the main service template and in any of the lower level service template if it + has any as described in ETSI GS NFV-SOL 001. + NOTE 2: For a NSD based on YANG, it includes the file as indicated by the "yang_definitions" + keyname in the metadata section of the main yaml file as described in ETSI GS NFV-SOL 007. + • The related security information, if the "include_signatures" URI parameter is provided, as follows: - the manifest file; - the singleton certificate file in the root of the NSD archive (if available in the NSD archive); - the signing certificates of the individual files included in the ZIP archive diff --git a/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml index 08f2968..c246405 100644 --- a/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml +++ b/src/SOL005/NSDManagement/definitions/SOL005NSDescriptorManagement_def.yaml @@ -22,7 +22,7 @@ definitions: description: > 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 [25]). + according to the rules of JSON Merge Patch (see IETF RFC 7396). NOTE- At least one of the attributes - nsdOperationalState and userDefinedData - shall be present. type: array items: @@ -273,7 +273,7 @@ definitions: userDefinedData: description: > User defined data for the individual PNF descriptor resource. - This attribute can be modified with the PATCH method. + This attribute can be modified with the Patch method. $ref: "../../definitions/SOL005_def.yaml#/definitions/KeyValuePairs" _links: required: diff --git a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml index 73d08a2..50504a1 100644 --- a/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml +++ b/src/SOL005/NSPerformanceManagement/NSPerformanceManagement.yaml @@ -70,6 +70,8 @@ paths: $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: $ref: "../responses/SOL005_resp.yaml#/components/responses/406" + 422: + $ref: "../responses/SOL005_resp.yaml#/components/responses/422" 500: $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: @@ -170,6 +172,8 @@ paths: $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 412: $ref: "../responses/SOL005_resp.yaml#/components/responses/412" + 422: + $ref: "../responses/SOL005_resp.yaml#/components/responses/422" 500: $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: @@ -284,6 +288,8 @@ paths: $ref: "../responses/SOL005_resp.yaml#/components/responses/405" 406: $ref: "../responses/SOL005_resp.yaml#/components/responses/406" + 422: + $ref: "../responses/SOL005_resp.yaml#/components/responses/422" 500: $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: @@ -384,6 +390,8 @@ paths: $ref: "../responses/SOL005_resp.yaml#/components/responses/406" 412: $ref: "../responses/SOL005_resp.yaml#/components/responses/412" + 422: + $ref: "../responses/SOL005_resp.yaml#/components/responses/422" 500: $ref: "../responses/SOL005_resp.yaml#/components/responses/500" 503: diff --git a/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml index 5776116..457626d 100644 --- a/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml +++ b/src/SOL005/NSPerformanceManagement/definitions/SOL005NSPerformanceManagement_def.yaml @@ -435,7 +435,7 @@ definitions: description: > New value of the "authentication" attribute, or "null" to remove the attribute. If present in a request body, these modifications shall be applied according to - the rules of JSON Merge PATCH (see IETF RFC 7396). + the rules of JSON Merge Patch (see IETF RFC 7396). This attribute shall not be present in response bodies. At least one of the attributes defined in this type shall be present in request bodies. $ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication" @@ -460,7 +460,7 @@ definitions: description: > New value of the "authentication" attribute, or "null" to remove the attribute. If present in a request body, these modifications shall be applied according to - the rules of JSON Merge PATCH (see IETF RFC 7396). + the rules of JSON Merge Patch (see IETF RFC 7396). This attribute shall not be present in response bodies. At least one of the attributes defined in this type shall be present in request bodies. $ref: "../../definitions/SOL005_def.yaml#/definitions/SubscriptionAuthentication" @@ -520,7 +520,7 @@ definitions: description: > Group of performance metrics. A metric group is a pre-defined list of metrics, - known to the producer that it can decompose to + known to the API producer that it can decompose to individual metrics. Valid values are specified as "Measurement Group" values in clause 7.3 of ETSI GS NFV-IFA 027. At least one of the two attributes @@ -530,29 +530,35 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/String" collectionPeriod: description: > - Specifies the periodicity at which the producer + Specifies the periodicity at which the API producer will collect performance information. The unit shall be seconds. - At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance - data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be - equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods + At the end of each reportingPeriod, the API producer will inform + the API consumer about availability of the performance data collected + for each completed collection period during this reportingPeriod. + The reportingPeriod should be equal to or a multiple of the collectionPeriod. + In the latter case, the performance data for the collection periods within one reporting period are reported together. - In particular when choosing short collection and reporting periods, the number of PM jobs that can be - supported depends on the capability of the producing entity. + In particular when choosing short collection and reporting periods, + the number of PM jobs that can be supported depends on the capability + of the producing entity. type: integer minimum: 0 default: 0 reportingPeriod: description: > - Specifies the periodicity at which the producer - will report to the consumer. + Specifies the periodicity at which the API producer + will report to the API consumer. about performance information. The unit shall be seconds. - At the end of each reportingPeriod, the producer will inform the consumer about availability of the performance - data collected for each completed collection period during this reportingPeriod. The reportingPeriod should be - equal to or a multiple of the collectionPeriod. In the latter case, the performance data for the collection periods + At the end of each reportingPeriod, the API producer will inform the + API consumer about availability of the performance data collected for + each completed collection period during this reportingPeriod. + The reportingPeriod should be equal to or a multiple of the collectionPeriod. + In the latter case, the performance data for the collection periods within one reporting period are reported together. - In particular when choosing short collection and reporting periods, the number of PM jobs that can be - supported depends on the capability of the producing entity. + In particular when choosing short collection and reporting periods, + the number of PM jobs that can be supported depends on the capability + of the producing entity. type: integer minimum: 0 default: 0 diff --git a/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml b/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml index 67c276e..bbd7dd6 100644 --- a/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml +++ b/src/SOL005/NSPerformanceManagementNotification/definitions/SOL005NSPerformanceManagementNotification_def.yaml @@ -14,6 +14,7 @@ definitions: - id - notificationType - timeStamp + - pmJobId - objectType - objectInstanceId - _links @@ -36,6 +37,10 @@ definitions: description: > Date and time of the generation of the notification. $ref: "../../definitions/SOL005_def.yaml#/definitions/DateTime" + pmJobId: + description: > + Identifier of the PM job for which performance information is available. + $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" objectType: description: > Type of the measured object. diff --git a/src/SOL005/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml b/src/SOL005/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml index f5624e1..0adf8a8 100644 --- a/src/SOL005/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml +++ b/src/SOL005/VNFSnapshotPackageManagement/VNFSnapshotPackageManagement.yaml @@ -239,6 +239,9 @@ paths: get: description: | The GET method fetches the content of a VNF snapshot package. + + The content of the package is provided as onboarded to the NFVO, + or as built by the NFVO. parameters: - $ref: ../../components/SOL005_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL005_params.yaml#/components/parameters/Range @@ -281,7 +284,8 @@ paths: The payload body contains a ZIP file that represents the VNF snapshot package. The "Content-Type" HTTP header shall be set according to the type of the file, i.e. - to "application/zip" for a VNF snapshot package as defined in ETSI GS NFV-SOL 010. + to "application/zip" for a VNF snapshot package. The VNF snapshot package format + is defined in ETSI GS NFV-SOL 010. parameters: - $ref: ../../components/SOL005_params.yaml#/components/parameters/ContentType responses: @@ -392,8 +396,10 @@ paths: In addition, the NFVO shall update the "state" attribute of the "VnfSnapshotPkgInfo" during the build process as specified in clause 11.6. - The NFVO shall build the VNF snapshot package according to the format and provisions - of ETSI GS NFV-SOL 010. + The NFVO shall build the VNF snapshot Package. + + NOTE: The format and provisions for building a VNF snapshot package are specified in + ETSI GS NFV-SOL 010. parameters: - $ref: ../../components/SOL005_params.yaml#/components/parameters/ContentType requestBody: @@ -632,11 +638,15 @@ paths: description: | The GET method fetches the content of an artifact within the VNF snapshot package. - If the VNF snapshot package is on-boarded as a result of a building process (refer to + If the VNF snapshot package is a result of a building process (refer to "Build VNF snapshot package content task" resource in clause 11.4.6), and the referred - "Individual VNF snapshot package artifact" is external to the main VNF snapshot package - file, the NFVO shall return a "303 See Other" response code referencing the external - artifact resource. + "Individual VNF snapshot package artifact" is external to the main VNF snapshot package + file, the NFVO shall return a "302 Found" response code referencing the external artifact + resource. To fetch the "Individual VNF snapshot package artifact" from URI indicated by + the "Location" header, the OSS/BSS will have to be authorized to access the resource referred + by the new URI. Furthermore, as indicated by the "302 Found" response code, the OSS/BSS will + have to use the original URI of the present "Individual VNF snapshot package artifact" resource + in future requests. parameters: - $ref: ../../components/SOL005_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL005_params.yaml#/components/parameters/Range @@ -645,8 +655,8 @@ paths: $ref: '#/components/responses/IndividualArtifact.Get.200' 206: $ref: '#/components/responses/IndividualArtifact.Get.206' - 303: - $ref: '#/components/responses/IndividualArtifact.Get.303' + 302: + $ref: '#/components/responses/IndividualArtifact.Get.302' 400: $ref: ../../responses/SOL005_resp.yaml#/components/responses/400 401: @@ -700,7 +710,7 @@ components: EXAMPLE: foo/bar/m%40ster.sh - For an external artefact represented as a URI in the VNF snapshot package manifest, this variable shall + For an external artifact represented as a URI in the VNF snapshot package manifest, this variable shall contain a sequence of one or more path segments as synthesized by the NFVO (see clause 11.5.3.3) representing this artifact. @@ -977,7 +987,8 @@ components: The response body shall include a copy of the VNF snapshot package file. The "Content-Type" HTTP header shall be set according to the type of the file, i.e. to - "application/zip" for a VNF snapshot package as defined in ETSI GS NFV-SOL 010. + "application/zip" for a VNF snapshot package. The VNF snapshot package format is defined + in ETSI GS NFV-SOL 010. headers: Version: description: The used API version. @@ -1261,8 +1272,8 @@ components: Shall be returned when the whole content of the artifact file has been read successfully. - The response body shall include a copy of the artifact file from the VNF snapshot package, as defined by - ETSI GS NFV-SOL 010 . + The response body shall include a copy of the artifact file from the VNF snapshot package. + The VNF snapshot package format is defined in ETSI GS NFV-SOL 010. The "Content-Type" HTTP header shall be set according to the content type of the artifact file. If the content type cannot be determined, the header shall be set to the value "application/octet-stream". @@ -1300,8 +1311,10 @@ components: If the NFVO supports range requests, this response shall be returned when a single consecutive byte range from the content of the artifact file has been read successfully according to the request. - The response body shall contain the requested part of the artifact file from the VNF snapshot package, - as defined by ETSI GS NFV-SOL 010. The "Content-Type" HTTP header shall be set according to the content + The response body shall contain the requested part of the artifact file from the VNF snapshot package. + The VNF snapshot package format is defined in ETSI GS NFV-SOL 010. + + The "Content-Type" HTTP header shall be set according to the content type of the artifact file. If the content type cannot be determined, the header shall be set to the value "application/octet-stream". @@ -1339,9 +1352,9 @@ components: type: string format: binary - IndividualArtifact.Get.303: + IndividualArtifact.Get.302: description: | - 303 PARTIAL CONTENT + 302 FOUND Shall be returned if the referred "Individual VNF snapshot package artifact" is external to the main VNF snapshot package file created from a build process. diff --git a/src/SOL005/VNFSnapshotPackageManagement/definitions/SOL005VNFSnapshotPackageManagement_def.yaml b/src/SOL005/VNFSnapshotPackageManagement/definitions/SOL005VNFSnapshotPackageManagement_def.yaml index 27d5588..d333bef 100644 --- a/src/SOL005/VNFSnapshotPackageManagement/definitions/SOL005VNFSnapshotPackageManagement_def.yaml +++ b/src/SOL005/VNFSnapshotPackageManagement/definitions/SOL005VNFSnapshotPackageManagement_def.yaml @@ -57,6 +57,8 @@ definitions: description: > Checksum of the stored VNF snapshot package. + Hash algorithms applicable to VNF snapshot package are defined in ETSI GS NFV-SOL 010. + The attribute shall not be present before the VNF snapshot package content has been uploaded or built. Otherwise, this attribute shall be present unless it has been requested to be excluded per attribute selector. @@ -78,11 +80,11 @@ definitions: uploaded or built. Otherwise, this attribute shall be present unless it has been requested to be excluded per attribute selector. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" - vnfcSnapshotIds: + vnfcSnapshotInfoIds: description: > - Identifier of the specific VNFC snapshot(s) part of the VNF snapshot and contained in - the VNF snapshot package. This identifier is allocated by the VNFM during the VNF snapshot - creation. + Identifier of information held by the VNFM about specific VNFC snapshot(s) part of the VNF + snapshot and contained in the VNF snapshot package. This identifier is allocated by the VNFM + during the VNF snapshot creation. The attribute shall not be present before the VNF snapshot package content has been uploaded or built. Otherwise, this attribute shall be present unless it has been requested @@ -186,7 +188,7 @@ definitions: details: description: > Failure details containing error information (such as failed uploading or processing - operation, affected artefact, reason for cancellation, etc.). See clause 6.3 of ETSI + operation, affected artifact, reason for cancellation, etc.). See clause 6.3 of ETSI GS NFV-SOL 013 for the details of "ProblemDetails" structure. $ref: "../../definitions/SOL005_def.yaml#/definitions/ProblemDetails" userDefinedData: @@ -327,40 +329,40 @@ definitions: properties: vnfSnapshotInfoId: description: > - Identifier held by the NFVO about the "Individual VNF snapshot" resource with the information + Identifier held by the NFVO about the "Individual VNF snapshot" resource with the information managed by the VNFM about a specific VNF snapshot to be packaged into the VNF snapshot package. $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" - vnfcSnapshots: + vnfcSnapshotsInfoIds: description: > - List of VNFC snapshots to be packaged into the VNF snapshot package. Shall be present when - it is requested to build a "partial” VNF snapshot package by packaging specific VNFC snapshots - of the VNF snapshot. If not present, a "full" VNF snapshot package is requested to be built - including all the constituents of the VNF snapshot. + List of identifiers of information held by the NFVO about VNFC snapshots to be packaged + into the VNF snapshot package. Shall be present when it is requested to build a "partial” + VNF snapshot package by packaging specific VNFC snapshots of the VNF snapshot. If not present, + a "full" VNF snapshot package is requested to be built including all the constituents of + the VNF snapshot. type: array items: - type: object - required: - - vnfcSnapshotInfoId - properties: - vnfcSnapshotInfoId: - description : > - Identifier of information held by the NFVO about a specific VNFC snapshot to be - packaged into the VNF snapshot package. - $ref: "../../definitions/SOL005_def.yaml#/definitions/Identifier" - importVnfcSnapshotResource: - description : > - Indicates whether the NFVO shall import the snapshotted resources associated to the - VNFC snapshot from the NFVI (TRUE) or keep in the NFVI the snapshotted resources as - external artifacts during the building of the VNF snapshot package file (FALSE). - If this attribute is present, it overrides for the specific VNFC snapshot the VNF - level policy indicated by the "importSnapshotResource" attribute. Default value - is TRUE. - $ref: "../../definitions/SOL005_def.yaml#/definitions/Boolean" + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierLocal" + overrideImportForVnfcSnapshotIds: + description: | + If present, it indicates the list of VNFC snapshots to which the VNF snapshot-level + import snapshot resource policy indicated by the "importSnapshotResource" attribute + does not apply and the opposite value shall be considered. + + The "overrideImportForVnfcSnapshotIds" provides the list of VNFC snapshots for which the + VNF snapshot-level snapshot resource import policy is overridden. See also examples in the + present clause. + type: array + items: + $ref: "../../definitions/SOL005_def.yaml#/definitions/IdentifierLocal" importSnapshotResource: description: > - VNF-level policy indicating whether the NFVO shall import the snapshotted resources from - the NFVI (TRUE) or keep in the NFVI the snapshotted resources as external artifacts during - the building of the VNF snapshot package file (FALSE). Default value is TRUE. + VNF snapshot-level policy indicating whether the NFVO shall import the snapshotted resources + from the NFVI (TRUE) or keep in the NFVI the snapshotted resources as external artifacts + during the building of the VNF snapshot package file (FALSE). Default value is TRUE. + + The "overrideImportForVnfcSnapshotIds" provides the list of VNFC snapshots for which the + VNF snapshot-level snapshot resource import policy is overridden. See also examples in the + present clause. $ref: "../../definitions/SOL005_def.yaml#/definitions/Boolean" ExtractVnfSnapshotPkgRequest: @@ -421,7 +423,7 @@ definitions: properties: artifact: description: > - Access configuration information for an external artefact. + Access configuration information for an external artifact. type: array items: type: object @@ -491,7 +493,7 @@ definitions: description: > This type represents an artifact contained in or external to a VNF snapshot package which represents a snapshot image. - It shall comply with provisions defined in table 11.5.3.2-1. + It shall comply with the provisions defined in table 11.5.3.2-1. type: object required: - id @@ -513,7 +515,9 @@ definitions: description: Name of the VNFC snapshot image. type: string checksum: - description: Checksum of the snapshot image file. + description: > + Checksum of the snapshot image file. Hash algorithms applicable to VNF snapshot package + artifacts are defined in ETSI GS NFV-SOL 010. $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" isEncrypted: description: Reflects whether the artifact is encrypted (true) or not (false). @@ -661,7 +665,8 @@ definitions: $ref: "../../definitions/SOL005_def.yaml#/definitions/Uri" checksum: description: > - Checksum of the artifact file. + Checksum of the artifact file. Hash algorithms applicable to VNF snapshot package + artifacts are defined in ETSI GS NFV-SOL 010. $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" isEncrypted: description: > @@ -691,8 +696,8 @@ definitions: vnfdPath: description: > Path which allows to access a copy of the VNFD. The VNFD is implemented as a collection - of one or more files, and the path refers to the ZIP archive file embedding these files - as specified in the ETSI GS NFV-SOL 010. + of one or more files, and the path refers to the ZIP archive file embedding these files. + The VNF snapshot package format is defined in the ETSI GS NFV-SOL 010. The value of this attribute shall start with the name of the first segment of the path in the package, i.e. it shall not be prefixed by path separator characters such @@ -702,7 +707,8 @@ definitions: type: string checksum: description: > - Checksum of the VNFD archive file. + Checksum of the VNFD archive file. Hash algorithms applicable to VNF snapshot package + artifacts are defined in ETSI GS NFV-SOL 010. $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" isEncrypted: description: > @@ -732,7 +738,8 @@ definitions: type: string checksum: description: > - Checksum of the VNF snapshot record file. + Checksum of the VNF snapshot record file. Hash algorithms applicable to VNF snapshot package + artifacts are defined in ETSI GS NFV-SOL 010. $ref: "../../definitions/SOL005_def.yaml#/definitions/Checksum" isEncrypted: description: > -- GitLab