Eliminate appx 350 Sphinx Warnings
[vfc/nfvo/lcm.git] / docs / platform / APIs / VNFMDriver_API / VNFM_Driver_API.rst
index a88e29e..d51f10c 100644 (file)
-.. contents::\r
-   :depth: 3\r
-..\r
-\r
-**VNFM Driver API**\r
-**V0.1**\r
-\r
-**1.  Scope**\r
-==============\r
-The scope of the present document is to describe the VNFM driver integrated related API specification.\r
-Some content has been updated, about the API Swagger definition, you can find here 'VNFM driver development related API<https://gerrit.onap.org/r/gitweb?p=vfc/nfvo/lcm.git;a=blob;f=lcm/swagger/vfc.vnfdriver.swagger.json;h=fc35adbdc75df1307ca2c43a11bfb472da2a27c6;hb=HEAD>'\r
-\r
-\r
-**2.  Terms, Definitions and Abbreviations**\r
-=============================================\r
-\r
-For the purposes of the present document, the following abbreviations apply:\r
-\r
-+-------------+-----------------------------------------------+\r
-|Abbreviation |                                               |\r
-+-------------+-----------------------------------------------+\r
-|NFVO         |Network Functions Virtualization Orchestrator  |\r
-+-------------+-----------------------------------------------+\r
-|VNFM         |Virtual Network Function Manager               |\r
-+-------------+-----------------------------------------------+\r
-|VNF          |Virtual Network Function                       |\r
-+-------------+-----------------------------------------------+\r
-\r
-Table 2-1 abbreviations\r
-\r
-\r
-**3.  Interfaces provided by VNFM Driver**\r
-===========================================\r
-\r
-Interfaces use RESTful API and the format is as follows:\r
-http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfm_id}/[……]\r
-R1 vnfmtype:\r
-zte-vnfm\r
-hw-vnfm\r
-juju\r
-\r
-**3.1  Instantiate VNF**\r
-------------------------\r
-\r
-+--------------+--------------------------------------------------------------+\r
-|If Definition | Description                                                  |\r
-+==============+==============================================================+\r
-|URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs  |\r
-+--------------+--------------------------------------------------------------+\r
-|Operation     | POST                                                         |\r
-+--------------+--------------------------------------------------------------+\r
-|Direction     | NSLCM->VNFMDriver                                            |\r
-+--------------+--------------------------------------------------------------+\r
-\r
-**3.1.1  Request**\r
-\r
-+-----------------------+------------+-------------+----------+------------------------------+\r
-| Parameter             | Qualifier  | Cardinality | Content  | Description                  |\r
-+=======================+============+=============+==========+==============================+\r
-| vnfInstanceName       | M          | 1           | String   | Human-readable name  of the  |\r
-|                       |            |             |          | VNF instance to be created.  |\r
-+-----------------------+------------+-------------+----------+------------------------------+\r
-| vnfPackageId          | M          | 1           | String   | VNF packageId                |\r
-+-----------------------+------------+-------------+----------+------------------------------+\r
-| vnfDescriptorId       | M          | 1           | String   | Information  sufficient  to  |\r
-|                       |            |             |          | identify the VNF Descriptor  |\r
-|                       |            |             |          | which  defines  the  VNF  to |\r
-|                       |            |             |          | be created.                  |\r
-+-----------------------+------------+-------------+----------+------------------------------+\r
-| flavourId             | M          | 0..1        | String   | Reserved                     |\r
-+-----------------------+------------+-------------+----------+------------------------------+\r
-|vnfInstanceDescription | M          | 0..1        | String   | Human-readable               |\r
-|                       |            |             |          | description  of  the  VNF    |\r
-|                       |            |             |          | instance to be created.      |\r
-+-----------------------+------------+-------------+----------+------------------------------+\r
-| extVirtualLink        | M          | 0..N        | Ext      | References  to  external     |\r
-|                       |            |             | Virtual  | virtual links to connect the |\r
-|                       |            |             | LinkData | VNF to.                      |\r
-+-----------------------+------------+-------------+----------+------------------------------+\r
-| additionalParam       | M          | 0..N        | Object   |Additional  parameters        |\r
-|                       |            |             |          |passed  by  the  NFVO  as     |\r
-|                       |            |             |          |input  to  the  instantiation |\r
-|                       |            |             |          |process,  specific  to  the   |\r
-|                       |            |             |          |VNF being instantiated.       |\r
-+-----------------------+------------+-------------+----------+------------------------------+\r
-\r
-**ExtVirtualLinkData:**\r
-\r
-+--------------+------------+-------------+----------+----------------------------------------+\r
-| Attribute    | Qualifier  | Cardinality | Content  | Description                            |\r
-+==============+============+=============+==========+========================================+\r
-| vlInstanceId | M          | 0..1        | String   | Identifier of the VL instance          |\r
-+--------------+------------+-------------+----------+----------------------------------------+\r
-| vim          | CM         | 0..1        | VimInfo  | Information about the VIM that         |\r
-|              |            |             |          | manages this resource.                 |\r
-|              |            |             |          | This attribute shall be supported      |\r
-|              |            |             |          | and present if VNF-related resource    |\r
-|              |            |             |          | management in direct applicable.       |\r
-+--------------+------------+-------------+----------+----------------------------------------+\r
-| networkId    | M          | 1           | String   | The network UUID of VIM                |\r
-+--------------+------------+-------------+----------+----------------------------------------+\r
-| cpdId        | M          | 0..1        | String   | Identifier of the external CPD in VNFD |\r
-+--------------+------------+-------------+----------+----------------------------------------+\r
-\r
-**VimInfo:**\r
-\r
-+------------------+------------+-------------+--------------+------------------------------------------------+\r
-| Attribute        | Qualifier  | Cardinality | Content      | Description                                    |\r
-+==================+============+=============+==============+================================================+\r
-| vimInfoId        | M          | 1           | Identifier   | The identifier of this VimInfo instance,       |\r
-|                  |            |             |              | for the purpose of referencing it from         |\r
-|                  |            |             |              | other information elements.                    |\r
-+------------------+------------+-------------+--------------+------------------------------------------------+\r
-| vimId            | M          | 1           | Identifier   | The identifier of the VIM.                     |\r
-+------------------+------------+-------------+--------------+------------------------------------------------+\r
-| interfaceInfo    | M          | 0..N        | KeyValuePair | Information about the interface to the         |\r
-|                  |            |             |              | VIM, including VIM provider type, API          |\r
-|                  |            |             |              | version, and protocol type.                    |\r
-+------------------+------------+-------------+--------------+------------------------------------------------+\r
-| accessInfo       | M          | 0..N        | KeyValuePair | Authentication credentials for accessing the   |\r
-|                  |            |             |              | VIM. Examples may include those to support     |\r
-|                  |            |             |              | different authentication schemes, e.g., OAuth, |\r
-|                  |            |             |              | Token, etc.                                    |\r
-+------------------+------------+-------------+--------------+------------------------------------------------+\r
-|interfaceEndpoint | M          | 1           | String       | Information about the interface endpoint. An   |\r
-|                  |            |             |              | example is a URL.                              |\r
-+------------------+------------+-------------+--------------+------------------------------------------------+\r
-\r
-\r
-**interfaceInfo:**\r
-\r
-+--------------+------------+-------------+----------+-------------------------------+\r
-| Attribute    | Qualifier  | Cardinality | Content  | Description                   |\r
-+==============+============+=============+==========+===============================+\r
-| vimType      | M          | 1           | String   | Type of the VIM               |\r
-+--------------+------------+-------------+----------+-------------------------------+\r
-| apiVersion   | M          | 1           | String   |                               |\r
-+--------------+------------+-------------+----------+-------------------------------+\r
-| protocolType | M          | 1           | String   | http, https                   |\r
-+--------------+------------+-------------+----------+-------------------------------+\r
-\r
-\r
-**accessInfo:**\r
-\r
-+--------------+------------+-------------+----------+-------------------------------+\r
-| Attribute    | Qualifier  | Cardinality | Content  | Description                   |\r
-+==============+============+=============+==========+===============================+\r
-| tenant       | M          | 1           | String   | Tenant Name of tenant         |\r
-+--------------+------------+-------------+----------+-------------------------------+\r
-| username     | M          | 1           | String   | Username for login            |\r
-+--------------+------------+-------------+----------+-------------------------------+\r
-| password     | M          | 1           | String   | Password of login user        |\r
-+--------------+------------+-------------+----------+-------------------------------+\r
-\r
-{\r
-  "vnfInstanceName":"vFW",\r
-  "vnfPackageId":"1",\r
-  "vnfDescriptorId":"1",\r
-  "vnfInstanceDescription":"vFW_1",\r
-  "extVirtualLinkLink":[ \r
-\r
-    {\r
-      "vlInstanceId":"1",\r
-      "resourceId":"1246" ,\r
-      " cpdId":"11111",\r
-      "vim":\r
-      {\r
-\r
-        "vimInfoId":"1",\r
-        "vimid":"1", \r
-        "interfaceInfo":{\r
-\r
-          "vimType":"openstack",\r
-          "apiVersion":"v2",\r
-          "protocolType":"http"\r
-\r
-        }\r
-        "accessInfo":{\r
-\r
-          "tenant":"tenant_vCPE",\r
-          "username":"vCPE",\r
-          "password":"vCPE_321"\r
-\r
-        }\r
-        "interfaceEndpoint":"http://10.43.21.105:80/"\r
-\r
-      }\r
-\r
-    }\r
-\r
-  ]\r
-  "additionalParam":{\r
-\r
-  ……\r
-  }\r
-\r
-}\r
-\r
-\r
-**3.1.2  Response**\r
-\r
-+-------------------+------------+-------------+-----------+-------------------------------+\r
-| Parameter         | Qualifier  | Cardinality | Content   | Description                   |\r
-+===================+============+=============+===========+===============================+\r
-| jobId             | M          | 1           | Identifier| Tenant Name of tenant         |\r
-|                   |            |             |           | operation occurrence.         |\r
-|                   |            |             |           |                               |\r
-|                   |            |             |           | [lifecycleOperationOccurren   |\r
-|                   |            |             |           |  ceId]                        |\r
-+-------------------+------------+-------------+-----------+-------------------------------+\r
-| vnfInstanceId     | M          | 1           | String    | VNF instance identifier.      |\r
-+-------------------+------------+-------------+-----------+-------------------------------+\r
-\r
-{\r
-  "jobId":"1",\r
-  "vnfInstanceId":"1"\r
-\r
-}\r
-\r
-**3.2  Terminate VNF**\r
------------------------\r
-\r
-+---------------+------------------------------------------------------------------+\r
-| IF Definition |  Description                                                     |\r
-+===============+==================================================================+\r
-| URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/     |\r
-|               | {vnfInstanceId}/terminate                                        |\r
-+---------------+------------------------------------------------------------------+\r
-| Operation     |  POST                                                            |\r
-+---------------+------------------------------------------------------------------+\r
-| Direction     |  NSLCM->VNFMDriver                                               |\r
-+---------------+------------------------------------------------------------------+\r
-\r
-**3.2.1  Request**\r
-\r
-+-----------------+------------+-------------+-----------+----------------------------------+\r
-| Parameter       | Qualifier  | Cardinality | Content   | Description                      |\r
-+=================+============+=============+===========+==================================+\r
-| terminationType | M          | 1           | Enum      | Signals whether forceful or      |\r
-|                 |            |             |           | graceful termination  is         |\r
-|                 |            |             |           | requested.                       |\r
-|                 |            |             |           | In case of forceful termination, |\r
-|                 |            |             |           | the  VNF  is  shut  down         |\r
-|                 |            |             |           | immediately, and resources are   |\r
-|                 |            |             |           | released. Note that if the VNF   |\r
-|                 |            |             |           | is still  in service,  this may  |\r
-|                 |            |             |           | adversely  impact  network       |\r
-|                 |            |             |           | service, and therefore, operator |\r
-|                 |            |             |           | policies apply to determine if   |\r
-|                 |            |             |           | forceful termination is allowed  |\r
-|                 |            |             |           | in the particular situation.     |\r
-|                 |            |             |           |                                  |\r
-|                 |            |             |           | In case of graceful termination, |\r
-|                 |            |             |           | the VNFM first arranges to take  |\r
-|                 |            |             |           | the  VNF  out  of  service  (by  |\r
-|                 |            |             |           | means  out  of  scope  of  the   |\r
-|                 |            |             |           | present  specification,  e.g.    |\r
-|                 |            |             |           | involving interaction with EM,   |\r
-|                 |            |             |           | if required).  Once  this  was   |\r
-|                 |            |             |           | successful,  or after a timeout, |\r
-|                 |            |             |           | the  VNFM  shuts  down the  VNF  |\r
-|                 |            |             |           | and releases the resources.      |\r
-+-----------------+------------+-------------+-----------+----------------------------------+\r
-| graceful        | M          | 0..1        | Time      | The time interval (second) to    |\r
-| Termination     |            |             | Duration  | wait for the VNF to be taken out |\r
-| Timeout         |            |             |           | of  service  during  graceful    |\r
-|                 |            |             |           | termination,  before  shutting   |\r
-|                 |            |             |           | down the VNF and releasing the   |\r
-|                 |            |             |           | resources.                       |\r
-|                 |            |             |           | If not given, it is expected     |\r
-|                 |            |             |           | that the  VNFM  waits  for  the  |\r
-|                 |            |             |           | successful taking out of service |\r
-|                 |            |             |           | of the VNF, no matter  how long  |\r
-|                 |            |             |           | it  takes, before shutting down  |\r
-|                 |            |             |           | the  VNF  and  releasing  the    |\r
-|                 |            |             |           | resources (see note).            |\r
-|                 |            |             |           |                                  |\r
-|                 |            |             |           | Minimum timeout or timeout       |\r
-|                 |            |             |           | range are specified by the VNF   |\r
-|                 |            |             |           | Provider  (e.g. defined in the   |\r
-|                 |            |             |           | VNFD or communicated  by         |\r
-|                 |            |             |           | other means).                    |\r
-|                 |            |             |           |                                  |\r
-|                 |            |             |           | Not relevant in case of forceful |\r
-|                 |            |             |           | termination.                     |\r
-+-----------------+------------+-------------+-----------+----------------------------------+\r
-\r
-{\r
-  "vnfInstanceId":"1",\r
-  "terminationType":"graceful",\r
-  "gracefulTerminationTimeout":"60"\r
-\r
-}\r
-\r
-**3.2.2  Response**\r
-\r
-+--------------+------------+-------------+-----------+--------------------------------+\r
-| Parameter    | Qualifier  | Cardinality | Content   | Description                    |\r
-+==============+============+=============+===========+================================+\r
-| jobId        | M          | 1           | Identifier| Identifier of the VNF lifecycle|\r
-|              |            |             |           | operation occurrence.          |\r
-|              |            |             |           |                                |\r
-|              |            |             |           | [lifecycleOperationOccurren    |\r
-|              |            |             |           |  ceId]                         |\r
-+--------------+------------+-------------+-----------+--------------------------------+\r
-\r
-{\r
-  "jobId":"1"\r
-\r
-}\r
-\r
-\r
-**3.3  Query VNF**\r
-------------------\r
-\r
-+---------------+------------------------------------------------------------------+\r
-| IF Definition |  Description                                                     |\r
-+===============+==================================================================+\r
-| URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/     |\r
-|               | {vnfInstanceId}                                                  |\r
-+---------------+------------------------------------------------------------------+\r
-| Operation     |  GET                                                             |\r
-+---------------+------------------------------------------------------------------+\r
-| Direction     |  NSLCM->VNFMDriver                                               |\r
-+---------------+------------------------------------------------------------------+\r
-\r
-**3.3.1  Request**\r
-\r
-VNF filter: vnfInstanceId via url [R1]\r
-\r
-**3.3.2  Response**\r
-\r
-+--------------+------------+-------------+-----------+---------------------------------+\r
-| Parameter    | Qualifier  | Cardinality | Content   | Description                     |\r
-+==============+============+=============+===========+=================================+\r
-| vnfInfo      | M          | o..N        | vnfInfo   | The information items about the |\r
-|              |            |             |           | selected VNF instance(s) that   |\r
-|              |            |             |           | are returned.                   |\r
-|              |            |             |           |                                 |\r
-|              |            |             |           | If attributeSelector is present,|\r
-|              |            |             |           | only the  attributes  listed in |\r
-|              |            |             |           | attributeSelector will be       |\r
-|              |            |             |           | returned for the selected       |\r
-|              |            |             |           | VNF instance(s).                |\r
-+--------------+------------+-------------+-----------+---------------------------------+\r
-\r
-**VnfInfo Table**\r
-\r
-+-----------------+------------+-------------+----------+---------------------------------+\r
-| Attribute       | Qualifier  | Cardinality | Content  | Description                     |\r
-+=================+============+=============+==========+=================================+\r
-| vnfInstanceId   | M          | 1           | String   | VNF instance identifier.        |\r
-+-----------------+------------+-------------+----------+---------------------------------+\r
-| vnfInstanceName | M          | o..1        | String   | VNF instance name.              |\r
-+-----------------+------------+-------------+----------+---------------------------------+\r
-| vnfInstance     | M          | o..1        | String   | Human-readable description of   |\r
-| Description     |            |             |          | the VNF instance.               |\r
-+-----------------+------------+-------------+----------+---------------------------------+\r
-| vnfdId          | M          | 1           | String   | Identifier of the VNFD on which |\r
-|                 |            |             |          | the VNF instance is based.      |\r
-+-----------------+------------+-------------+----------+---------------------------------+\r
-| vnfPackageId    | M          | o..1        | String   | Identifier of the VNF Package   |\r
-|                 |            |             |          | used to manage the lifecycle of |\r
-|                 |            |             |          | the VNF instance. See note.     |\r
-|                 |            |             |          | Shall be present for an         |\r
-|                 |            |             |          | instantiated VNF instance.      |\r
-+-----------------+------------+-------------+----------+---------------------------------+\r
-| version         | M          | 1           | String   | Version of the VNF.             |\r
-+-----------------+------------+-------------+----------+---------------------------------+\r
-| vnfProvider     | M          | 1           | String   | Name of the person or company   |\r
-|                 |            |             |          | providing the VNF.              |\r
-+-----------------+------------+-------------+----------+---------------------------------+\r
-| vnfType         | M          | 1           | String   | VNF Application Type            |\r
-+-----------------+------------+-------------+----------+---------------------------------+\r
-| vnfStatus       | M          | 1           | Enum     | The instantiation state of the  |\r
-|                 |            |             |          | VNF. Possible values:           |\r
-|                 |            |             |          | INACTIVE (Vnf is terminated or  |\r
-|                 |            |             |          | not instantiated ),             |\r
-|                 |            |             |          | ACTIVE (Vnf is instantiated).   |\r
-|                 |            |             |          | [instantiationState]            |\r
-+-----------------+------------+-------------+----------+---------------------------------+\r
-\r
-{\r
-  "vnfInfo":\r
-  {\r
-\r
-    "nfInstanceId":"1",\r
-    "vnfInstanceName":"vFW",\r
-    "vnfInstanceDescription":"vFW in Nanjing TIC Edge",\r
-    "vnfdId":"1",\r
-    "vnfPackageId":"1",\r
-    "version":"V1.1",\r
-    "vnfProvider":"ZTE",\r
-    "vnfType":"vFW",\r
-    "vnfStatus":"  ACTIVE",\r
-\r
-  }\r
-\r
-}\r
-\r
-**3.4  Get operation status**\r
------------------------------\r
-\r
-+---------------+------------------------------------------------------------------+\r
-| IF Definition |  Description                                                     |\r
-+===============+==================================================================+\r
-| URI           | http(s)://[hostname][:port]/api/{vnfmtype}                       |\r
-|               | /v1/{vnfmid}/jobs/{jobid}&responseId={ responseId }              |\r
-+---------------+------------------------------------------------------------------+\r
-| Operation     |  GET                                                             |\r
-+---------------+------------------------------------------------------------------+\r
-| Direction     |  NSLCM->VNFMDriver                                               |\r
-+---------------+------------------------------------------------------------------+\r
-\r
-**3.4.1  Request**\r
-\r
-  None\r
-\r
-**3.4.2  Response**\r
-\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
-+====================+============+=============+=============+=================================+\r
-| jobId              | M          | 1           | String      | Job ID                          |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| responseDescriptor | M          | 1           | -           | Including:                      |\r
-|                    |            |             |             | vnfStatus, statusDescription,   |\r
-|                    |            |             |             | errorCode,progress,             |\r
-|                    |            |             |             | responseHistoryList, responseId |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| status             | M          | 1           | String      | JOB status                      |\r
-|                    |            |             |             | started                         |\r
-|                    |            |             |             | processing                      |\r
-|                    |            |             |             | finished                        |\r
-|                    |            |             |             | error                           |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| progress           | M          | 1           | Integer     | progress (1-100)                |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| statusDescription  | M          | 1           | String      | Progress Description            |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| errorCode          | M          | 1           | Integer     | Errorcode                       |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| responseId         | M          | 1           | Integer     | Response Identifier             |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| response           | M          | o..N        | ArrayList<> | History  Response  Messages     |\r
-| HistoryList        |            |             |             | from  the  requested            |\r
-|                    |            |             |             | responseId to lastest one.      |\r
-|                    |            |             |             | Including fields:               |\r
-|                    |            |             |             | vnfStatus,                      |\r
-|                    |            |             |             | statusDescription,              |\r
-|                    |            |             |             | errorCode,                      |\r
-|                    |            |             |             | progress,                       |\r
-|                    |            |             |             | responseId                      |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-\r
-{\r
-  "jobId" : "1234566",\r
-  "responseDescriptor" : {\r
-\r
-    "progress" : "40",\r
-    "status" : "proccessing",\r
-    "statusDescription" : "OMC VMs are decommissioned in VIM",\r
-    "errorCode" : null,\r
-    "responseId" : "42",\r
-    "responseHistoryList" : [{\r
-\r
-      "progress" : "40",\r
-      "status" : "proccessing",\r
-      "statusDescription" : "OMC VMs are decommissioned in VIM",\r
-      "errorCode" : null,\r
-      "responseId" : "1"\r
-\r
-    }, {\r
-      "progress" : "41",\r
-      "status" : "proccessing",\r
-      "statusDescription" : "OMC VMs are decommissioned in VIM",\r
-      "errorCode" : null,\r
-      "responseId" : "2"\r
-\r
-    }\r
-\r
-  ]\r
-\r
- }\r
-\r
-}\r
-\r
-**3.5  Scale VNF**\r
-------------------\r
-\r
-+---------------+------------------------------------------------------------------+\r
-| IF Definition |  Description                                                     |\r
-+===============+==================================================================+\r
-| URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/     |\r
-|               | {vnfInstanceId}/scale                                            |\r
-+---------------+------------------------------------------------------------------+\r
-| Operation     |  POST                                                            |\r
-+---------------+------------------------------------------------------------------+\r
-| Direction     |  NSLCM->VNFMDriver                                               |\r
-+---------------+------------------------------------------------------------------+\r
-\r
-**3.5.1  Request**\r
-\r
-\r
-+---------------+------------+-------------+-------------+---------------------------------------------+\r
-| Parameter     | Qualifier  | Cardinality | Content     | Description                                 |\r
-+===============+============+=============+=============+=============================================+\r
-| type          | M          | 1           | Enum        | Defines the type of the scale operation     |\r
-|               |            |             |             | requested (scale out, scale in). The set of |\r
-|               |            |             |             | types actually supported depends on the     |\r
-|               |            |             |             | capabilities of the VNF being managed, as   |\r
-|               |            |             |             | declared in the VNFD. See note 1.           |\r
-+---------------+------------+-------------+-------------+---------------------------------------------+\r
-| aspectId      | M          | 1           | Identifier  | Identifies the aspect of the VNF that is    |\r
-|               |            |             |             | requested to be scaled                      |\r
-+---------------+------------+-------------+-------------+---------------------------------------------+\r
-| numberOfSteps | M          | 1           | Integer     | Number of scaling steps to be executed as   |\r
-|               |            |             |             | part of this ScaleVnf operation. It shall   |\r
-|               |            |             |             | be a positive number.                       |\r
-|               |            |             |             | Defaults to 1.                              |\r
-|               |            |             |             | The VNF Provider defines in the VNFD        |\r
-|               |            |             |             | whether or not a particular VNF supports    |\r
-|               |            |             |             | performing more than one step at a time.    |\r
-|               |            |             |             | Such a property in the VNFD applies for all |\r
-+---------------+------------+-------------+-------------+---------------------------------------------+\r
-| additional    | M          | 1           |KeyValuePair | Additional parameters passed by the NFVO    |\r
-| Param         |            |             |             | as input to the scaling proccess, specific  |\r
-|               |            |             |             | to the VNF being scaled.                    |\r
-|               |            |             |             | Reserved                                    |\r
-+---------------+------------+-------------+-------------+---------------------------------------------+\r
-| NOTE 1: ETSI GS NFV-IFA 010 [2] specifies that the lifecycle management operations that expand       |\r
-|        or contract a VNF instance include scale in, scale out, scale up and scale down. Vertical     |\r
-|        scaling (scale up, scale down) is not supported in the present document.                      |\r
-|        SCALE_IN designates scaling in.                                                               |\r
-|        SCALE_OUT 1 designates scaling out.                                                           |\r
-| NOTE 2: A scaling step is the smallest unit by which a VNF can be scaled w.r.t a particular scaling  |\r
-|          aspect.                                                                                     |\r
-+------------------------------------------------------------------------------------------------------+\r
-\r
-{\r
-  "vnfInstanceId":"5",\r
-  "type":" SCALE_OUT",\r
-  "aspectId":"101",\r
-  "numberOfSteps":"1",\r
-  "additionalParam":{\r
-\r
-    ……\r
-\r
-  }\r
-\r
-}\r
-\r
-**3.5.2  Response**\r
-\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
-+====================+============+=============+=============+=================================+\r
-| jobId              | M          | 1           | String      | The identifier of the VNF       |\r
-|                    |            |             |             | lifecycle operation occurrence. |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-\r
-{\r
-  "jobId":"1"\r
-\r
-}\r
-\r
-**3.6  Heal VNF**\r
-------------------\r
-\r
-+---------------+------------------------------------------------------------------+\r
-| IF Definition |  Description                                                     |\r
-+===============+==================================================================+\r
-| URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs      |\r
-|               | {vnfInstanceId}/heal                                             |\r
-+---------------+------------------------------------------------------------------+\r
-| Operation     |  POST                                                            |\r
-+---------------+------------------------------------------------------------------+\r
-| Direction     |  NSLCM->VNFMDriver                                               |\r
-+---------------+------------------------------------------------------------------+\r
-\r
-**3.6.1  Request**\r
-\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
-+====================+============+=============+=============+=================================+\r
-| action             | M          | 1           | String      | Indicates the action to be done |\r
-|                    |            |             |             | upon the given virtual machine. |\r
-|                    |            |             |             | Only "vmReset" is supported     |\r
-|                    |            |             |             | currently.                      |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| affectedvm         | M          |  1          | AffectedVm  | Defines the information of      |\r
-|                    |            |             |             | virtual machines.               |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-\r
-**AffectedVm**\r
-\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
-+====================+============+=============+=============+=================================+\r
-| vimid              | M          | 1           | String      | Defines  the  UUID  of  virtual |\r
-|                    |            |             |             | machine.                        |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| vduid              | M          | 1           | String      | Defines the id of vdu.          |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| vmname             | M          | 1           |             | Defines  the  name  of  virtual |\r
-|                    |            |             |             | machines.                       |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-\r
-{\r
-  "action": "vmReset",\r
-  "affectedvm": \r
-  {\r
-\r
-    "vmid": "804cca71-9ae9-4511-8e30-d1387718caff",\r
-    "vduid": "vdu_100",\r
-    "vmname": "ZTE_SSS_111_PP_2_L"\r
-\r
-  }\r
-\r
-}\r
-\r
-**3.6.2  Response**\r
-\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
-+====================+============+=============+=============+=================================+\r
-| jobId              | M          | 1           | Identifier  | The identifier of the VNF       |\r
-|                    |            |             |             | healing operation occurrence.   |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-\r
-{\r
-  "jobId":"1"\r
-\r
-}\r
-\r
-\r
-**4.  Interfaces provided by VFC to integrate with VNFM driver**\r
-===========================================\r
-\r
-\r
-**4.1  VNF Lifecycle Operation Granting Interface**\r
-------------------------\r
-\r
-\r
-+---------------+------------------------------------------------------------------+\r
-| IF Definition |  Description                                                     |\r
-+===============+==================================================================+\r
-| URI           | http(s)://[hostname][:port]/api/nslcm/v1/ns/grantvnf             |\r
-+---------------+------------------------------------------------------------------+\r
-| Operation     |  POST                                                            |\r
-+---------------+------------------------------------------------------------------+\r
-| Direction     |  VNFMDriver -> NSLCM                                             |\r
-+---------------+------------------------------------------------------------------+\r
-\r
-**4.1.1  Request**\r
-\r
-\r
-{\r
-  "vnfInstanceId": "string",\r
-  "vnfDescriptorId": "string",\r
-  "lifecycleOperation": "Terminal",\r
-  "jobId": "string",\r
-  "addResource": [\r
-    {\r
-      "type": "string",\r
-      "resourceDefinitionId": "string",\r
-      "vdu": "string"\r
-    }\r
-  ],\r
-  "removeResource": [\r
-    {\r
-      "type": "string",\r
-      "resourceDefinitionId": "string",\r
-      "vdu": "string"\r
-    }\r
-  ],\r
-  "additionalParam": {}\r
-}\r
-\r
-**4.1.2  Response**\r
-\r
-{\r
-  "vim": {\r
-    "vimInfoId": "string",\r
-    "vimId": "string",\r
-    "interfaceInfo": {\r
-      "vimType": "string",\r
-      "apiVersion": "string",\r
-      "protocolType": "string"\r
-    },\r
-    "accessInfo": {\r
-      "tenant": "string",\r
-      "username": "string",\r
-      "password": "string"\r
-    },\r
-    "interfaceEndpoint": "string"\r
-  }\r
-}\r
-\r
-**4.2  VNF LCM Notification Interface**\r
-------------------------\r
-\r
-+---------------+------------------------------------------------------------------+\r
-| IF Definition |  Description                                                     |\r
-+===============+==================================================================+\r
-| URI           | http(s)://[hostname][:port]/api/nslcm/v1/ns/{vnfmid}/vnfs/       |\r
-|               | {vnfInstanceId}/Notify                                           |\r
-+---------------+------------------------------------------------------------------+\r
-| Operation     |  POST                                                            |\r
-+---------------+------------------------------------------------------------------+\r
-| Direction     |  VNFMDriver -> NSLCM                                             |\r
-+---------------+------------------------------------------------------------------+\r
-\r
-**4.2.1  Request**\r
-\r
-{\r
-  "status": "result",\r
-  "vnfInstanceId": "string",\r
-  "operation": "Terminal",\r
-  "jobId": "string",\r
-  "affectedVnfc": [\r
-    {\r
-      "vnfcInstanceId": "string",\r
-      "vduId": "string",\r
-      "changeType": "added",\r
-      "vimid": "string",\r
-      "vmid": "string",\r
-      "vmname": "string"\r
-    }\r
-  ],\r
-  "affectedCp": [\r
-    {\r
-      "virtualLinkInstanceId": "string",\r
-      "cpinstanceid": "string",\r
-      "cpdid": "string",\r
-      "ownerType": "string",\r
-      "ownerId": "string",\r
-      "changeType": "added",\r
-      "portResource": {\r
-        "vimid": "string",\r
-        "resourceid": "string",\r
-        "resourceName": "string",\r
-        "tenant": "string",\r
-        "ipAddress": "string",\r
-        "macAddress": "string",\r
-        "instId": "string"\r
-      }\r
-    }\r
-  ],\r
-  "affectedVl": [\r
-    {\r
-      "vlInstanceId": "string",\r
-      "vldid": "string",\r
-      "changeType": "added",\r
-      "networkResource": {\r
-        "resourceType": "network",\r
-        "resourceId": "string"\r
-      }\r
-    }\r
-  ],\r
-  "affectedVirtualStorage": [\r
-    {}\r
-  ]\r
-}\r
-\r
-**4.2.2  Response**\r
-\r
-N/A\r
-\r
-\r
-**4.3  Query VNFM Register Info Interface**\r
-------------------------\r
-\r
-+---------------+------------------------------------------------------------------+\r
-| IF Definition |  Description                                                     |\r
-+===============+==================================================================+\r
-| URI           | http(s)://[hostname][:port]/api/nslcm/v1/vnfms/{vnfmid}          |\r
-+---------------+------------------------------------------------------------------+\r
-| Operation     |  GET                                                             |\r
-+---------------+------------------------------------------------------------------+\r
-| Direction     |  VNFMDriver -> NSLCM                                             |\r
-+---------------+------------------------------------------------------------------+\r
-\r
-**4.3.1  Request**\r
-N/A\r
-\r
-**4.3.2  Response**\r
-{\r
-  "vnfmId": "string",\r
-  "name": "string",\r
-  "type": "string",\r
-  "url": "string",\r
-  "userName": "string",\r
-  "password": "string",\r
-  "vimId": "string",\r
-  "vendor": "string",\r
-  "version": "string",\r
-  "description": "string",\r
-  "certificateUrl": "string",\r
-  "createTime": "string"\r
-}\r
-\r
-\r
-**4.4  Query VIM Register Info Interface**\r
-------------------------\r
-\r
-+---------------+------------------------------------------------------------------+\r
-| IF Definition |  Description                                                     |\r
-+===============+==================================================================+\r
-| URI           | http(s)://[hostname][:port]/api/nslcm/v1/vims/{vimid}            |\r
-+---------------+------------------------------------------------------------------+\r
-| Operation     |  GET                                                             |\r
-+---------------+------------------------------------------------------------------+\r
-| Direction     |  VNFMDriver -> NSLCM                                             |\r
-+---------------+------------------------------------------------------------------+\r
-\r
-**4.4.1  Request**\r
-N/A\r
-\r
-**4.4.2  Response**\r
-\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| Parameter          | Qualifier  | Cardinality | Content     | Description                     |\r
-+====================+============+=============+=============+=================================+\r
-| vimId              | M          | 1           | string      | The identifier of the VIM       |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| name               | M          | 1           | string      | The name of the VIM             | \r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| type               | M          | 1           | string      | The type of the VIM             |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| url                | M          | 1           | string      | The access URL of the VIM       |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| userName           | M          | 1           | string      | The user name of the VIM        |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| password           | M          | 1           | string      | The password of the VIM         |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| vendor             | M          | 1           | string      | The vendor of the VIM           |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| version            | M          | 1           | version     | The version of the VIM          |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| description        | O          | 1           | description | The description of the VIM      |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| sslCacert          | O          | 1           | Identifier  | The collection of trusted       |\r
-|                    |            |             |             | certificates towards the VIM.   |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| sslInsecure        | O          | 1           | Identifier  | Whether to verify VIM's         |\r
-|                    |            |             |             | certificate.                    |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-| status             | O          | 1           | Identifier  | The status of external system   |\r
-+--------------------+------------+-------------+-------------+---------------------------------+\r
-\r
-\r
-{\r
-  "vimId": "string",\r
-  "name": "string",\r
-  "type": "string",\r
-  "url": "string",\r
-  "userName": "string",\r
-  "password": "string",\r
-  "vendor": "string",\r
-  "version": "string",\r
-  "description": "string",\r
-  "createTime": "string",\r
-  "sslCacert": "string",\r
-  "sslInsecure": "string",\r
-  "status": "string"\r
-}\r
-\r
+.. contents::
+   :depth: 3
+..
+
+**VNFM Driver API**
+**V0.1**
+
+**1.  Scope**
+==============
+The scope of the present document is to describe the VNFM driver integrated related API specification.
+Some content has been updated, about the API Swagger definition, you can find
+here 'VNFM driver development related API<https://gerrit.onap.org/r/gitweb?p=vfc/nfvo/lcm.git;a=blob;f=lcm/swagger/vfc.vnfdriver.swagger.json;h=fc35adbdc75df1307ca2c43a11bfb472da2a27c6;hb=HEAD>'
+
+
+**2.  Terms, Definitions and Abbreviations**
+============================================
+
+For the purposes of the present document, the following abbreviations apply:
+
++-------------+-----------------------------------------------+
+|Abbreviation |                                               |
++-------------+-----------------------------------------------+
+|NFVO         |Network Functions Virtualization Orchestrator  |
++-------------+-----------------------------------------------+
+|VNFM         |Virtual Network Function Manager               |
++-------------+-----------------------------------------------+
+|VNF          |Virtual Network Function                       |
++-------------+-----------------------------------------------+
+
+Table 2-1 abbreviations
+
+
+**3.  Interfaces provided by VNFM Driver**
+==========================================
+
+Interfaces use RESTful API and the format is as follows:
+http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfm_id}/[……]
+R1 vnfmtype:
+zte-vnfm
+hw-vnfm
+juju
+
+**3.1  Instantiate VNF**
+------------------------
+
++--------------+--------------------------------------------------------------+
+|If Definition | Description                                                  |
++==============+==============================================================+
+|URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs  |
++--------------+--------------------------------------------------------------+
+|Operation     | POST                                                         |
++--------------+--------------------------------------------------------------+
+|Direction     | NSLCM->VNFMDriver                                            |
++--------------+--------------------------------------------------------------+
+
+**3.1.1  Request**
+
++-----------------------+------------+-------------+----------+------------------------------+
+| Parameter             | Qualifier  | Cardinality | Content  | Description                  |
++=======================+============+=============+==========+==============================+
+| vnfInstanceName       | M          | 1           | String   | Human-readable name  of the  |
+|                       |            |             |          | VNF instance to be created.  |
++-----------------------+------------+-------------+----------+------------------------------+
+| vnfPackageId          | M          | 1           | String   | VNF packageId                |
++-----------------------+------------+-------------+----------+------------------------------+
+| vnfDescriptorId       | M          | 1           | String   | Information  sufficient  to  |
+|                       |            |             |          | identify the VNF Descriptor  |
+|                       |            |             |          | which  defines  the  VNF  to |
+|                       |            |             |          | be created.                  |
++-----------------------+------------+-------------+----------+------------------------------+
+| flavourId             | M          | 0..1        | String   | Reserved                     |
++-----------------------+------------+-------------+----------+------------------------------+
+|vnfInstanceDescription | M          | 0..1        | String   | Human-readable               |
+|                       |            |             |          | description  of  the  VNF    |
+|                       |            |             |          | instance to be created.      |
++-----------------------+------------+-------------+----------+------------------------------+
+| extVirtualLink        | M          | 0..N        | Ext      | References  to  external     |
+|                       |            |             | Virtual  | virtual links to connect the |
+|                       |            |             | LinkData | VNF to.                      |
++-----------------------+------------+-------------+----------+------------------------------+
+| additionalParam       | M          | 0..N        | Object   |Additional  parameters        |
+|                       |            |             |          |passed  by  the  NFVO  as     |
+|                       |            |             |          |input  to  the  instantiation |
+|                       |            |             |          |process,  specific  to  the   |
+|                       |            |             |          |VNF being instantiated.       |
++-----------------------+------------+-------------+----------+------------------------------+
+
+**ExtVirtualLinkData:**
+
++--------------+------------+-------------+----------+----------------------------------------+
+| Attribute    | Qualifier  | Cardinality | Content  | Description                            |
++==============+============+=============+==========+========================================+
+| vlInstanceId | M          | 0..1        | String   | Identifier of the VL instance          |
++--------------+------------+-------------+----------+----------------------------------------+
+| vim          | CM         | 0..1        | VimInfo  | Information about the VIM that         |
+|              |            |             |          | manages this resource.                 |
+|              |            |             |          | This attribute shall be supported      |
+|              |            |             |          | and present if VNF-related resource    |
+|              |            |             |          | management in direct applicable.       |
++--------------+------------+-------------+----------+----------------------------------------+
+| networkId    | M          | 1           | String   | The network UUID of VIM                |
++--------------+------------+-------------+----------+----------------------------------------+
+| cpdId        | M          | 0..1        | String   | Identifier of the external CPD in VNFD |
++--------------+------------+-------------+----------+----------------------------------------+
+
+**VimInfo:**
+
++------------------+------------+-------------+--------------+------------------------------------------------+
+| Attribute        | Qualifier  | Cardinality | Content      | Description                                    |
++==================+============+=============+==============+================================================+
+| vimInfoId        | M          | 1           | Identifier   | The identifier of this VimInfo instance,       |
+|                  |            |             |              | for the purpose of referencing it from         |
+|                  |            |             |              | other information elements.                    |
++------------------+------------+-------------+--------------+------------------------------------------------+
+| vimId            | M          | 1           | Identifier   | The identifier of the VIM.                     |
++------------------+------------+-------------+--------------+------------------------------------------------+
+| interfaceInfo    | M          | 0..N        | KeyValuePair | Information about the interface to the         |
+|                  |            |             |              | VIM, including VIM provider type, API          |
+|                  |            |             |              | version, and protocol type.                    |
++------------------+------------+-------------+--------------+------------------------------------------------+
+| accessInfo       | M          | 0..N        | KeyValuePair | Authentication credentials for accessing the   |
+|                  |            |             |              | VIM. Examples may include those to support     |
+|                  |            |             |              | different authentication schemes, e.g., OAuth, |
+|                  |            |             |              | Token, etc.                                    |
++------------------+------------+-------------+--------------+------------------------------------------------+
+|interfaceEndpoint | M          | 1           | String       | Information about the interface endpoint. An   |
+|                  |            |             |              | example is a URL.                              |
++------------------+------------+-------------+--------------+------------------------------------------------+
+
+
+**interfaceInfo:**
+
++--------------+------------+-------------+----------+-------------------------------+
+| Attribute    | Qualifier  | Cardinality | Content  | Description                   |
++==============+============+=============+==========+===============================+
+| vimType      | M          | 1           | String   | Type of the VIM               |
++--------------+------------+-------------+----------+-------------------------------+
+| apiVersion   | M          | 1           | String   |                               |
++--------------+------------+-------------+----------+-------------------------------+
+| protocolType | M          | 1           | String   | http, https                   |
++--------------+------------+-------------+----------+-------------------------------+
+
+
+**accessInfo:**
+
++--------------+------------+-------------+----------+-------------------------------+
+| Attribute    | Qualifier  | Cardinality | Content  | Description                   |
++==============+============+=============+==========+===============================+
+| tenant       | M          | 1           | String   | Tenant Name of tenant         |
++--------------+------------+-------------+----------+-------------------------------+
+| username     | M          | 1           | String   | Username for login            |
++--------------+------------+-------------+----------+-------------------------------+
+| password     | M          | 1           | String   | Password of login user        |
++--------------+------------+-------------+----------+-------------------------------+
+
+.. code-block:: none
+
+   {
+     "vnfInstanceName":"vFW",
+     "vnfPackageId":"1",
+     "vnfDescriptorId":"1",
+     "vnfInstanceDescription":"vFW_1",
+     "extVirtualLinkLink":[
+    {
+      "vlInstanceId":"1",
+      "resourceId":"1246" ,
+      " cpdId":"11111",
+      "vim":
+      {
+        "vimInfoId":"1",
+        "vimid":"1",
+        "interfaceInfo":{
+          "vimType":"openstack",
+          "apiVersion":"v2",
+          "protocolType":"http"
+        }
+        "accessInfo":{
+          "tenant":"tenant_vCPE",
+          "username":"vCPE",
+          "password":"vCPE_321"
+        }
+        "interfaceEndpoint":"http://10.43.21.105:80/"
+      }
+    }
+  ]
+  "additionalParam":{
+
+  ……
+  }
+
+   }
+
+
+**3.1.2  Response**
+
++-------------------+------------+-------------+-----------+-------------------------------+
+| Parameter         | Qualifier  | Cardinality | Content   | Description                   |
++===================+============+=============+===========+===============================+
+| jobId             | M          | 1           | Identifier| Tenant Name of tenant         |
+|                   |            |             |           | operation occurrence.         |
+|                   |            |             |           |                               |
+|                   |            |             |           | [lifecycleOperationOccurren   |
+|                   |            |             |           |  ceId]                        |
++-------------------+------------+-------------+-----------+-------------------------------+
+| vnfInstanceId     | M          | 1           | String    | VNF instance identifier.      |
++-------------------+------------+-------------+-----------+-------------------------------+
+
+.. code-block:: json
+
+   {
+     "jobId":"1",
+     "vnfInstanceId":"1"
+   }
+
+**3.2  Terminate VNF**
+----------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition |  Description                                                     |
++===============+==================================================================+
+| URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/     |
+|               | {vnfInstanceId}/terminate                                        |
++---------------+------------------------------------------------------------------+
+| Operation     |  POST                                                            |
++---------------+------------------------------------------------------------------+
+| Direction     |  NSLCM->VNFMDriver                                               |
++---------------+------------------------------------------------------------------+
+
+**3.2.1  Request**
+
++-----------------+------------+-------------+-----------+----------------------------------+
+| Parameter       | Qualifier  | Cardinality | Content   | Description                      |
++=================+============+=============+===========+==================================+
+| terminationType | M          | 1           | Enum      | Signals whether forceful or      |
+|                 |            |             |           | graceful termination  is         |
+|                 |            |             |           | requested.                       |
+|                 |            |             |           | In case of forceful termination, |
+|                 |            |             |           | the  VNF  is  shut  down         |
+|                 |            |             |           | immediately, and resources are   |
+|                 |            |             |           | released. Note that if the VNF   |
+|                 |            |             |           | is still  in service,  this may  |
+|                 |            |             |           | adversely  impact  network       |
+|                 |            |             |           | service, and therefore, operator |
+|                 |            |             |           | policies apply to determine if   |
+|                 |            |             |           | forceful termination is allowed  |
+|                 |            |             |           | in the particular situation.     |
+|                 |            |             |           |                                  |
+|                 |            |             |           | In case of graceful termination, |
+|                 |            |             |           | the VNFM first arranges to take  |
+|                 |            |             |           | the  VNF  out  of  service  (by  |
+|                 |            |             |           | means  out  of  scope  of  the   |
+|                 |            |             |           | present  specification,  e.g.    |
+|                 |            |             |           | involving interaction with EM,   |
+|                 |            |             |           | if required).  Once  this  was   |
+|                 |            |             |           | successful,  or after a timeout, |
+|                 |            |             |           | the  VNFM  shuts  down the  VNF  |
+|                 |            |             |           | and releases the resources.      |
++-----------------+------------+-------------+-----------+----------------------------------+
+| graceful        | M          | 0..1        | Time      | The time interval (second) to    |
+| Termination     |            |             | Duration  | wait for the VNF to be taken out |
+| Timeout         |            |             |           | of  service  during  graceful    |
+|                 |            |             |           | termination,  before  shutting   |
+|                 |            |             |           | down the VNF and releasing the   |
+|                 |            |             |           | resources.                       |
+|                 |            |             |           | If not given, it is expected     |
+|                 |            |             |           | that the  VNFM  waits  for  the  |
+|                 |            |             |           | successful taking out of service |
+|                 |            |             |           | of the VNF, no matter  how long  |
+|                 |            |             |           | it  takes, before shutting down  |
+|                 |            |             |           | the  VNF  and  releasing  the    |
+|                 |            |             |           | resources (see note).            |
+|                 |            |             |           |                                  |
+|                 |            |             |           | Minimum timeout or timeout       |
+|                 |            |             |           | range are specified by the VNF   |
+|                 |            |             |           | Provider  (e.g. defined in the   |
+|                 |            |             |           | VNFD or communicated  by         |
+|                 |            |             |           | other means).                    |
+|                 |            |             |           |                                  |
+|                 |            |             |           | Not relevant in case of forceful |
+|                 |            |             |           | termination.                     |
++-----------------+------------+-------------+-----------+----------------------------------+
+
+.. code-block:: json
+
+   {
+     "vnfInstanceId":"1",
+     "terminationType":"graceful",
+     "gracefulTerminationTimeout":"60"
+   }
+
+**3.2.2  Response**
+
++--------------+------------+-------------+-----------+--------------------------------+
+| Parameter    | Qualifier  | Cardinality | Content   | Description                    |
++==============+============+=============+===========+================================+
+| jobId        | M          | 1           | Identifier| Identifier of the VNF lifecycle|
+|              |            |             |           | operation occurrence.          |
+|              |            |             |           |                                |
+|              |            |             |           | [lifecycleOperationOccurren    |
+|              |            |             |           |  ceId]                         |
++--------------+------------+-------------+-----------+--------------------------------+
+
+.. code-block:: json
+
+   {
+     "jobId":"1"
+   }
+
+
+**3.3  Query VNF**
+------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition |  Description                                                     |
++===============+==================================================================+
+| URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/     |
+|               | {vnfInstanceId}                                                  |
++---------------+------------------------------------------------------------------+
+| Operation     |  GET                                                             |
++---------------+------------------------------------------------------------------+
+| Direction     |  NSLCM->VNFMDriver                                               |
++---------------+------------------------------------------------------------------+
+
+**3.3.1  Request**
+
+VNF filter: vnfInstanceId via url [R1]
+
+**3.3.2  Response**
+
++--------------+------------+-------------+-----------+---------------------------------+
+| Parameter    | Qualifier  | Cardinality | Content   | Description                     |
++==============+============+=============+===========+=================================+
+| vnfInfo      | M          | o..N        | vnfInfo   | The information items about the |
+|              |            |             |           | selected VNF instance(s) that   |
+|              |            |             |           | are returned.                   |
+|              |            |             |           |                                 |
+|              |            |             |           | If attributeSelector is present,|
+|              |            |             |           | only the  attributes  listed in |
+|              |            |             |           | attributeSelector will be       |
+|              |            |             |           | returned for the selected       |
+|              |            |             |           | VNF instance(s).                |
++--------------+------------+-------------+-----------+---------------------------------+
+
+**VnfInfo Table**
+
++-----------------+------------+-------------+----------+---------------------------------+
+| Attribute       | Qualifier  | Cardinality | Content  | Description                     |
++=================+============+=============+==========+=================================+
+| vnfInstanceId   | M          | 1           | String   | VNF instance identifier.        |
++-----------------+------------+-------------+----------+---------------------------------+
+| vnfInstanceName | M          | o..1        | String   | VNF instance name.              |
++-----------------+------------+-------------+----------+---------------------------------+
+| vnfInstance     | M          | o..1        | String   | Human-readable description of   |
+| Description     |            |             |          | the VNF instance.               |
++-----------------+------------+-------------+----------+---------------------------------+
+| vnfdId          | M          | 1           | String   | Identifier of the VNFD on which |
+|                 |            |             |          | the VNF instance is based.      |
++-----------------+------------+-------------+----------+---------------------------------+
+| vnfPackageId    | M          | o..1        | String   | Identifier of the VNF Package   |
+|                 |            |             |          | used to manage the lifecycle of |
+|                 |            |             |          | the VNF instance. See note.     |
+|                 |            |             |          | Shall be present for an         |
+|                 |            |             |          | instantiated VNF instance.      |
++-----------------+------------+-------------+----------+---------------------------------+
+| version         | M          | 1           | String   | Version of the VNF.             |
++-----------------+------------+-------------+----------+---------------------------------+
+| vnfProvider     | M          | 1           | String   | Name of the person or company   |
+|                 |            |             |          | providing the VNF.              |
++-----------------+------------+-------------+----------+---------------------------------+
+| vnfType         | M          | 1           | String   | VNF Application Type            |
++-----------------+------------+-------------+----------+---------------------------------+
+| vnfStatus       | M          | 1           | Enum     | The instantiation state of the  |
+|                 |            |             |          | VNF. Possible values:           |
+|                 |            |             |          | INACTIVE (Vnf is terminated or  |
+|                 |            |             |          | not instantiated ),             |
+|                 |            |             |          | ACTIVE (Vnf is instantiated).   |
+|                 |            |             |          | [instantiationState]            |
++-----------------+------------+-------------+----------+---------------------------------+
+
+.. code-block:: json
+
+   {
+     "vnfInfo":
+     {
+       "nfInstanceId":"1",
+       "vnfInstanceName":"vFW",
+       "vnfInstanceDescription":"vFW in Nanjing TIC Edge",
+       "vnfdId":"1",
+       "vnfPackageId":"1",
+       "version":"V1.1",
+       "vnfProvider":"ZTE",
+       "vnfType":"vFW",
+       "vnfStatus":"  ACTIVE",
+     }
+   }
+
+**3.4  Get operation status**
+-----------------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition |  Description                                                     |
++===============+==================================================================+
+| URI           | http(s)://[hostname][:port]/api/{vnfmtype}                       |
+|               | /v1/{vnfmid}/jobs/{jobid}&responseId={ responseId }              |
++---------------+------------------------------------------------------------------+
+| Operation     |  GET                                                             |
++---------------+------------------------------------------------------------------+
+| Direction     |  NSLCM->VNFMDriver                                               |
++---------------+------------------------------------------------------------------+
+
+**3.4.1  Request**
+
+  None
+
+**3.4.2  Response**
+
++--------------------+------------+-------------+-------------+---------------------------------+
+| Parameter          | Qualifier  | Cardinality | Content     | Description                     |
++====================+============+=============+=============+=================================+
+| jobId              | M          | 1           | String      | Job ID                          |
++--------------------+------------+-------------+-------------+---------------------------------+
+| responseDescriptor | M          | 1           | -           | Including:                      |
+|                    |            |             |             | vnfStatus, statusDescription,   |
+|                    |            |             |             | errorCode,progress,             |
+|                    |            |             |             | responseHistoryList, responseId |
++--------------------+------------+-------------+-------------+---------------------------------+
+| status             | M          | 1           | String      | JOB status                      |
+|                    |            |             |             | started                         |
+|                    |            |             |             | processing                      |
+|                    |            |             |             | finished                        |
+|                    |            |             |             | error                           |
++--------------------+------------+-------------+-------------+---------------------------------+
+| progress           | M          | 1           | Integer     | progress (1-100)                |
++--------------------+------------+-------------+-------------+---------------------------------+
+| statusDescription  | M          | 1           | String      | Progress Description            |
++--------------------+------------+-------------+-------------+---------------------------------+
+| errorCode          | M          | 1           | Integer     | Errorcode                       |
++--------------------+------------+-------------+-------------+---------------------------------+
+| responseId         | M          | 1           | Integer     | Response Identifier             |
++--------------------+------------+-------------+-------------+---------------------------------+
+| response           | M          | o..N        | ArrayList<> | History  Response  Messages     |
+| HistoryList        |            |             |             | from  the  requested            |
+|                    |            |             |             | responseId to lastest one.      |
+|                    |            |             |             | Including fields:               |
+|                    |            |             |             | vnfStatus,                      |
+|                    |            |             |             | statusDescription,              |
+|                    |            |             |             | errorCode,                      |
+|                    |            |             |             | progress,                       |
+|                    |            |             |             | responseId                      |
++--------------------+------------+-------------+-------------+---------------------------------+
+
+.. code-block:: json
+
+   {
+     "jobId" : "1234566",
+     "responseDescriptor" : {
+       "progress" : "40",
+       "status" : "proccessing",
+       "statusDescription" : "OMC VMs are decommissioned in VIM",
+       "errorCode" : null,
+       "responseId" : "42",
+       "responseHistoryList" : [{
+         "progress" : "40",
+         "status" : "proccessing",
+         "statusDescription" : "OMC VMs are decommissioned in VIM",
+         "errorCode" : null,
+         "responseId" : "1"
+       }, {
+         "progress" : "41",
+         "status" : "proccessing",
+         "statusDescription" : "OMC VMs are decommissioned in VIM",
+         "errorCode" : null,
+         "responseId" : "2"
+       }
+     ]
+    }
+   }
+
+**3.5  Scale VNF**
+------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition |  Description                                                     |
++===============+==================================================================+
+| URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs/     |
+|               | {vnfInstanceId}/scale                                            |
++---------------+------------------------------------------------------------------+
+| Operation     |  POST                                                            |
++---------------+------------------------------------------------------------------+
+| Direction     |  NSLCM->VNFMDriver                                               |
++---------------+------------------------------------------------------------------+
+
+**3.5.1  Request**
+
+
++---------------+------------+-------------+-------------+---------------------------------------------+
+| Parameter     | Qualifier  | Cardinality | Content     | Description                                 |
++===============+============+=============+=============+=============================================+
+| type          | M          | 1           | Enum        | Defines the type of the scale operation     |
+|               |            |             |             | requested (scale out, scale in). The set of |
+|               |            |             |             | types actually supported depends on the     |
+|               |            |             |             | capabilities of the VNF being managed, as   |
+|               |            |             |             | declared in the VNFD. See note 1.           |
++---------------+------------+-------------+-------------+---------------------------------------------+
+| aspectId      | M          | 1           | Identifier  | Identifies the aspect of the VNF that is    |
+|               |            |             |             | requested to be scaled                      |
++---------------+------------+-------------+-------------+---------------------------------------------+
+| numberOfSteps | M          | 1           | Integer     | Number of scaling steps to be executed as   |
+|               |            |             |             | part of this ScaleVnf operation. It shall   |
+|               |            |             |             | be a positive number.                       |
+|               |            |             |             | Defaults to 1.                              |
+|               |            |             |             | The VNF Provider defines in the VNFD        |
+|               |            |             |             | whether or not a particular VNF supports    |
+|               |            |             |             | performing more than one step at a time.    |
+|               |            |             |             | Such a property in the VNFD applies for all |
++---------------+------------+-------------+-------------+---------------------------------------------+
+| additional    | M          | 1           |KeyValuePair | Additional parameters passed by the NFVO    |
+| Param         |            |             |             | as input to the scaling proccess, specific  |
+|               |            |             |             | to the VNF being scaled.                    |
+|               |            |             |             | Reserved                                    |
++---------------+------------+-------------+-------------+---------------------------------------------+
+| NOTE 1: ETSI GS NFV-IFA 010 [2] specifies that the lifecycle management operations that expand       |
+|        or contract a VNF instance include scale in, scale out, scale up and scale down. Vertical     |
+|        scaling (scale up, scale down) is not supported in the present document.                      |
+|        SCALE_IN designates scaling in.                                                               |
+|        SCALE_OUT 1 designates scaling out.                                                           |
+| NOTE 2: A scaling step is the smallest unit by which a VNF can be scaled w.r.t a particular scaling  |
+|          aspect.                                                                                     |
++------------------------------------------------------------------------------------------------------+
+
+.. code-block:: none
+
+   {
+     "vnfInstanceId":"5",
+     "type":" SCALE_OUT",
+     "aspectId":"101",
+     "numberOfSteps":"1",
+     "additionalParam":{
+   
+       ……
+   
+     }
+   }
+
+**3.5.2  Response**
+
++--------------------+------------+-------------+-------------+---------------------------------+
+| Parameter          | Qualifier  | Cardinality | Content     | Description                     |
++====================+============+=============+=============+=================================+
+| jobId              | M          | 1           | String      | The identifier of the VNF       |
+|                    |            |             |             | lifecycle operation occurrence. |
++--------------------+------------+-------------+-------------+---------------------------------+
+
+.. code-block:: json
+
+   {
+     "jobId":"1"
+   }
+
+**3.6  Heal VNF**
+-----------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition |  Description                                                     |
++===============+==================================================================+
+| URI           | http(s)://[hostname][:port]/api/{vnfmtype}/v1/{vnfmid}/vnfs      |
+|               | {vnfInstanceId}/heal                                             |
++---------------+------------------------------------------------------------------+
+| Operation     |  POST                                                            |
++---------------+------------------------------------------------------------------+
+| Direction     |  NSLCM->VNFMDriver                                               |
++---------------+------------------------------------------------------------------+
+
+**3.6.1  Request**
+
++--------------------+------------+-------------+-------------+---------------------------------+
+| Parameter          | Qualifier  | Cardinality | Content     | Description                     |
++====================+============+=============+=============+=================================+
+| action             | M          | 1           | String      | Indicates the action to be done |
+|                    |            |             |             | upon the given virtual machine. |
+|                    |            |             |             | Only "vmReset" is supported     |
+|                    |            |             |             | currently.                      |
++--------------------+------------+-------------+-------------+---------------------------------+
+| affectedvm         | M          |  1          | AffectedVm  | Defines the information of      |
+|                    |            |             |             | virtual machines.               |
++--------------------+------------+-------------+-------------+---------------------------------+
+
+**AffectedVm**
+
++--------------------+------------+-------------+-------------+---------------------------------+
+| Parameter          | Qualifier  | Cardinality | Content     | Description                     |
++====================+============+=============+=============+=================================+
+| vimid              | M          | 1           | String      | Defines  the  UUID  of  virtual |
+|                    |            |             |             | machine.                        |
++--------------------+------------+-------------+-------------+---------------------------------+
+| vduid              | M          | 1           | String      | Defines the id of vdu.          |
++--------------------+------------+-------------+-------------+---------------------------------+
+| vmname             | M          | 1           |             | Defines  the  name  of  virtual |
+|                    |            |             |             | machines.                       |
++--------------------+------------+-------------+-------------+---------------------------------+
+
+.. code-block:: json
+
+   {
+     "action": "vmReset",
+     "affectedvm":
+     {
+       "vmid": "804cca71-9ae9-4511-8e30-d1387718caff",
+       "vduid": "vdu_100",
+       "vmname": "ZTE_SSS_111_PP_2_L"
+     }
+   }
+
+**3.6.2  Response**
+
++--------------------+------------+-------------+-------------+---------------------------------+
+| Parameter          | Qualifier  | Cardinality | Content     | Description                     |
++====================+============+=============+=============+=================================+
+| jobId              | M          | 1           | Identifier  | The identifier of the VNF       |
+|                    |            |             |             | healing operation occurrence.   |
++--------------------+------------+-------------+-------------+---------------------------------+
+
+.. code-block:: json
+
+   {
+     "jobId":"1"
+   }
+
+
+**4.  Interfaces provided by VFC to integrate with VNFM driver**
+================================================================
+
+
+**4.1  VNF Lifecycle Operation Granting Interface**
+---------------------------------------------------
+
+
++---------------+------------------------------------------------------------------+
+| IF Definition |  Description                                                     |
++===============+==================================================================+
+| URI           | http(s)://[hostname][:port]/api/nslcm/v1/ns/grantvnf             |
++---------------+------------------------------------------------------------------+
+| Operation     |  POST                                                            |
++---------------+------------------------------------------------------------------+
+| Direction     |  VNFMDriver -> NSLCM                                             |
++---------------+------------------------------------------------------------------+
+
+**4.1.1  Request**
+
+
+.. code-block:: json
+
+   {
+     "vnfInstanceId": "string",
+     "vnfDescriptorId": "string",
+     "lifecycleOperation": "Terminal",
+     "jobId": "string",
+     "addResource": [
+       {
+         "type": "string",
+         "resourceDefinitionId": "string",
+         "vdu": "string"
+       }
+     ],
+     "removeResource": [
+       {
+         "type": "string",
+         "resourceDefinitionId": "string",
+         "vdu": "string"
+       }
+     ],
+     "additionalParam": {}
+   }
+
+**4.1.2  Response**
+
+.. code-block:: json
+
+   {
+     "vim": {
+       "vimInfoId": "string",
+       "vimId": "string",
+       "interfaceInfo": {
+         "vimType": "string",
+         "apiVersion": "string",
+         "protocolType": "string"
+       },
+       "accessInfo": {
+         "tenant": "string",
+         "username": "string",
+         "password": "string"
+       },
+       "interfaceEndpoint": "string"
+     }
+   }
+
+**4.2  VNF LCM Notification Interface**
+---------------------------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition |  Description                                                     |
++===============+==================================================================+
+| URI           | http(s)://[hostname][:port]/api/nslcm/v1/ns/{vnfmid}/vnfs/       |
+|               | {vnfInstanceId}/Notify                                           |
++---------------+------------------------------------------------------------------+
+| Operation     |  POST                                                            |
++---------------+------------------------------------------------------------------+
+| Direction     |  VNFMDriver -> NSLCM                                             |
++---------------+------------------------------------------------------------------+
+
+**4.2.1  Request**
+
+.. code-block:: json
+
+   {
+     "status": "result",
+     "vnfInstanceId": "string",
+     "operation": "Terminal",
+     "jobId": "string",
+     "affectedVnfc": [
+       {
+         "vnfcInstanceId": "string",
+         "vduId": "string",
+         "changeType": "added",
+         "vimid": "string",
+         "vmid": "string",
+         "vmname": "string"
+       }
+     ],
+     "affectedCp": [
+       {
+         "virtualLinkInstanceId": "string",
+         "cpinstanceid": "string",
+         "cpdid": "string",
+         "ownerType": "string",
+         "ownerId": "string",
+         "changeType": "added",
+         "portResource": {
+           "vimid": "string",
+           "resourceid": "string",
+           "resourceName": "string",
+           "tenant": "string",
+           "ipAddress": "string",
+           "macAddress": "string",
+           "instId": "string"
+         }
+       }
+     ],
+     "affectedVl": [
+       {
+         "vlInstanceId": "string",
+         "vldid": "string",
+         "changeType": "added",
+         "networkResource": {
+           "resourceType": "network",
+           "resourceId": "string"
+         }
+       }
+     ],
+     "affectedVirtualStorage": [
+       {}
+     ]
+   }
+
+**4.2.2  Response**
+
+N/A
+
+
+**4.3  Query VNFM Register Info Interface**
+-------------------------------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition |  Description                                                     |
++===============+==================================================================+
+| URI           | http(s)://[hostname][:port]/api/nslcm/v1/vnfms/{vnfmid}          |
++---------------+------------------------------------------------------------------+
+| Operation     |  GET                                                             |
++---------------+------------------------------------------------------------------+
+| Direction     |  VNFMDriver -> NSLCM                                             |
++---------------+------------------------------------------------------------------+
+
+**4.3.1  Request**
+N/A
+
+**4.3.2  Response**
+
+.. code-block:: json
+
+   {
+     "vnfmId": "string",
+     "name": "string",
+     "type": "string",
+     "url": "string",
+     "userName": "string",
+     "password": "string",
+     "vimId": "string",
+     "vendor": "string",
+     "version": "string",
+     "description": "string",
+     "certificateUrl": "string",
+     "createTime": "string"
+   }
+
+
+**4.4  Query VIM Register Info Interface**
+------------------------------------------
+
++---------------+------------------------------------------------------------------+
+| IF Definition |  Description                                                     |
++===============+==================================================================+
+| URI           | http(s)://[hostname][:port]/api/nslcm/v1/vims/{vimid}            |
++---------------+------------------------------------------------------------------+
+| Operation     |  GET                                                             |
++---------------+------------------------------------------------------------------+
+| Direction     |  VNFMDriver -> NSLCM                                             |
++---------------+------------------------------------------------------------------+
+
+**4.4.1  Request**
+N/A
+
+**4.4.2  Response**
+
++--------------------+------------+-------------+-------------+---------------------------------+
+| Parameter          | Qualifier  | Cardinality | Content     | Description                     |
++====================+============+=============+=============+=================================+
+| vimId              | M          | 1           | string      | The identifier of the VIM       |
++--------------------+------------+-------------+-------------+---------------------------------+
+| name               | M          | 1           | string      | The name of the VIM             |
++--------------------+------------+-------------+-------------+---------------------------------+
+| type               | M          | 1           | string      | The type of the VIM             |
++--------------------+------------+-------------+-------------+---------------------------------+
+| url                | M          | 1           | string      | The access URL of the VIM       |
++--------------------+------------+-------------+-------------+---------------------------------+
+| userName           | M          | 1           | string      | The user name of the VIM        |
++--------------------+------------+-------------+-------------+---------------------------------+
+| password           | M          | 1           | string      | The password of the VIM         |
++--------------------+------------+-------------+-------------+---------------------------------+
+| vendor             | M          | 1           | string      | The vendor of the VIM           |
++--------------------+------------+-------------+-------------+---------------------------------+
+| version            | M          | 1           | version     | The version of the VIM          |
++--------------------+------------+-------------+-------------+---------------------------------+
+| description        | O          | 1           | description | The description of the VIM      |
++--------------------+------------+-------------+-------------+---------------------------------+
+| sslCacert          | O          | 1           | Identifier  | The collection of trusted       |
+|                    |            |             |             | certificates towards the VIM.   |
++--------------------+------------+-------------+-------------+---------------------------------+
+| sslInsecure        | O          | 1           | Identifier  | Whether to verify VIM's         |
+|                    |            |             |             | certificate.                    |
++--------------------+------------+-------------+-------------+---------------------------------+
+| status             | O          | 1           | Identifier  | The status of external system   |
++--------------------+------------+-------------+-------------+---------------------------------+
+
+
+.. code-block:: json
+
+   {
+     "vimId": "string",
+     "name": "string",
+     "type": "string",
+     "url": "string",
+     "userName": "string",
+     "password": "string",
+     "vendor": "string",
+     "version": "string",
+     "description": "string",
+     "createTime": "string",
+     "sslCacert": "string",
+     "sslInsecure": "string",
+     "status": "string"
+   }
+