Commit 282bdc58 authored by Samir Medjiah's avatar Samir Medjiah
Browse files

SOL003: v308 updates -> VNF LCM updated (1/2)

parent 296615fe
Loading
Loading
Loading
Loading
+80 −27
Original line number Original line Diff line number Diff line
@@ -64,10 +64,12 @@ paths:
        the default values for metadata, if any, declared in the VNFD.
        the default values for metadata, if any, declared in the VNFD.
        The VNFM shall apply the "metadata" attributes in the "CreateVnfRequest" data structure in the payload 
        The VNFM shall apply the "metadata" attributes in the "CreateVnfRequest" data structure in the payload 
        body to the "metadata" attribute in the "VnfInstance" data structure on top of the default values that 
        body to the "metadata" attribute in the "VnfInstance" data structure on top of the default values that 
        were obtained from the VNFD according to the rules of JSON Merge PATCH (see IETF RFC 7396). 
        were obtained from the VNFD according to the rules of JSON Merge Patch (see IETF RFC 7396). 
        For all metadata keys defined in the VNFD, the VNFM shall ensure that the content of the resulting 
        For all metadata keys defined in the VNFD, the VNFM shall ensure that the content of the resulting 
        "metadata" attributes is valid against the VNFD. In case of an error, the operation shall be rejected 
        "metadata" attributes is valid against the data type definitions in the VNFD. The absence of a metadata 
        with a "422 Unprocessable Entity" error.
        item that is marked "required" in the VNFD shall not be treated as an error. In case a "metadata" child 
        attribute is not defined in the VNFD, the VNFM shall consider it valid in case it is a valid JSON structure. 
        In case of an error, the operation shall be rejected with a "422 Unprocessable Entity" error.
      requestBody:
      requestBody:
        $ref: '#/components/requestBodies/CreateVnfRequest'
        $ref: '#/components/requestBodies/CreateVnfRequest'
      responses:
      responses:
@@ -185,22 +187,34 @@ paths:
        The steps and conditions that apply as the result of successfully executing this method are
        The steps and conditions that apply as the result of successfully executing this method are
        specified in clause 5.4.1.2.
        specified in clause 5.4.1.2.


        The VNFM shall apply the "extensions" and "vnfConfigurableProperties" attributes in the 
        The VNFM shall apply the "metadata", "extensions" and "vnfConfigurableProperties" attributes in the 
        "VnfInfoModificationRequest" data structure in the payload body to the existing "extensions" and
        "VnfInfoModificationRequest" data structure in the payload body to the existing "extensions" and
        "vnfConfigurableProperties" attributes from the "VnfInstance" data structure according to the 
        "vnfConfigurableProperties" attributes from the "VnfInstance" data structure according to the 
        rules of JSON Merge PATCH (see IETF RFC 7396).
        rules of JSON Merge Patch (see IETF RFC 7396).
        The VNFM shall ensure that the content of the child attributes of the resulting "extensions" and
        The VNFM shall ensure that the content of the child attributes of the resulting "metadata", "extensions" 
        "vnfConfigurableProperties" attributes is valid against the definitions of these child attributes 
        and "vnfConfigurableProperties" attributes is valid against the data types definitions of these child 
        in the VNFD. If the VNF instance is in the "INSTANTIATED" state, the validation also includes 
        attributes in the VNFD. 
        ensuring the presence of all child attributes that are marked as "required" in the VNFD.

        In case a "metadata" child attribute is not defined in the VNFD, the VNFM shall consider it valid in 
        case it is a valid JSON structure.

        NOTE: "Extensions" and "vnfConfigurableProperties" child attributes are always declared in the VNFD.
        
        If the VNF instance is in the "INSTANTIATED" state, the validation shall also include 
        ensuring the presence of all "extensions" and "vnfConfigurableProperties" child attributes that are 
        marked as "required" in the VNFD. 

        NOTE: This allows to build the set of "extensions" and "vnfConfigurableProperties" incrementally 
        NOTE: This allows to build the set of "extensions" and "vnfConfigurableProperties" incrementally 
        prior VNF instantiation but ensures their completeness for an instantiated VNF instance.
        prior VNF instantiation but ensures their completeness for an instantiated VNF instance.

        The absence of a metadata item that is marked "required" in the VNFD shall not be treated as an error.

        In case of an error during validation, the operation shall be automatically rolled back, and 
        In case of an error during validation, the operation shall be automatically rolled back, and 
        appropriate error information shall be provided in the "VnfLcmOperationOccurrenceNotification" 
        appropriate error information shall be provided in the "VnfLcmOperationOccurrenceNotification" 
        message and the "VnfLcmOpOcc" data structure. 
        message and the "VnfLcmOpOcc" data structure. 
        The processing of changes to the "extensions" / "vnfConfigurableProperties" attributes shall be 
        The processing of changes to the "metadata" / "extensions" / "vnfConfigurableProperties" attributes 
        performed in the "STARTING" phase of the LCM operation. The change shall be atomic, i.e. the result 
        shall be performed in the "PROCESSING" phase of the LCM operation. The change shall be atomic, i.e. the 
        of intermediate stages shall not be visible in the API. In case of successful completion of the 
        result of intermediate stages shall not be visible in the API. In case of successful completion of the 
        processing and validation, the attributes shall be provided in the "VnfInstance" data structure and 
        processing and validation, the attributes shall be provided in the "VnfInstance" data structure and 
        the operation shall proceed towards successful completion.
        the operation shall proceed towards successful completion.
      requestBody:
      requestBody:
@@ -302,7 +316,7 @@ paths:
        The VNFM shall apply the "extensions" and "vnfConfigurableProperties" attributes in the 
        The VNFM shall apply the "extensions" and "vnfConfigurableProperties" attributes in the 
        "InstantiateVnfRequest" data structure in the payload body to the existing "extensions" and 
        "InstantiateVnfRequest" data structure in the payload body to the existing "extensions" and 
        "vnfConfigurableProperties" attributes from the "VnfInstance" data structure according to the rules 
        "vnfConfigurableProperties" attributes from the "VnfInstance" data structure according to the rules 
        of JSON Merge PATCH (see IETF RFC 7396). The VNFM shall ensure that the content of the resulting 
        of JSON Merge Patch (see IETF RFC 7396). The VNFM shall ensure that the content of the resulting 
        "extensions" and "vnfConfigurableProperties" attributes is valid against the VNFD (including the 
        "extensions" and "vnfConfigurableProperties" attributes is valid against the VNFD (including the 
        presence of all child attributes that are marked as "required" in the VNFD). In case of an error 
        presence of all child attributes that are marked as "required" in the VNFD). In case of an error 
        during validation, the operation shall be automatically rolled back, and appropriate error information 
        during validation, the operation shall be automatically rolled back, and appropriate error information 
@@ -512,7 +526,7 @@ paths:
        The VNFM shall apply the "extensions" and "vnfConfigurableProperties" attributes in the 
        The VNFM shall apply the "extensions" and "vnfConfigurableProperties" attributes in the 
        "ChangeVnfFlavourRequest" data structure in the payload body to the existing "extensions" and 
        "ChangeVnfFlavourRequest" data structure in the payload body to the existing "extensions" and 
        "vnfConfigurableProperties" attributes from the "VnfInstance" data structure according to the rules 
        "vnfConfigurableProperties" attributes from the "VnfInstance" data structure according to the rules 
        of JSON Merge PATCH (see IETF RFC 7396). The VNFM shall ensure that the content of the resulting 
        of JSON Merge Patch (see IETF RFC 7396). The VNFM shall ensure that the content of the resulting 
        "extensions" and "vnfConfigurableProperties" attributes is valid against the VNFD (which includes 
        "extensions" and "vnfConfigurableProperties" attributes is valid against the VNFD (which includes 
        ensuring the presence of all child attributes that are marked as "required" in the VNFD). In case
        ensuring the presence of all child attributes that are marked as "required" in the VNFD). In case
        of an error, the operation shall be automatically rolled back, and appropriate error information 
        of an error, the operation shall be automatically rolled back, and appropriate error information 
@@ -1384,15 +1398,16 @@ paths:
      - $ref: '#/components/parameters/VnfInstanceId'
      - $ref: '#/components/parameters/VnfInstanceId'
    post:
    post:
      description: |
      description: |
        The POST method requests creating a VNF snapshot resource based on a VNF 
        The POST method requests taking a snapshot a VNF instance and populating a 
        instance resource.
        previously created VNF snapshot resource (refer to clause 5.4.23.3.1) with 
        the snapshot content.
        The steps and conditions that apply as the result of successfully executing 
        The steps and conditions that apply as the result of successfully executing 
        this method are specified in clause 5.4.1.2.
        this method are specified in clause 5.4.1.2.
        In addition, once the VNFM has successfully complete the underlying VNF LCM 
        In addition, once the VNFM has successfully completed the underlying VNF LCM 
        operation occurrence, it shall reflect the result of the VNF snapshot creation 
        operation occurrence, it shall reflect the result of the VNF snapshot creation 
        by updating the representation of the corresponding "Individual VNF snapshot"
        by updating the corresponding "Individual VNF snapshot" resource indicated by 
        resource indicated by the "vnfSnapshotInfoId" attribute of the 
        the "vnfSnapshotInfoId" attribute of the "CreateVnfSnapshotRequest" that is 
        "CreateVnfSnapshotRequest" that is included in the payload body of the request.
        included in the payload body of the request.
        This method shall follow the provisions specified in the tables 5.4.21.3.1-1 
        This method shall follow the provisions specified in the tables 5.4.21.3.1-1 
        and 5.4.21.3.1-2 for URI query parameters, request and response data structures, 
        and 5.4.21.3.1-2 for URI query parameters, request and response data structures, 
        and response codes.
        and response codes.
@@ -1440,6 +1455,8 @@ paths:
            #The response body shall contain a ProblemDetails structure, in which the "detail" attribute 
            #The response body shall contain a ProblemDetails structure, in which the "detail" attribute 
            #shall convey more information about the error.
            #shall convey more information about the error.
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/409"
        422:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/422"
        500:
        500:
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
          $ref: "../../responses/SOL002SOL003_resp.yaml#/components/responses/500"
        503:
        503:
@@ -1523,9 +1540,33 @@ paths:
    post:
    post:
      description: |
      description: |
        The POST method creates a new "Individual VNF snapshot" resource.
        The POST method creates a new "Individual VNF snapshot" resource.

        As a result of successfully executing this method, a new "Individual VNF snapshot" 
        resource as defined in clause 5.4.24 shall have been created.

        The creation of an "Individual VNF snapshot" resource can be performed for two reasons:
        - To create an "Individual VNF snapshot" resources that can later be populated by a 
        new VNF snapshot taken from a VNF instance (refer to clause 5.4.21.3.1).
        - To create an "Individual VNF snapshot" resource that can be populated with information 
        gathered from a VNF snapshot package extraction. In this case, the API consumer indicates 
        the source of the VNF snapshot package in the payload body of the POST request to the 
        present resource.

        In the second case, for a successful execution of the operation, the values in the 
        "VnfSnapshotInfo" data structure representing the "Individual VNF snapshot" resource 
        shall be applied as follows:
        - If the request (refer to clause 5.5.2.20) includes the "vnfSnapshot" attribute, 
        the VNFM shall apply the "VnfSnapshotInfo" with such provided information.
        - If the request (refer to clause 5.5.2.20) does not include the "vnfSnapshot" 
        attribute, the VNFM shall first fetch the VNF snapshot record from the source VNF 
        snapshot package signalled by the "vnfSnapshotPkgId" attribute in the request and 
        then apply the "VnfSnapshotInfo" from the fetched VNF snapshot record.

        This method shall follow the provisions specified in the tables 5.4.23.3.1-1 
        This method shall follow the provisions specified in the tables 5.4.23.3.1-1 
        and 5.4.23.3.1-2 for URI query parameters, request and response data structures, 
        and 5.4.23.3.1-2 for URI query parameters, request and response data structures, 
        and response codes.
        and response codes.
      requestBody:
        $ref: '#/components/requestBodies/CreateVnfSnapshotInfoRequest'
      responses:
      responses:
        201:
        201:
          $ref: '#/components/responses/VnfSnapshots.Post.201'
          $ref: '#/components/responses/VnfSnapshots.Post.201'
@@ -1830,7 +1871,7 @@ components:


        CreateVnfSnapshotRequest:
        CreateVnfSnapshotRequest:
          description: |
          description: |
            Parameters for the "Create VNF Snapshot" operation, as defined in clause 5.5.2.20.
            Parameters for the "Create VNF Snapshot" operation, as defined in clause 5.5.2.21.
          content:
          content:
            application/json:
            application/json:
              schema:
              schema:
@@ -1839,13 +1880,22 @@ components:


        RevertToVnfSnapshotRequest:
        RevertToVnfSnapshotRequest:
          description: |
          description: |
            Parameters for the Revert to VNF snapshot operation, as defined in clause 5.5.2.23.
            Parameters for the Revert to VNF snapshot operation, as defined in clause 5.5.2.26.
          content:
          content:
            application/json:
            application/json:
              schema:
              schema:
                $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/RevertToVnfSnapshotRequest"
                $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/RevertToVnfSnapshotRequest"
          required: true
          required: true


        CreateVnfSnapshotInfoRequest:
          description: |
            The VNF snapshot resource creation parameters, as defined in clause 5.5.2.20.
          content:
            application/json:
              schema:
                $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/CreateVnfSnapshotInfoRequest"
          required: true

  responses:
  responses:
    VNFInstances.Post.201:
    VNFInstances.Post.201:
      description: |
      description: |
@@ -2429,7 +2479,8 @@ components:


        Shall be returned when the state of the VNF lifecycle management operation occurrence
        Shall be returned when the state of the VNF lifecycle management operation occurrence
        has been changed successfully.
        has been changed successfully.
        The response shall include a representation of the "Individual VNF lifecycle operation occurrence" resource.
        The response bofyshall include a representation of the "Individual VNF lifecycle operation occurrence" 
        resource.
      headers:
      headers:
        WWW-Authenticate:
        WWW-Authenticate:
          description: |
          description: |
@@ -2669,7 +2720,7 @@ components:
        Shall be returned when an "Individual VNF snapshot" resource has been created 
        Shall be returned when an "Individual VNF snapshot" resource has been created 
        successfully.
        successfully.
        The response body shall contain a representation of the new "Individual VNF snapshot" 
        The response body shall contain a representation of the new "Individual VNF snapshot" 
        resource, as defined in clause 5.5.2.21.
        resource, as defined in clause 5.5.2.22.
        The HTTP response shall include a "Location" HTTP header that contains the resource URI 
        The HTTP response shall include a "Location" HTTP header that contains the resource URI 
        of the "Individual VNF snapshot" resource.
        of the "Individual VNF snapshot" resource.
      headers:
      headers:
@@ -2706,7 +2757,7 @@ components:


        Shall be returned when information about zero or more VNF snapshots was queried successfully.
        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 
        The response body shall contain in an array the representations of zero or more 
        "Individual VNF snapshot" resources, as defined in clause 5.5.2.21.
        "Individual VNF snapshot" resources, as defined in clause 5.5.2.22.
        If the VNFM supports alternative 2 (paging) according to clause 5.4.2.1 of ETSI GS NFV-SOL 013
        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 
        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.
        in clause 5.4.2.3 of ETSI GS NFV-SOL 013.
@@ -2745,7 +2796,7 @@ components:


        Shall be returned when information about an individual VNF snapshot was read successfully.
        Shall be returned when information about an individual VNF snapshot was read successfully.
        The response body shall contain a representation of the "Individual VNF snapshot" resource, 
        The response body shall contain a representation of the "Individual VNF snapshot" resource, 
        as defined in clause 5.5.2.21.
        as defined in clause 5.5.2.22.
      headers:
      headers:
        WWW-Authenticate:
        WWW-Authenticate:
          description: |
          description: |
@@ -2764,6 +2815,8 @@ components:
      content:
      content:
        application/json:
        application/json:
          schema:
          schema:
            type: array
            items:
              $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotInfo"
              $ref: "definitions/SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfSnapshotInfo"


    IndividualVnfSnapshot.Delete.204:
    IndividualVnfSnapshot.Delete.204: