diff --git a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml index 78bb63751491eca4763d838f58390d2c9c53320d..82d92175cac625253349cbb76d30baf5353a74d2 100644 --- a/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml +++ b/src/SOL002/VNFLifecycleManagement/VNFLifecycleManagement.yaml @@ -71,7 +71,7 @@ paths: post: description: | - The POST method creates a new VNF instance resource. + The POST method creates a new VNF instance resource based on a VNF package that is onboarded and in "ENABLED" state. parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/ContentType @@ -179,7 +179,7 @@ paths: This method modifies an "Individual VNF instance" resource. Changes to the VNF configurable properties are applied to the configuration in the VNF instance, and are reflected in the representation of this resource. Other changes are applied to the VNF instance information managed by the VNFM, and are reflected in the - representation of this resource + representation of this resource. requestBody: $ref: '#/components/requestBodies/VnfInstanceModificationRequest' responses: @@ -381,7 +381,8 @@ paths: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization post: description: | - The POST method terminates a VNF instance. + The POST method triggers the VNFM to terminate a VNF instance and to request to the VIM the release of its + used virtualised resources. requestBody: $ref: '#/components/requestBodies/VnfInstanceTerminationRequest' responses: @@ -534,6 +535,46 @@ paths: "504": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + /vnf_instances/{vnfInstanceId}/change_vnfpkg: + parameters: + - $ref: '#/components/parameters/VnfInstanceId' + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization + post: + description: | + The POST method changes the current VNF package on which the VNF instance is based. + requestBody: + $ref: '#/components/requestBodies/VnfInstanceChangeVnfPkgRequest' + responses: + "202": + $ref: '#/components/responses/VnfInstanceChangeVnfPkg.Post' + "400": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 + "401": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 + "403": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 + "404": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 + "405": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 + "406": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 + "409": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 + "416": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 + "422": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 + "429": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 + "500": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 + "503": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 + "504": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + /vnf_lcm_op_occs: parameters: - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version @@ -910,6 +951,232 @@ paths: "504": $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + /vnf_instances/{vnfInstanceId}/create_snapshot: + parameters: + - $ref: '#/components/parameters/VnfInstanceId' + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization + post: + description: | + The POST method requests creating a VNF snapshot resource based on a VNF instance resource. + requestBody: + $ref: '#/components/requestBodies/VnfInstanceCreateSnapshotRequest' + responses: + "202": + $ref: '#/components/responses/VnfInstanceCreateSnapshot.Post' + "400": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 + "401": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 + "403": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 + "404": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 + "405": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 + "406": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 + "409": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 + "416": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 + "422": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 + "429": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 + "500": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 + "503": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 + "504": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + + /vnf_instances/{vnfInstanceId}/revert_to_snapshot: + parameters: + - $ref: '#/components/parameters/VnfInstanceId' + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization + post: + description: | + The POST method requests reverting a VNF/VNFC instance to a VNF/VNFC snapshot. + requestBody: + $ref: '#/components/requestBodies/VnfInstanceRevertToSnapshotRequest' + responses: + "202": + $ref: '#/components/responses/VnfInstanceRevertToSnapshot.Post' + "400": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 + "401": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 + "403": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 + "404": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 + "405": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 + "406": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 + "409": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 + "416": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 + "422": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 + "429": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 + "500": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 + "503": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 + "504": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + + /vnf_snapshots: + parameters: + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization + post: + description: | + The POST method creates a new individual VNF snapshot resource. + responses: + "201": + $ref: '#/components/responses/VnfSnapshots.Post' + "400": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 + "401": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 + "403": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 + "404": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 + "405": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 + "406": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 + "409": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 + "416": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 + "422": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 + "429": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 + "500": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 + "503": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 + "504": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + + get: + description: | + The GET method queries information about multiple VNF/VNFC snapshots. + parameters: + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Accept + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/filter + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/all_fields + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/fields + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/exclude_fields + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/exclude_default + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/nextpage_opaque_marker + responses: + "200": + $ref: '#/components/responses/VnfSnapshots.Get' + "400": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 + "401": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 + "403": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 + "404": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 + "405": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 + "406": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 + "416": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 + "422": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 + "429": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 + "500": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 + "503": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 + "504": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + + /vnf_snapshots/{vnfSnapshotId}: + parameters: + - $ref: '#/components/parameters/VnfSnapshotId' + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Version + - $ref: ../../components/SOL002SOL003_params.yaml#/components/parameters/Authorization + get: + description: | + The GET method retrieves information about a VNF /VNFC snapshot by reading an individual VNF snapshot resource. + responses: + "200": + $ref: '#/components/responses/IndividualVnfSnapshot.Get' + "400": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 + "401": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 + "403": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 + "404": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 + "405": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 + "406": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 + "416": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 + "422": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 + "429": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 + "500": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 + "503": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 + "504": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + + delete: + description: | + This method deletes an individual VNF snapshot resource and the associated VNF snapshot information managed by + the VNFM, and any resource associated to the VNF/VNFC snapshot managed by the VIM. + responses: + "200": + $ref: '#/components/responses/IndividualVnfSnapshot.Delete' + "400": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/400 + "401": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/401 + "403": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/403 + "404": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/404 + "405": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/405 + "406": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/406 + "409": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/409 + "416": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/416 + "422": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/422 + "429": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/429 + "500": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/500 + "503": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/503 + "504": + $ref: ../../responses/SOL002SOL003_resp.yaml#/components/responses/504 + components: parameters: VnfInstanceId: @@ -951,6 +1218,19 @@ components: schema: type: string + VnfSnapshotId: + name: vnfSnapshotId + in: path + description: | + Identifier of the individual VNF snapshot. This identifier can be retrieved from the resource referenced by the + "Location" HTTP header in the response to a POST request creating a new VNF snapshot resource. It can also be + retrieved from the "id" attribute in the payload body of that response. + required: true + style: simple + explode: false + schema: + type: string + requestBodies: VnfInstanceCreationRequest: description: | @@ -1034,6 +1314,15 @@ components: $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/ChangeExtVnfConnectivityRequest required: true + VnfInstanceChangeVnfPkgRequest: + description: | + Parameters for the Change current VNF package operation. + content: + application/json: + schema: + $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/ChangeCurrentVnfPkgRequest + required: true + VnfLcmSubscriptionRequest: description: | Details of the subscription to be created. @@ -1043,6 +1332,24 @@ components: $ref: ../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscriptionRequest required: true + VnfInstanceCreateSnapshotRequest: + description: | + Parameters for the “Create VNF/VNFC Snapshot” operation. + content: + application/json: + schema: + $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/CreateVnfSnapshotRequest + required: true + + VnfInstanceRevertToSnapshotRequest: + description: | + Parameters for the Revert-to VNF/VNFC snapshot operation. + content: + application/json: + schema: + $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/RevertToVnfSnapshotRequest + required: true + responses: VnfInstances.Get: description: | @@ -1527,6 +1834,45 @@ components: format: url content: {} + VnfInstanceChangeVnfPkg.Post: + description: | + 202 ACCEPTED + Shall be returned when the request has been accepted for processing. + The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI + of the newly-created "Individual VNF LCM operation occurrence" resource corresponding to the instantiation operation. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + Used in redirection, or when a new resource has been created. This header field shall be present if the + response status code is 201 or 3xx. In the present document this header field is also used if the response + status code is 202 and a new resource was created. + style: simple + explode: false + schema: + type: string + format: url + content: {} + VnfLcmOpOccs.Get: description: | 200 OK @@ -1800,6 +2146,223 @@ components: $ref: ../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/LccnSubscription IndividualSubscription.Delete: + description: | + 204 NO CONTENT + The "Individual subscription" resource has been deleted successfully. The response body shall be empty. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + content: {} + + VnfInstanceCreateSnapshot.Post: + description: | + 202 ACCEPTED + Shall be returned when the request was accepted for processing, but the processing has not been completed. + The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI + of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + Used in redirection, or when a new resource has been created. This header field shall be present if the + response status code is 201 or 3xx. In the present document this header field is also used if the response + status code is 202 and a new resource was created. + style: simple + explode: false + schema: + type: string + format: url + content: {} + + VnfInstanceRevertToSnapshot.Post: + description: | + 202 ACCEPTED + Shall be returned when the request was accepted for processing, but the processing has not been completed. + The response body shall be empty. The HTTP response shall include a "Location" HTTP header that contains the URI + of the newly-created "VNF LCM operation occurrence" resource corresponding to the operation. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + Used in redirection, or when a new resource has been created. This header field shall be present if the + response status code is 201 or 3xx. In the present document this header field is also used if the response + status code is 202 and a new resource was created. + style: simple + explode: false + schema: + type: string + format: url + content: {} + + VnfSnapshots.Post: + description: | + 202 CREATED + Shall be returned when an individual VNF snapshot resource has been created successfully. + The response body shall contain a representation of the new individual VNF snapshot resource, as defined in + clause 5.5.2.21. The HTTP response shall include a "Location" HTTP header that contains the resource URI of the + individual VNF snapshot resource. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Location: + description: | + Used in redirection, or when a new resource has been created. This header field shall be present if the + response status code is 201 or 3xx. In the present document this header field is also used if the response + status code is 202 and a new resource was created. + style: simple + explode: false + schema: + type: string + format: url + content: + application/json: + schema: + $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotRes + + VnfSnapshots.Get: + description: | + 200 OK + Shall be returned when information about zero or more VNF snapshots was queried successfully. + The response body shall contain in an array the representations of zero or more VNF snapshots, + as defined in clause 5.5.2.21. + + If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013 + for this resource, inclusion of the Link HTTP header in this response shall follow the provisions + in clause 5.4.2.3 of ETSI GS NFV-SOL 013. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + type: array + items: + $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotRes + + IndividualVnfSnapshot.Get: + description: | + Shall be returned when information about an individual VNF snapshot was read successfully. + The response body shall contain a representation of the VNF snapshot. + headers: + Version: + description: The used API version. + style: simple + explode: false + schema: + type: string + WWW-Authenticate: + description: | + Challenge if the corresponding HTTP request has not provided authorization, or error details if the + corresponding HTTP request has provided an invalid authorization token. + style: simple + explode: false + schema: + type: string + Content-Type: + description: The MIME type of the body of the response. + style: simple + explode: false + schema: + type: string + Link: + description: | + Reference to other resources. + style: simple + explode: false + schema: + type: string + content: + application/json: + schema: + $ref: ./definitions/SOL002VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotRes + + IndividualVnfSnapshot.Delete: description: | 204 NO CONTENT The "Individual subscription" resource has been deleted successfully. The response body shall be empty. diff --git a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml index 61385094147c5f0e2e2e68a0c4e08079aa9914e9..97c84f07c89faf85f94f35211a39357a082549b9 100644 --- a/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml +++ b/src/SOL002/VNFLifecycleManagement/definitions/SOL002VNFLifecycleManagement_def.yaml @@ -500,6 +500,8 @@ definitions: "ChangeExtVnfConnectivityOpConfig".". $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/KeyValuePairs" + ChangeCurrentVnfPkgRequest: + VnfInfoModificationRequest: description: > This type represents attribute modifications for an "Individual VNF instance" resource, @@ -552,4 +554,10 @@ definitions: to be used as "deleteIdList" as defined below this table. type: array items: - $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" \ No newline at end of file + $ref: "../../../definitions/SOL002SOL003_def.yaml#/definitions/Identifier" + + CreateVnfSnapshotRequest: + + RevertToVnfSnapshotRequest: + + VnfSnapshotRes: \ No newline at end of file