Skip to content
VNFLifecycleManagement.yaml 66.1 KiB
Newer Older
swagger: "2.0"

info:
  title: SOL003 - VNF Lifecycle Management interface
    SOL003 - VNF Lifecycle Management interface definition

    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.

    
    In clause 4.3.2 of ETSI GS NFV-SOL 003 v2.4.1, an attribute-based
    filtering mechanism is defined. This mechanism is currently not
    included in the corresponding OpenAPI design for this GS version. Changes
    to the attribute-based filtering mechanism are being considered in v2.5.1
    of this GS for inclusion in the corresponding future ETSI NFV OpenAPI
    design.
    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

externalDocs:
  description: ETSI GS NFV-SOL 003 V2.4.1
  url: http://www.etsi.org/deliver/etsi_gs/NFV-SOL/001_099/003/02.04.01_60/gs_NFV-SOL003v020401p.pdf

basePath: "/vnflcm/v1"

schemes:
  - https

consumes:
  - "application/json"
produces:
  - "application/json"

paths:
###############################################################################
# VNF instances                                                               #
###############################################################################
  '/vnf_instances':
    #SOL003 location: 5.4.2
    post:
      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
Gergely Csatari's avatar
Gergely Csatari committed
          required: false
          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:
            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
Gergely Csatari's avatar
Gergely Csatari committed
            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
            $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_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
Gergely Csatari's avatar
Gergely Csatari committed
          required: false
          type: string
      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
Gergely Csatari's avatar
Gergely Csatari committed
            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
          schema:
            type: array
            items:
              $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_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
    get:
      description: >
        The GET method retrieves information about a VNF instance by reading
        an individual VNF instance resource.
Gergely Csatari's avatar
Gergely Csatari committed
      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: false
          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:
        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
Gergely Csatari's avatar
Gergely Csatari committed
            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
            $ref: "../../definitions/SOL002SOL003VNFLifecycleManagement_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: VnfInfoModificationRequest
          description: > 
            Input parameters for VNF info modification.
          required: true
          in: body
          schema:
            $ref: "../definitions/SOL003_def.yaml#/definitions/VnfInfoModificationRequest"
Gergely Csatari's avatar
Gergely Csatari committed
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
        - name: Content-Type
          description: >
            The Content-Type header shall be set to
            "application/merge-patch+json" according to IETF RFC 7396.
          in: header
          required: true
          type: string
          enum: ["application/merge-patch+json"]
          $ref: "responses/VNFLifecycleManagement_resp.yaml#/responses/202-with-Location-empty"
        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.
Gergely Csatari's avatar
Gergely Csatari committed
      parameters:
        - name: Authorization
          description: >
            The authorization token for the request.
            Reference: IETF RFC 7235
          in: header
          required: false
          type: string
      responses:
        204:
          description: > 
            No Content

            The VNF instance resource and the associated VNF identifier were
            deleted successfully.
            The response body shall be empty.
Gergely Csatari's avatar
Gergely Csatari committed
          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
        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
    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"
Gergely Csatari's avatar
Gergely Csatari committed
        - 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: false
          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
          description: > 
            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.
            Location:
              description: The resource URI of the created VNF instance
Gergely Csatari's avatar
Gergely Csatari committed
            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
        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
    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"
Gergely Csatari's avatar
Gergely Csatari committed
        - 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: false
          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:
        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-resource-not-exists"
        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
    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"
Gergely Csatari's avatar
Gergely Csatari committed
        - 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: false
          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:
        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-resource-not-exists"
        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
    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"
Gergely Csatari's avatar
Gergely Csatari committed
        - 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: false
          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:
        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-resource-not-exists"
        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
    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"
Gergely Csatari's avatar
Gergely Csatari committed
        - 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: false
          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:
        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
    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"
Gergely Csatari's avatar
Gergely Csatari committed
        - 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: false
          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:
        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-resource-not-exists"
        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
    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"
Gergely Csatari's avatar
Gergely Csatari committed
        - 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: false
          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:
        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-resource-not-exists"
        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_conn':
    #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
    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"
Gergely Csatari's avatar
Gergely Csatari committed
        - 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: false
          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:
        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
    get: 
      description: >
        The client can use this method to query status information about
        multiple VNF lifecycle management operation occurrences.
Gergely Csatari's avatar
Gergely Csatari committed
      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: false
          type: string
      responses:
        200:
          description: >
            Status information for zero or more VNF lifecycle management
            operation occurrences was queried successfully. The response body
            shall contain status information about zero or more VNF lifecycle
            operation occurrences.
          headers:
            Content-Type:
              description: The MIME type of the body of the response.
              type: string
              maximum: 1
              minimum: 1
Gergely Csatari's avatar
Gergely Csatari committed
            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
          schema:
            $ref: "definitions/VNFLifecycleManagement_def.yaml#/definitions/VnfLcmOpOcc"
        400: