Skip to content
Snippets Groups Projects
VNFLifecycleManagement.yaml 67.5 KiB
Newer Older
  • Learn to ignore specific revisions
  •   version: "1.2.0"
    
      title: "SOL002 - VNF Configuration interface"
    
        VNF Configuration interface of ETSI NFV SOL002
    
    
        IMPORTANT: Please note that this file might be not aligned to the current
    
        version of the ETSI Group Specification it refers to. In case of
        discrepancies the published ETSI Group Specification takes precedence.
    
    
        Please report bugs to https://forge.etsi.org/bugzilla/buglist.cgi?component=Nfv-Openapis&list_id=61&product=NFV&resolution=---
      license:
        name: "ETSI Forge copyright notice"
        url: https://forge.etsi.org/etsi-forge-copyright-notice.txt
    
    
      description: ETSI GS NFV-SOL 002 V2.5.1
      url: https://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/002/02.05.01_60/gs_nfv-sol002v020501p.pdf
    
    
    schemes: 
      - http
      - https
    
    consumes: 
      - application/json
    
    produces: 
      - application/json
    
    
    paths:
    
      ###############################################################################
      # API Versions                                                                #
      ###############################################################################
    
        $ref: '../../endpoints/SOL002SOL003_endpoints.yaml#/endpoints/api-versions'
    
    
    ###############################################################################
    
    # VNF instances                                                               #
    ###############################################################################
      '/vnf_instances':
        #SOL003 location: 5.4.2
    
        parameters:
          - name: Version
            description: >
              Version of the API requested to use when responding to this request.
            in: header
            required: true
            type: string
    
        post:
          #TODO: Add headers defined in 4.3.4.2
          description: "The POST method creates a new VNF instance resource."
          parameters:
            - name: createVnfRequest
              description: The VNF creation parameters
              in: body
              required: true
              schema:
                $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/CreateVnfRequest"
            - name: Accept
              description: >
                Content-Types that are acceptable for the response.
                Reference: IETF RFC 7231
              in: header
              required: true
              type: string
            - name: Authorization
              description: >
                The authorization token for the request.
                Reference: IETF RFC 7235
              in: header
              required: true
              type: string
            - name: Content-Type
              description: >
                The MIME type of the body of the request.
                Reference: IETF RFC 7231
              in: header
              required: true
              type: string
          responses:
            201:
              description: A VNF Instance identifier was created successfully
              headers:
                #TODO: Add headers defined in 4.3.4.3
                Content-Type:
                  description: The MIME type of the body of the response.
                  type: string
                  maximum: 1
                  minimum: 1
                Location:
                  description: The resource URI of the created VNF instance
                  type: string
                  format: url
                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.
                  type: string
                  maximum: 1
                  minimum: 0
    
                Version:
                  description: The used API version.
                  type: string
                  maximum: 1
                  minimum: 1
    
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state"
            416:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
            422:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/422"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        get:
          description: >
            The GET method queries information about multiple VNF instances.
          parameters:
            - name: Accept
              description: >
                Content-Types that are acceptable for the response.
                Reference: IETF RFC 7231
              in: header
              required: true
              type: string
            - name: Authorization
              description: >
                The authorization token for the request.
                Reference: IETF RFC 7235
              in: header
              required: true
              type: string
    
            - name: filter
              description: >
                Attribute-based filtering expression according to clause 4.3.2.
                The VNFM shall support receiving this parameter as part of the URI query string.
                The EM may supply this parameter. All attribute names that appear in the VnfInstance
                and in data types referenced from it shall be supported by the VNFM in the filter expression.
                EXAMPLE
                objects
                obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
                obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
    
                Request 1:
                GET …/container
    
                Response 1:
                [
                    {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
                    {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
                ]
    
                Request 2:
                GET …/container?filter=(eq.weight,100)
    
                Response 2:
                [
                    {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
                ]
              #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
              in: query
              required: false
              type: string
            - name: all_fields
              description: >
                Include all complex attributes in the response.
                See clause 4.3.3 for details. The VNFM shall support this parameter.
              in: query
              required: false
              type: string
            - name: fields
              description: >
                Complex attributes to be included into the response.
                See clause 4.3.3 for details. The VNFM should support this parameter.
              in: query
              required: false
              type: string
            - name: exclude_fields
              description: >
                Complex attributes to be excluded from the response.
                See clause 4.3.3 for details. The VNFM should support this parameter.
              in: query
              required: false
              type: string
            - name: exclude_default
              description: >
                Indicates to exclude the following complex attributes from the response.
                See clause 4.3.3 for details. The VNFM shall support this parameter.
                The following attributes shall be excluded from the VnfInstance structure
                in the response body if this parameter is provided, or none of the parameters
                "all_fields," "fields", "exclude_fields", "exclude_default" are provided:
                -	vnfConfigurableProperties
                -	instantiatedVnfInfo
                -	metadata
                -	extensions
              in: query
              required: false
              type: string
    
                Information about zero or more VNF instances was queried
    
                successfully. The response body shall contain in an array the
    
                representations of zero or more VNF instances.
              headers:
                Content-Type:
                  description: The MIME type of the body of the response.
                  type: string
                  maximum: 1
                  minimum: 1
                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.
                  type: string
                  maximum: 1
                  minimum: 0
    
                Version:
                  description: The used API version.
                  type: string
                  maximum: 1
                  minimum: 1
    
              schema:
                type: array
                items:
                  $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state"
            416:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Individual VNF instance                                                     #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}':
        #SOL003 location: 5.4.3.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance. 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 instance resource. It can also
              be retrieved from the "id" attribute in the payload body of that
              response.
            in: path
            type: string
            required: true
    
          - name: Version
            description: >
              Version of the API requested to use when responding to this request.
            in: header
            required: true
            type: string
    
        get:
          description: >
            Information about an individual VNF instance was queried successfully.
          responses:
            200:
              description: > 
    
                Information about zero or more VNF instances was queried
                successfully. The response body shall contain
                representations of zero or more VNF instances.
              headers:
                Content-Type:
                  description: The MIME type of the body of the response.
                  type: string
                  maximum: 1
                  minimum: 1
                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.
                  type: string
                  maximum: 1
                  minimum: 0
    
                Version:
                  description: The used API version.
                  type: string
                  maximum: 1
                  minimum: 1
    
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-inconsistent-state"
            416:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        patch:
          #SOL003 location: 5.4.3.3.4
          description: >
            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
          parameters:
            - name: vnfInfoModifications
              description: Input parameters for VNF info modification
              required: true
              in: body
              schema:
    
                $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/VnfInfoModificationRequest"
    
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-another-lcm-operation-ongoing"
            412:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
        delete:
          #SOL003 location: 5.4.3.3.5
          description: >
            This method deletes an individual VNF instance resource.
          responses:
            204:
              description: > 
    
                The VNF instance resource and the associated VNF identifier were
                deleted successfully.
                The response body shall be empty.
              headers:
                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.
                  type: string
                  maximum: 1
                  minimum: 0
    
                Version:
                  description: The used API version.
                  type: string
                  maximum: 1
                  minimum: 1
    
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400-attr-selector"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED"
            412:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/412"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Instantiate VNF task                                                        #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/instantiate':
        #SOL003 location: 5.4.4.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance. 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 instance resource. It can also
              be retrieved from the "id" attribute in the payload body of that
              response.
            in: path
            type: string
            required: true
    
          - name: Version
            description: >
              Version of the API requested to use when responding to this request.
            in: header
            required: true
            type: string
    
        post: 
          #SOL003 location: 5.4.4.3.1
          description: >
            The POST method instantiates a VNF instance.
          parameters:
            - name: InstantiateVnfRequest
              description: Parameters for the VNF instantiation.
              in: body
              required: true
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/InstantiateVnfRequest"
          responses:
            200:
              description: > 
    
                Information about zero or more VNF instances was queried
                successfully. The response body shall contain
                representations of zero or more VNF instances.
              headers:
                Content-Type:
                  description: The MIME type of the body of the response.
                  type: string
                  maximum: 1
                  minimum: 1
                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.
                  type: string
                  maximum: 1
                  minimum: 0
    
                Version:
                  description: The used API version.
                  type: string
                  maximum: 1
                  minimum: 1
    
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfInstance"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-INSTANTIATED"
            416:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/416"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Scale VNF task                                                              #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/scale':
        #SOL003 location: 5.4.5.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance to be scaled. 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 instance
              resource. It can also be retrieved from the "id" attribute in the
              payload body of that response.
            in: path
            type: string
            required: true
    
          - name: Version
            description: >
              Version of the API requested to use when responding to this request.
            in: header
            required: true
            type: string
    
        post: 
          #SOL003 location: 5.4.5.3.1
          description: >
            The POST method requests to scale a VNF instance resource
            incrementally.
          parameters:
            - name: ScaleVnfRequest
              description: Parameters for the scale VNF operation.
              in: body
              required: true
              schema:
                $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleVnfRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Scale VNF to Level task                                                     #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/scale_to_level':
        #SOL003 location: 5.4.6.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance to be scaled to a target level. 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 instance resource. It can also be retrieved from the "id"
              attribute in the payload body of that response.
            in: path
            type: string
            required: true
    
          - name: Version
            description: >
              Version of the API requested to use when responding to this request.
            in: header
            required: true
            type: string
    
        post: 
          #SOL003 location: 5.4.6.3.1
          description: >
            The POST method requests to scale a VNF instance resource to a target
            level.
          parameters:
            - name: ScaleVnfToLevelRequest
              description: Parameters for the scale VNF to Level operation.
              in: body
              required: true
              schema:
                $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_def.yaml#/definitions/ScaleVnfToLevelRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Change VNF Flavour task                                                     #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/change_flavour':
        #SOL003 location: 5.4.7.2
        parameters:
          - name: vnfInstanceId
            description: >
              The identifier of the VNF instance of which the deployment flavour
              is requested to be changed. 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 instance resource. It
              can also be retrieved from the "id" attribute in the payload body of
              that response.
            in: path
            type: string
            required: true
    
          - name: Version
            description: >
              Version of the API requested to use when responding to this request.
            in: header
            required: true
            type: string
    
        post: 
          description: >
            The POST method changes the deployment flavour of a VNF instance.
          parameters:
            - name: ChangeVnfFlavourRequest
              description: Parameters for the Change VNF Flavour operation.
              in: body
              required: true
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeVnfFlavourRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Terminate VNF task                                                         #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/terminate':
        #SOL003 location: 5.4.8.2
        parameters:
          - name: vnfInstanceId
            description: >
              The identifier of the VNF instance to be terminated. 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 instance
              resource. It can also be retrieved from the "id" attribute in the
              payload body of that response.
            in: path
            type: string
            required: true
    
          - name: Version
            description: >
              Version of the API requested to use when responding to this request.
            in: header
            required: true
            type: string
    
        post: 
          description: >
            The POST method terminates a VNF instance.
          parameters:
            - name: TerminateVnfRequest
              description: Parameters for the VNF termination.
              in: body
              required: true
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/TerminateVnfRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Heal VNF task                                                               #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/heal':
        #SOL003 location: 5.4.9.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance to be healed. 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 instance
              resource. It can also be retrieved from the "id" attribute in the
              payload body of that response.
            in: path
            type: string
            required: true
    
          - name: Version
            description: >
              Version of the API requested to use when responding to this request.
            in: header
            required: true
            type: string
    
        post: 
          description: >
            The POST method requests to heal a VNF instance resource.
          parameters:
            - name: HealVnfRequest
              description: Parameters for the Heal VNF operation.
              in: body
              required: true
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/HealVnfRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Operate VNF task                                                            #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/operate':
        #SOL003 location: 5.4.9.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance to be operated. 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 instance
              resource. It can also be retrieved from the "id" attribute in the
              payload body of that response.
            in: path
            type: string
            required: true
    
          - name: Version
            description: >
              Version of the API requested to use when responding to this request.
            in: header
            required: true
            type: string
    
        post: 
          description: >
            The POST method changes the operational state of a VNF instance resource.
          parameters:
            - name: OperateVnfRequest
              description: Parameters for the Operate VNF operation.
              in: body
              required: true
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/OperateVnfRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404-task-not-suported"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-state-conflict-NOT-INSTANTIATED"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # Change external VNF connectivity task                                       #
    ###############################################################################
      '/vnf_instances/{vnfInstanceId}/change_ext_vls':
        #SOL003 location: 5.4.9.2
        parameters:
          - name: vnfInstanceId
            description: >
              Identifier of the VNF instance of which the external connectivity is
              requested to be changed. 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 instance resource. It can also be
              retrieved from the "id" attribute in the payload body of that
              response.
            in: path
            type: string
            required: true
    
          - name: Version
            description: >
              Version of the API requested to use when responding to this request.
            in: header
            required: true
            type: string
    
        post: 
          description: >
            The POST method changes the external connectivity of a VNF instance.
          parameters:
            - name: ChangeExtVnfConnectivityRequest
              description: > 
                Parameters for the Change external VNF connectivity operation.
              in: body
              required: true
              schema:
                $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/ChangeExtVnfConnectivityRequest"
          responses:
            202:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location"
            400:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/400"
            401:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/401"
            403:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/403"
            404:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            405:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/404"
            406:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/406"
            409:
              $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/409-another-lcm-operation-ongoing"
            500:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/500"
            503:
              $ref: "../../responses/SOL002SOL003_resp.yaml#/responses/503"
    ###############################################################################
    # VNF LCM operation occurrences                                               #
    ###############################################################################
      '/vnf_lcm_op_occs':
        #SOL003 location: 5.4.12
    
        parameters:
          - name: Version
            description: >
              Version of the API requested to use when responding to this request.
            in: header
            required: true
            type: string
    
        get: 
          description: >
            The client can use this method to query status information about
            multiple VNF lifecycle management operation occurrences.
    
          parameters:
            - name: filter
              description: >
                Attribute-based filtering expression according to clause 4.3.2.
                The VNFM shall support receiving this parameter as part of the URI query string.
                The EM/VNF may supply this parameter. All attribute names that appear in the VnfLcmOpOcc
                and in data types referenced from it shall be supported by the VNFM in the filter expression.
    
                EXAMPLE
                objects
                obj1: {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
                obj2: {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
    
                Request 1:
                GET …/container
    
                Response 1:
                [
                    {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]},
                    {"id":456, "weight":500, "parts":[{"id":3, "color":"green"}, {"id":4, "color":"blue"}]}
                ]
    
                Request 2:
                GET …/container?filter=(eq.weight,100)
    
                Response 2:
                [
                    {"id":123, "weight":100, "parts":[{"id":1, "color":"red"}, {"id":2, "color":"green"}]}
                ]
              #Request 2 in EXAMPLE from clause 4.3.2 probably wrong, since "," should be used after opOne (eq), "." is used
              in: query
              required: false
              type: string
            - name: all_fields
              description: >
                Include all complex attributes in the response.
                See clause 4.3.3 for details. The VNFM shall support this parameter.
              in: query
              required: false
              type: string
            - name: fields
              description: >
                Complex attributes to be included into the response.
                See clause 4.3.3 for details. The VNFM should support this parameter.
              in: query
              required: false
              type: string
            - name: exclude_fields
              description: >
                Complex attributes to be excluded from the response.
                See clause 4.3.3 for details. The VNFM should support this parameter.
              in: query
              required: false
              type: string
            - name: exclude_default
              description: >
                Indicates to exclude the following complex attributes from the response.
                See clause 4.3.3 for details. The VNFM shall support this parameter.
                The following attributes shall be excluded from the VnfLcmOpOcc structure
                in the response body if this parameter is provided, or none of the parameters
                "all_fields", "fields", "exclude_fields", "exclude_default" are provided:
                -	operationParams
                -	error
                -	resourceChanges
                -	changedInfo
                -	changedExtConnectivity
              in: query
              required: false
              type: string
            - name: nextpage_opaque_marker
              description: >
                Marker to obtain the next page of a paged response.
                Shall be supported by the VNFM if the VNFM supports alternative 2
                (paging) according to clause 4.7.2.1 for this resource.
              in: query
              required: false
              type: string
    
            - name: Version
              description: >
                Version of the API requested to use when responding to this request.
              in: header
              required: true
              type: string
    
                Status information for zero or more VNF lifecycle management operation occurrences was queried successfully.
                The response body shall contain in an array the status information about zero or more VNF lifecycle
                operation occurrences, as defined in clause 5.5.2.13.