--- /dev/null
+.. contents::\r
+ :depth: 3\r
+..\r
+\r
+ **VNFM API**\r
+ **V0.1**\r
+\r
+**1 Scope**\r
+=============\r
+\r
+ The scope of the present document is to describe the VNFM exposed\r
+ API specification over Or-Vnfm Reference Point.\r
+\r
+**2 Terms, Definitions and Abbreviations**\r
+===========================================\r
+\r
+ For the purposes of the present document, the following\r
+ 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
+Table 2-1 abbreviations\r
+\r
+**3. Interfaces provided by VNFM** (Or-Vnfm/Ve-Vnfm-vnf) \r
+==========================================================\r
+\r
+ Interfaces use RESTful API and the format is as follows:\r
+ http(s)://[hostname][:port]/gvnfmapi/lcm/v1/[……]\r
+\r
+|image0|\r
+\r
+\r
+ **{apiRoot} is** http(s)://[hostname][:port]/gvnfmapi\r
+\r
+**3.1 Create VNF Identifier**\r
+-----------------------------\r
+\r
++---------------------+--------------------------------------------------------------+\r
+| If Definition | Description |\r
++=====================+==============================================================+\r
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf\_instances |\r
++---------------------+--------------------------------------------------------------+\r
+| Operation | POST |\r
++---------------------+--------------------------------------------------------------+\r
+| Direction | NFVO->VNFMLCM |\r
++---------------------+--------------------------------------------------------------+\r
+\r
+**3.1.1 Request**\r
+\r
++---------------------------+-------------+---------------+------------------+-------------------------------------------------------------------------------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++===========================+=============+===============+==================+=====================================================================================+\r
+| vnfdId | M | 1 | Identifier | Identifier that identifies the VNFD which defines the VNF instance to be created. |\r
++---------------------------+-------------+---------------+------------------+-------------------------------------------------------------------------------------+\r
+| vnfInstanceName | M | 1 | String | Human-readable name of the VNF instance to be created. |\r
++---------------------------+-------------+---------------+------------------+-------------------------------------------------------------------------------------+\r
+| vnfInstanceDescription | O | 0..1 | String | Human-readable description of the VNF instance to be created. |\r
++---------------------------+-------------+---------------+------------------+-------------------------------------------------------------------------------------+\r
+\r
+ {\r
+ "vnfdId": "zte\_vFW\_51610", \r
+ "vnfInstanceName": "vFW\_01",\r
+ " vnfInstanceDescription": " vFW in Nanjing TIC Edge"\r
+ }\r
+\r
+**3.1.2 Response**\r
+\r
++-----------------+-------------+---------------+------------------+-----------------------------------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++=================+=============+===============+==================+=========================================+\r
+| vnfInstanceId | M | 1 | Identifier | VNF instance identifier just created. |\r
++-----------------+-------------+---------------+------------------+-----------------------------------------+\r
+\r
+ {\r
+ "vnfInstanceId": "1"\r
+ }\r
+\r
+**3.1.3 Response Code**\r
+\r
++-----------+-----------------------+-----------------------------------------------------------+\r
+| Code | Meaning | Description |\r
++===========+=======================+===========================================================+\r
+| 201 | Created | A VNF Instance identifier was created successfully. |\r
++-----------+-----------------------+-----------------------------------------------------------+\r
+| 4xx/5xx | <name from RFC7231> | <description> |\r
++-----------+-----------------------+-----------------------------------------------------------+\r
+\r
+**3.2 Delete VNF Identifier**\r
+-----------------------------\r
+\r
++---------------------+------------------------------------------------------------------------------+\r
+| If Definition | Description |\r
++=====================+==============================================================================+\r
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf\_instances/{vnfInstanceId} |\r
++---------------------+------------------------------------------------------------------------------+\r
+| Operation | DELETE |\r
++---------------------+------------------------------------------------------------------------------+\r
+| Direction | NFVO->VNFMLCM |\r
++---------------------+------------------------------------------------------------------------------+\r
+\r
+**3.2.1 Request**\r
+\r
++-------------+-------------+---------------+---------------+---------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++=============+=============+===============+===============+===============+\r
+| n/a | | | | |\r
++-------------+-------------+---------------+---------------+---------------+\r
+\r
+**3.2.2 Response**\r
+\r
++-------------+-------------+---------------+---------------+---------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++=============+=============+===============+===============+===============+\r
+| n/a | | | | |\r
++-------------+-------------+---------------+---------------+---------------+\r
+\r
+**3.2.3 Response Code**\r
+\r
++--------+-----------+-------------------+\r
+| Code | Meaning | Description |\r
++--------+-----------+-------------------+\r
+\r
++-----------+-----------------------+----------------------------------------------------------------------------------------------+\r
+| 204 | No Content | The VNF instance resource and the associated VNF identifier were deleted successfully. |\r
++===========+=======================+==============================================================================================+\r
+| 4xx/5xx | <name from RFC7231> | <description> |\r
++-----------+-----------------------+----------------------------------------------------------------------------------------------+\r
+\r
+3.3 Instantiate VNF\r
+-------------------\r
+\r
++---------------------+-------------------------------------------------------------------------------------------+\r
+| If Definition | Description |\r
++=====================+===========================================================================================+\r
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf_instances/{vnfInstanceId}/instantiate |\r
++---------------------+-------------------------------------------------------------------------------------------+\r
+| Operation | POST |\r
++---------------------+-------------------------------------------------------------------------------------------+\r
+| Direction | NFVO->VNFMLCM |\r
++---------------------+-------------------------------------------------------------------------------------------+\r
+\r
+3.3.1 **Request**\r
+\r
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++====================+===========+=============+=====================+===============================================================+\r
+| flavourId | M | 1 | IdentifierInV nfd | Identifier of the VNF deployment flavour to be instantiated. |\r
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+\r
+| instantiation | O | 0..1 | IdentifierInVnfd | Identifier of the instantiation |\r
+| LevelId | | | | level of the deployment |\r
+| | | | | flavour to be instantiated. If |\r
+| | | | | not present, the default |\r
+| | | | | instantiation level as |\r
+| | | | | declared in the VNFD is |\r
+| | | | | instantiated. |\r
+| | | | | |\r
+| | | | | Reserved |\r
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+\r
+| extVirtualLinks | O | 0..N | ExtVirtualLin kData | Information about external VLs to connect the VNF to. |\r
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+\r
+| extManagedVirtualL | O | 0..N | ExtManaged | Information about internal |\r
+| inks | | | VirtualLinkData | VLs that are managed by |\r
+| | | | | other entities than the VNFM. |\r
+| | | | | |\r
+| | | | | Reserved |\r
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+\r
+| localization | O | 0..1 | String | Localization language of the VNF to be instantiated can be |\r
+| Language | | | | declared in the VNFD. The value shall comply with the format |\r
+| | | | | defined in IETF RFC 5646 [6]. |\r
+| | | | | |\r
+| | | | | Reserved |\r
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+\r
+| additionalParams | O | 0..N | KeyValuePair | Additional input parameters for the instantiation process, |\r
+| | | | | specific to the VNF being instantiated. |\r
++--------------------+-----------+-------------+---------------------+---------------------------------------------------------------+\r
+\r
+**ExtVirtualLinkData:**\r
+\r
++------------------+-----------+-------------+-----------------+----------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinality | Content | Description |\r
++==================+===========+=============+=================+==================================================================================+\r
+| vlInstanceId | O | 0..1 | Identifier | Identifier of the VL instance. |\r
++------------------+-----------+-------------+-----------------+----------------------------------------------------------------------------------+\r
+| vim | CM | 0..1 | VimInfo | Information about the VIM that manages this resource. |\r
+| | | | | This attribute shall be supported and present if VNF-related resource management |\r
+| | | | | in direct mode is applicable. |\r
++------------------+-----------+-------------+-----------------+----------------------------------------------------------------------------------+\r
+| resourceProvider | CM | 0..1 | Identifier | Identifies the entity responsible for the management of this resource. |\r
+| Id | | | | This attribute shall be present if |\r
+| | | | | VNF-related resource management in indirect mode is applicable. |\r
+| | | | | |\r
+| | | | | Reserved |\r
++------------------+-----------+-------------+-----------------+----------------------------------------------------------------------------------+\r
+| resourceId | M | 1 | IdentifierInVim | The identifier of the resource in the scope of the VIM or the resource provider. |\r
++------------------+-----------+-------------+-----------------+----------------------------------------------------------------------------------+\r
+| extCps | M | 1..N | VnfExtCpData | External CPs of the VNF to be connected to this external VL. |\r
++------------------+-----------+-------------+-----------------+----------------------------------------------------------------------------------+\r
+\r
+\r
+ **VimInfo:**\r
++-----------------+-----------+-------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinality | Content | Description |\r
++=================+===========+=============+==============+==========================================================================================================================================+\r
+| vimInfoId | M | 1 | Identifier | The identifier of this VimInfo instance, for the purpose of referencing it from 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 VIM, including VIM provider type, API version, and protocol type. |\r
++-----------------+-----------+-------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------+\r
+| accessInfo | M | 0..N | KeyValuePair | Authentication credentials for accessing the VIM. Examples may include those to support different authentication schemes, e.g., OAuth, |\r
+| | | | | Token, etc. |\r
++-----------------+-----------+-------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------+\r
+| interface | M | 1 | String | Information about the interface endpoint. An example is a URL. |\r
+| Endpoint | | | | Token, etc. |\r
++-----------------+-----------+-------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------+\r
+\r
+ **interfaceInfo:**\r
++------------------+---------------+--------------------------------------+\r
+| **Key Define** | **Content** | **Description** |\r
++==================+===============+======================================+\r
+| vimType | String | The type of the VIM. |\r
++------------------+---------------+--------------------------------------+\r
+| apiVersion | String | The Version of the api of the VIM. |\r
++------------------+---------------+--------------------------------------+\r
+| protocolType | String | http https |\r
++------------------+---------------+--------------------------------------+\r
+\r
+ **accessInfo:**\r
++------------------+---------------+--------------------------+\r
+| **Key Define** | **Content** | **Description** |\r
++==================+===============+==========================+\r
+| tenant | String | Tenant Name of tenant |\r
++------------------+---------------+--------------------------+\r
+| username | String | Username for login |\r
++------------------+---------------+--------------------------+\r
+| password | String | Password of login user |\r
++------------------+---------------+--------------------------+\r
+\r
+ **VnfExtCpData:**\r
+\r
++------------------------+---------------------+-----------------------+--------------------+-----------------------------------------------------------+\r
+| **Attribute** | **Qualifier** | **Cardinality** | **Content** | **Description** |\r
++========================+=====================+=======================+====================+===========================================================+\r
+| cpdId | M | 1 | IdentifierInVnfd | The identifier of the CPD in the VNFD. |\r
++------------------------+---------------------+-----------------------+--------------------+-----------------------------------------------------------+\r
+| addresses | O | 0..N | NetworkAddress | List of (fixed) network addresses that |\r
+| | | | | need to be configured on the CP. This attribute shall |\r
+| | | | | be present if fixed addresses need to be configured. |\r
++------------------------+---------------------+-----------------------+--------------------+-----------------------------------------------------------+\r
+| numDynamicAddre sses | O | 0..1 | Integer | Number of network addresses to be assigned dynamically. |\r
+| | | | | This attribute shall be present if dynamic |\r
+| | | | | addresses need to be configured. |\r
+| | | | | Reserved |\r
++------------------------+---------------------+-----------------------+--------------------+-----------------------------------------------------------+\r
+\r
+ **NetworkAddress:**\r
+\r
++-----------------+---------------------+-----------------------+-------------------+---------------------------------------------------------------------------------------------------------------+\r
+| **Attribute** | **Qualifier** | **Cardinality** | **Content** | **Description** |\r
++=================+=====================+=======================+===================+===============================================================================================================+\r
+| addressType | M | 1 | Enum | Describes the type of the address to be assigned to the CP instantiated from the parent CPD. |\r
+| | | | | |\r
+| | | | | Permitted values: |\r
+| | | | | |\r
+| | | | | - MAC |\r
+| | | | | |\r
+| | | | | - IP |\r
++-----------------+---------------------+-----------------------+-------------------+---------------------------------------------------------------------------------------------------------------+\r
+| l2AddressData | CM | 0..1 | String | Provides the information on the MAC addresses to be assigned to the CP(s) instantiated from the parent CPD. |\r
+| | | | | |\r
+| | | | | Shall be present when the addressType is MAC address. |\r
++-----------------+---------------------+-----------------------+-------------------+---------------------------------------------------------------------------------------------------------------+\r
+| l3AddressData | CM | 0..1 | L3AddressData | Provides the information on the IP addresses to be assigned to the CP instantiated from the parent CPD. |\r
+| | | | | |\r
+| | | | | Shall be present when the addressType is IP address. |\r
++-----------------+---------------------+-----------------------+-------------------+---------------------------------------------------------------------------------------------------------------+\r
+\r
+ **L3AddressData:**\r
+\r
++-----------------+---------------------+-----------------------+-------------------+-----------------------+\r
+| **Attribute** | **Qualifier** | **Cardinality** | **Content** | **Description** |\r
++=================+=====================+=======================+===================+=======================+\r
+| iPAddressType | M | 1 | ENUM | IP address type. |\r
+| | | | | |\r
+| | | | | Permitted values: |\r
+| | | | | |\r
+| | | | | - IPv4 |\r
+| | | | | |\r
+| | | | | - IPv6 |\r
++-----------------+---------------------+-----------------------+-------------------+-----------------------+\r
+| iPAddress | M | 1 | String | IP address |\r
++-----------------+---------------------+-----------------------+-------------------+-----------------------+\r
+\r
+ {\r
+\r
+ "flavourId": "flavour\_1", \r
+ "instantiationLevelId":"instantiationLevel\_1", \r
+ "extVirtualLinks": [\r
+ {\r
+ "vlInstanceId": "1",\r
+ "vim": {\r
+ "vimInfoId": "1",\r
+ "vimId": "1", \r
+ "interfaceInfo": {\r
+ "vimType": "vim",\r
+ "apiVersion": "v2",\r
+ "protocolType": "http"\r
+ },\r
+ "accessInfo": {\r
+ "tenant": "tenant\_vCPE", \r
+ "username": "vCPE", \r
+ "password": "vCPE\_321"\r
+ },\r
+ "interfaceEndpoint": "http://10.43.21.105:80/"\r
+ },\r
+ "resourceId": "1246", \r
+ "extCps": [\r
+ {\r
+ "cpdId": "11", "addresses": [\r
+ {\r
+ "addressType": "MAC", \r
+ "l2AddressData": "00:f3:43:20:a2:a3"\r
+ },\r
+ {\r
+ "addressType": "IP", \r
+ "l3AddressData": {\r
+ "iPAddressType": "IPv4", \r
+ "iPAddress": "192.168.104.2"\r
+ }\r
+ }\r
+ ],\r
+ "numDynamicAddresses": 0\r
+ }\r
+ ]\r
+ }\r
+ ],\r
+\r
+ "localizationLanguage": "en\_US", "additionalParams": {...}\r
+ }\r
+\r
+**3.3.2 Response**\r
+\r
++-------------+-------------+---------------+------------------+---------------------------------------------------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++=============+=============+===============+==================+=========================================================+\r
+| vnfLcOpId | M | 1 | Identifier | Identifier of the VNF lifecycle operation occurrence. |\r
++-------------+-------------+---------------+------------------+---------------------------------------------------------+\r
+\r
+ {\r
+\r
+ "vnfLcOpId": "1"\r
+\r
+ }\r
+\r
+ **3.3.3 Response Code**\r
++-----------+-----------------------+------------------------------------------------------------------------------------------+\r
+| Code | Meaning | Description |\r
++===========+=======================+==========================================================================================+\r
+| 202 | Accepted | The request is accepted for processing, but the processing has not been completed. |\r
++-----------+-----------------------+------------------------------------------------------------------------------------------+\r
+| 4xx/5xx | <name from RFC7231> | <description> |\r
++-----------+-----------------------+------------------------------------------------------------------------------------------+\r
+\r
+**3.4 Terminate VNF**\r
+---------------------\r
+\r
++---------------------+-----------------------------------------------------------------------------------------+\r
+| If Definition | Description |\r
++=====================+=========================================================================================+\r
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf\_instances/{vnfInstanceId}/term inate |\r
++---------------------+-----------------------------------------------------------------------------------------+\r
+| Operation | POST |\r
++---------------------+-----------------------------------------------------------------------------------------+\r
+| Direction | NFVO->VNFMLCM |\r
++---------------------+-----------------------------------------------------------------------------------------+\r
+\r
+**3.4.1 Request**\r
+\r
++-------------------+-------------+---------------+---------------+-------------------------------------------------------------------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++===================+=============+===============+===============+=========================================================================+\r
+| terminationType | M | 1 | Enum | Indicates whether forceful or graceful termination is requested. |\r
+| | | | | |\r
+| | | | | Permitted values: |\r
+| | | | | |\r
+| | | | | - FORCEFUL: The VNFM |\r
+| | | | | will shut down the VNF and release the resources immediately |\r
+| | | | | after accepting the request. |\r
+| | | | | - GRACEFUL: The VNFM |\r
+| | | | | |\r
+| | | | | will first arrange to take the VNF out of service after accepting |\r
+| | | | | the request. Once the operation is successful or once the timer |\r
+| | | | | value specified in the |\r
+| | | | | “gracefulTerminationTime out” attribute expires, the VNFM will shut |\r
+| | | | | down the VNF and release the resources. |\r
++-------------------+-------------+---------------+---------------+-------------------------------------------------------------------------+\r
+| graceful | O | 0..1 | Integer | This attribute is only |\r
+| Termination | | | | applicable in case of graceful |\r
+| Timeout | | | | termination. It defines the |\r
+| | | | | time to wait for the VNF to be |\r
+| | | | | taken out of service before |\r
+| | | | | shutting down the VNF and |\r
+| | | | | releasing the resources. |\r
+| | | | | The unit is seconds. |\r
+| | | | | If not given and the |\r
+| | | | | "terminationType" |\r
+| | | | | attribute is set to |\r
+| | | | | "GRACEFUL", it is expected |\r
+| | | | | that the VNFM waits for |\r
+| | | | | the successful taking out of |\r
+| | | | | service of the VNF, no |\r
+| | | | | matter how long it takes, |\r
+| | | | | before shutting down the |\r
+| | | | | VNF and releasing the |\r
+| | | | | resources. |\r
++-------------------+-------------+---------------+---------------+-------------------------------------------------------------------------+\r
+ {\r
+ "terminationType": "GRACEFUL", \r
+ "gracefulTerminationTimeout": 120\r
+ }\r
+\r
+**3.4.2 Response**\r
+\r
++-------------+-------------+---------------+------------------+---------------------------------------------------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++=============+=============+===============+==================+=========================================================+\r
+| vnfLcOpId | M | 1 | Identifier | Identifier of the VNF lifecycle operation occurrence. |\r
++-------------+-------------+---------------+------------------+---------------------------------------------------------+\r
+\r
+ {\r
+ "vnfLcOpId": "2"\r
+ }\r
+\r
+**3.4.3 Response Code**\r
+\r
++-----------+-----------------------+------------------------------------------------------------------------------------------+\r
+| Code | Meaning | Description |\r
++===========+=======================+==========================================================================================+\r
+| 202 | Accepted | The request is accepted for processing, but the processing has not been completed. |\r
++-----------+-----------------------+------------------------------------------------------------------------------------------+\r
+| 4xx/5xx | <name from RFC7231> | <description> |\r
++-----------+-----------------------+------------------------------------------------------------------------------------------+\r
+\r
+**3.5 Query multiple VNF**\r
+---------------------------\r
++---------------------+--------------------------------------------------------------+\r
+| If Definition | Description |\r
++=====================+==============================================================+\r
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf\_instances |\r
++---------------------+--------------------------------------------------------------+\r
+| Operation | GET |\r
++---------------------+--------------------------------------------------------------+\r
+| Direction | NFVO->VNFMLCM |\r
++---------------------+--------------------------------------------------------------+\r
+\r
+**3.5.1 Request**\r
+\r
++-------------+-------------+---------------+---------------+---------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++=============+=============+===============+===============+===============+\r
+| n/a | | | | |\r
++-------------+-------------+---------------+---------------+---------------+\r
+\r
+**3.5.2 Response**\r
+\r
++--------------------+-------------+---------------+------------------------+--------------------------------------------------------------------------------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++====================+=============+===============+========================+======================================================================================+\r
+| vnfInstanceInfos | M | 0..N | VnfInstanceI nfo | Returned if information about zero or more VNF instances was queried successfully. |\r
++--------------------+-------------+---------------+------------------------+--------------------------------------------------------------------------------------+\r
++--------------------+-------------+---------------+------------------------+--------------------------------------------------------------------------------------+\r
+\r
+ **VnfInstanceInfo:**\r
+\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| Attribute | Qualifier|Cardinality | Content | Description |\r
++==================================+==========+============+============================+=======================================================================================================================================================+\r
+| vnfInstanceId | M | 1 | Identifier | VNF instance identifier. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| vnfInstanceName | M | 1 | String | VNF instance name. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| vnfInstanceDescr iption | M | 1 | String | Human-readable description of the VNF instance. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| onboardedVnfPk gInfoId | M | 1 | Identifier | Identifier of information held by the NFVO about the specific VNF Package on which the VNF is based. This identifier was allocated by the NFVO. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| vnfdId | M | 1 | Identifier | Identifier of the VNFD on which the VNF instance is based. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| vnfdVersion | M | 1 | Identifier | Identifies the version of the VNFD. The value is copied from the VNFD. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| vnfSoftwareVersi on | M | 1 | String | Software version of the VNF. |\r
+| | | | | |\r
+| | | | | The value is copied from the VNFD. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| vnfProvider | M | 1 | String | Name of the person or company providing the VNF. |\r
+| | | | | |\r
+| | | | | The value is copied from the VNFD. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| vnfProductName | M | 1 | String | Name to identify the VNF Product. The value is copied from the VNFD. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| vnfConfigurableP roperties | O | 0..N | KeyValuePair | Current values of the configurable properties of the VNF instance. |\r
+| | | | | |\r
+| | | | | Configurable properties as declared in the VNFD. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| instantiationState | M | 1 | Enum | The instantiation state of the VNF. |\r
+| | | | | |\r
+| | | | | Permitted values: |\r
+| | | | | |\r
+| | | | | - NOT\_INSTANTIATED: The VNF |\r
+| | | | | |\r
+| | | | | instance is terminated or not instantiated. |\r
+| | | | | |\r
+| | | | | - INSTANTIATED: The VNF instance is instantiated. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| instantiatedVnfInf o | CM | 0..1 | InstantiatedVnf Info | Information specific to an instantiated VNF instance. |\r
+| | | | | |\r
+| | | | | This attribute shall be present if the instantiateState attribute value is INSTANTIATED. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| metadata | O | 0..N | KeyValuePair | Additional metadata describing the VNF instance. |\r
+| | | | | |\r
+| | | | | This attribute can be modified with the Modify VNF information operation. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+| extensions | O | 0..N | KeyValuePair | VNF-specific attributes. |\r
+| | | | | |\r
+| | | | | This attribute can be modified with the Modify VNF information operation. |\r
++----------------------------------+----------+------------+----------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------+\r
+\r
+ **InstantiatedVnfInfo:**\r
+\r
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinality| Content | Description |\r
++==============================+===========+============+==============================+========================================================================================================================+\r
+| flavourId | M | 1 | IdentifierInVnfd | Identifier of the VNF deployment flavour to be instantiated. |\r
+| | | | | |\r
+| | | | | Reserved |\r
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+\r
+| vnfState | M | 1 | ENUM | State of the VNF instance. |\r
+| | | | | |\r
+| | | | | Permitted values: |\r
+| | | | | |\r
+| | | | | - STARTED: The VNF instance is up and running. |\r
+| | | | | |\r
+| | | | | - STOPPED: The VNF instance has been shut down. |\r
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+\r
+| scaleStatus | O | 0..N | ScaleInfo | Scale status of the VNF, one entry per aspect. Represents for every scaling aspect how "big" the VNF has been scaled |\r
+| | | | | |\r
+| | | | | w.r.t. that aspect. |\r
+| | | | | |\r
+| | | | | This attribute shall be present if the VNF supports scaling. |\r
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+\r
+| extCpInfo | O | 0..N | CpInfo | Information about the external CPs exposed by the VNF instance. |\r
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+\r
+| extVirtualLink | O | 0..N | ExtVirtualLinkI nfo | Information about the external VLs the VNF instance is connected to. |\r
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+\r
+| extManagedVirtu alLink | O | 0..N | extManagedVir tualLinkInfo | Information about the externally-managed internal VLs of the VNF instance. |\r
+| | | | | |\r
+| | | | | Reserved |\r
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+\r
+| monitoringParam eters | O | 0..N | MonitoringPar ameter | Active monitoring parameters. |\r
+| | | | | |\r
+| | | | | Reserved |\r
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+\r
+| localizationLangu age | O | 0..1 | String | Localization language of the VNF to be instantiated. |\r
+| | | | | |\r
+| | | | | The value shall comply with the format defined in IETF RFC 5646 [6]. |\r
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+\r
+| vimInfo | CM | 0..N | VimInfo | Information about VIM(s) managing resources for the VNF instance. |\r
+| | | | | |\r
+| | | | | This attribute shall be supported and present if VNF-related resource management in direct mode is applicable. |\r
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+\r
+| vnfcResourceInfo | CM | 0..N | VnfcResourceI nfo | Information about the virtualised compute and storage resource(s) used by the VNFCs of the VNF instance. |\r
+| | | | | |\r
+| | | | | This attribute shall be supported and present if VNF-related resource management in direct mode is applicable. |\r
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+\r
+| virtualLinkResourceInfo | CM | 0..N | VirtualLinkRes ourceInfo | Information about the virtualised network resource(s) used by the VLs of the VNF instance. |\r
+| | | | | |\r
+| | | | | This attribute shall be supported and present if VNF-related resource management in direct mode is applicable. |\r
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+\r
+| virtualStorageResourceInfo | CM | 0..N | VirtualStorage ResourceInfo | Information about the virtualised storage resource(s) used as storage for the VNF instance. |\r
+| | | | | |\r
+| | | | | This attribute shall be supported and present if VNF-related resource management in direct mode is applicable. |\r
++------------------------------+-----------+------------+------------------------------+------------------------------------------------------------------------------------------------------------------------+\r
+\r
+**ScaleInfo:**\r
+\r
++------------------+-------------+--------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinalit y | Content | Description |\r
++==================+=============+====================+====================+=====================================================================================================================================+\r
+| aspectId | M | 1 | IdentifierInVnfd | Identifier of the scaling aspect. |\r
++------------------+-------------+--------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------------+\r
+| scaleLevel | M | 1 | Integer | Indicates the scale level. The minimum value shall be 0 and the maximum value shall be <= maxScaleLevel as described in the VNFD. |\r
++------------------+-------------+--------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------------+\r
++------------------+-------------+--------------------+--------------------+-------------------------------------------------------------------------------------------------------------------------------------+\r
+\r
+ **CpInfo:**\r
+\r
++--------------------+-------------+--------------------+--------------------+------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinalit y | Content | Description |\r
++====================+=============+====================+====================+==================================================================+\r
+| cpInstanceId | M | 1 | Identifier | Identifier of the CP instance. |\r
++--------------------+-------------+--------------------+--------------------+------------------------------------------------------------------+\r
+| cpdId | M | 1 | IdentifierInVnfd | Identifier of the CPD, in the VNFD. |\r
++--------------------+-------------+--------------------+--------------------+------------------------------------------------------------------+\r
+| addresses | O | 0..N | NetworkAddre ss | List of network addresses that have been configured on the CP. |\r
++--------------------+-------------+--------------------+--------------------+------------------------------------------------------------------+\r
+\r
+ **ExtVirtualLinkInfo:**\r
+\r
++------------------------+-------------+--------------------+-------------------+-------------------------------------------------+\r
+| Attribute | Qualifier | Cardinalit y | Content | Description |\r
++========================+=============+====================+===================+=================================================+\r
+| extVirtualLinkId | M | 1 | Identifier | Identifier of the external VL. |\r
++------------------------+-------------+--------------------+-------------------+-------------------------------------------------+\r
+| resourceHandle | M | 1 | ResourceHand le | Identifier of the resource realizing this VL. |\r
++------------------------+-------------+--------------------+-------------------+-------------------------------------------------+\r
+| linkPorts | O | 0..N | VnfLinkPort | Link ports of this VL. |\r
++------------------------+-------------+--------------------+-------------------+-------------------------------------------------+\r
+\r
+ **ResourceHandle:**\r
+\r
++---------------------+------------+------------+-------------------+--------------------------------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinality| Content | Description |\r
++=====================+============+============+===================+========================================================================================================+\r
+| vimId | CM | 0..1 | Identifier | Identifier of the VimInfo information element defining the VIM who manages the resource. |\r
+| | | | | |\r
+| | | | | This attribute shall be present if |\r
+| | | | | |\r
+| | | | | VNF-related resource management in direct mode is applicable. |\r
+| | | | | |\r
+| | | | | The value refers to a vimInfo item in the VnfInstance. |\r
++---------------------+------------+------------+-------------------+--------------------------------------------------------------------------------------------------------+\r
+| resourceProviderId | CM | 0..1 | Identifier | Identifier of the entity responsible for the management of the resource. |\r
+| | | | | |\r
+| | | | | This attribute shall be present when VNF-related resource management in indirect mode is applicable. |\r
+| | | | | |\r
+| | | | | Reserved |\r
++---------------------+------------+------------+-------------------+--------------------------------------------------------------------------------------------------------+\r
+| resourceId | M | 1 | IdentifierInVim | Identifier of the resource in the scope of the VIM or the resource provider. |\r
++---------------------+------------+------------+-------------------+--------------------------------------------------------------------------------------------------------+\r
+\r
+ **VnfLinkPort:**\r
+\r
++----------------------+-------------+--------------------+-------------------+------------------------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinalit y | Content | Description |\r
++======================+=============+====================+===================+================================================================================================+\r
+| resourceHandle | M | 1 | ResourceHand le | Identifier of the virtualised network resource realizing this link port. |\r
++----------------------+-------------+--------------------+-------------------+------------------------------------------------------------------------------------------------+\r
+| cpInstanceId | M | 1 | IdentifierInVnf | External CP of the VNF to be connected to this link port. |\r
+| | | | | |\r
+| | | | | There shall be at most one link port associated with any external connection point instance. |\r
+| | | | | |\r
+| | | | | The value refers to an extCpInfo item in the VnfInstance. |\r
++----------------------+-------------+--------------------+-------------------+------------------------------------------------------------------------------------------------+\r
++----------------------+-------------+--------------------+-------------------+------------------------------------------------------------------------------------------------+\r
+\r
+ **VnfcResourceInfo:**\r
+\r
++-----------------------+------------+------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinality| Content | Description |\r
++=======================+============+============+====================+=====================================================================================================================+\r
+| vnfcInstanceId | M | 1 | IdentifierInVnf | Identifier of this VNFC instance. |\r
++-----------------------+------------+------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+| vduId | M | 1 | IdentifierInVnfd | Reference to the applicable Vdu information element in the VNFD. |\r
++-----------------------+------------+------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+| computeResourc e | M | 1 | ResourceHand le | Reference to the VirtualCompute resource. |\r
++-----------------------+------------+------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+| storageResourceI ds | M | 1..N | IdentifierInVnf | Reference(s) to the VirtualStorage resource(s). |\r
+| | | | | |\r
+| | | | | The value refers to a VirtualStorageResourceInfo item in the VnfInstance. |\r
++-----------------------+------------+------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+| reservationId | O | 0..1 | Identifier | The reservation identifier applicable to the resource. It shall be present when an applicable reservation exists. |\r
+| | | | | |\r
+| | | | | Reserved |\r
++-----------------------+------------+------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+\r
+ **VirtualStorageResourceInfo:**\r
+\r
++---------------------------------+-------------+--------------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinalit y | Content | Description |\r
++=================================+=============+====================+====================+=====================================================================================================================+\r
+| virtualStorageInst anceId | M | 1 | IdentifierInVnf | Identifier of this virtual storage resource instance. |\r
++---------------------------------+-------------+--------------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+| virtualStorageDe scId | M | 1 | IdentifierInVnfd | Identifier of the VirtualStorageDesc in the VNFD. |\r
++---------------------------------+-------------+--------------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+| storageResource | M | 1 | ResourceHand le | Reference to the VirtualStorage resource. |\r
++---------------------------------+-------------+--------------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+| reservationId | M | 0..1 | Identifier | The reservation identifier applicable to the resource. It shall be present when an applicable reservation exists. |\r
+| | | | | |\r
+| | | | | Reserved |\r
++---------------------------------+-------------+--------------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+\r
+ **VirtualLinkResourceInfo:**\r
+\r
++------------------------------+-----------+--------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinality | Content | Description |\r
++==============================+===========+==============+====================+=====================================================================================================================+\r
+| virtualLinkInstanceId | M | 1 | IdentifierInVnf | Identifier of this VL instance. |\r
++------------------------------+-----------+--------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+| virtualLinkDescId | M | 1 | IdentifierInVnfd | Identifier of the Virtual Link Descriptor (VLD) in the VNFD. |\r
++------------------------------+-----------+--------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+| networkResource | M | 1 | ResourceHand le | Reference to the VirtualNetwork resource. |\r
++------------------------------+-----------+--------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+| reservationId | M | 0..1 | Identifier | The reservation identifier applicable to the resource. It shall be present when an applicable reservation exists. |\r
+| | | | | |\r
+| | | | | Reserved |\r
++------------------------------+-----------+--------------+--------------------+---------------------------------------------------------------------------------------------------------------------+\r
+\r
+ [\r
+\r
+ {\r
+\r
+ "vnfInstanceId": "1", \r
+ "vnfInstanceName": "vFW\_01",\r
+ "vnfInstanceDescription": "vFW in Nanjing TIC Edge",\r
+ "onboardedVnfPkgInfoId": "1",\r
+ "vnfdId": "zte\_vFW\_51610", \r
+ "vnfdVersion": "V1.0",\r
+ "vnfSoftwareVersion": "V1.0", \r
+ "vnfProvider": "ZTE",\r
+ "vnfProductName": "vFW", \r
+ "vnfConfigurableProperties": {...},\r
+ "instantiationState": "INSTANTIATED", \r
+ "instantiatedVnfInfo": {\r
+ "flavourId": "1", \r
+ "vnfState": "STARTED", \r
+ "scaleStatus": [\r
+ {\r
+ "aspectId": "aspect1", \r
+ "scaleLevel": 1\r
+ }\r
+ ],\r
+ "extCpInfo": [\r
+ {\r
+ "cpInstanceId": "1",\r
+ "cpdId": "1", "addresses": [\r
+ {\r
+ "addressType": "MAC", \r
+ "l2AddressData": "00:f3:43:20:a2:a3"\r
+ },\r
+ {\r
+ "addressType": "IP", \r
+ "l3AddressData": {\r
+ "iPAddressType": "IPv4", \r
+ "address": "192.168.104.2"\r
+ }\r
+ }\r
+ ]\r
+ } \r
+ ],\r
+ "extVirtualLink": [\r
+ {\r
+ "extVirtualLinkId": "extvl1", \r
+ "resourceHandle": {\r
+ "vimId": "1",\r
+ "resourceId": "1111"\r
+ },\r
+\r
+ "linkPorts": [\r
+ {\r
+ "resourceHandle": \r
+ { \r
+ "vimId": "1",\r
+ "resourceId": "2121"\r
+ },\r
+ "cpInstanceId": "1"\r
+ }\r
+ ]\r
+ }\r
+ ],\r
+\r
+ "monitoringParameters": {...}, \r
+ "localizationLanguage": "en\_US",\r
+ "vimInfo": [\r
+ {\r
+ "vimInfoId": "1",\r
+ "vimId": "1", \r
+ "interfaceInfo": {\r
+ "vimType": "vim",\r
+ "apiVersion": "v2", \r
+ "protocolType": "http"\r
+ },\r
+ "accessInfo": {\r
+ "tenant": "tenant\_vCPE", \r
+ "username": "vCPE", \r
+ "password": "vCPE\_321"\r
+ },\r
+\r
+ "interfaceEndpoint": "http://10.43.21.105:80/"\r
+ }\r
+ ],\r
+ "vnfcResourceInfo": [\r
+ {\r
+ "vnfcInstanceId": "vm1", \r
+ "vduId": "vdu1", \r
+ "computeResource": {\r
+ "vimId": "1",\r
+ "resourceId": "3333"\r
+ },\r
+ "storageResourceIds": [ "storage1"\r
+ ]\r
+ }\r
+ ],\r
+ "virtualLinkResourceInfo": [\r
+ {\r
+ "virtualLinkInstanceId": "vl01", \r
+ "virtualLinkDescId": "vl01",\r
+ "networkResource": {\r
+ "vimId": "1",\r
+ "resourceId": "4444"\r
+ }\r
+ }\r
+ ],\r
+ "virtualStorageResourceInfo": [\r
+ {\r
+ "virtualStorageInstanceId": "storage1", \r
+ "virtualStorageDescId":"storage1", \r
+ "storageResource": {\r
+ "vimId": "1",\r
+ "resourceId": "555"\r
+ }\r
+ }\r
+ ]\r
+ },\r
+ "metadata": {...},\r
+ "extensions": {...}\r
+ }\r
+]\r
+\r
+**3.5.3 Response Code**\r
+\r
++-----------+-----------------------+----------------------------------+\r
+| Code | Meaning | Description |\r
++===========+=======================+==================================+\r
+| 200 | Ok | The request has succeeded. |\r
++-----------+-----------------------+----------------------------------+\r
+| 4xx/5xx | <name from RFC7231> | <description> |\r
++-----------+-----------------------+----------------------------------+\r
+\r
+**3.6 Query single VNF**\r
+------------------------\r
++---------------------+------------------------------------------------------------------------------+\r
+| If Definition | Description |\r
++=====================+==============================================================================+\r
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf_instances/{vnfInstanceId} |\r
++---------------------+------------------------------------------------------------------------------+\r
+| Operation | GET |\r
++---------------------+------------------------------------------------------------------------------+\r
+| Direction | NFVO->VNFMLCM |\r
++---------------------+------------------------------------------------------------------------------+\r
+\r
+**3.6.1 Request**\r
+\r
++-------------+-------------+---------------+---------------+---------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++=============+=============+===============+===============+===============+\r
+| n/a | | | | |\r
++-------------+-------------+---------------+---------------+---------------+\r
+\r
+**3.6.2 Response**\r
+\r
++-------------------+-------------+---------------+------------------------+---------------------------------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++===================+=============+===============+========================+=======================================+\r
+| vnfInstanceInfo | M | 1 | VnfInstanceI nfo | The information of the VNF instance |\r
++-------------------+-------------+---------------+------------------------+---------------------------------------+\r
++-------------------+-------------+---------------+------------------------+---------------------------------------+\r
+\r
+**3.6.3 Response Code**\r
+\r
++-----------+-----------------------+----------------------------------+\r
+| Code | Meaning | Description |\r
++===========+=======================+==================================+\r
+| 200 | Ok | The request has succeeded. |\r
++-----------+-----------------------+----------------------------------+\r
+| 4xx/5xx | <name from RFC7231> | <description> |\r
++-----------+-----------------------+----------------------------------+\r
+\r
+ {\r
+\r
+ "vnfInstanceId": "1", \r
+ "vnfInstanceName": "vFW\_01",\r
+ "vnfInstanceDescription": "vFW in Nanjing TIC Edge",\r
+ "onboardedVnfPkgInfoId": "1",\r
+ "vnfdId": "zte\_vFW\_51610", \r
+ "vnfdVersion": "V1.0",\r
+ "vnfSoftwareVersion": "V1.0", \r
+ "vnfProvider": "ZTE",\r
+ "vnfProductName": "vFW", \r
+ "vnfConfigurableProperties": {...},\r
+ "instantiationState": "INSTANTIATED", \r
+ "instantiatedVnfInfo": {\r
+ "flavourId": "1", \r
+ "vnfState": "STARTED", \r
+ "scaleStatus": [\r
+ {\r
+ "aspectId": "aspect1", \r
+ "scaleLevel": 1\r
+ }\r
+ ],\r
+\r
+ "extCpInfo": [\r
+ {\r
+ "cpInstanceId": "1",\r
+ "cpdId": "1", "addresses": [\r
+ {\r
+ "addressType": "MAC", \r
+ "l2AddressData": "00:f3:43:20:a2:a3"\r
+ },\r
+\r
+ {\r
+ "addressType": "IP", \r
+ "l3AddressData": {\r
+ "iPAddressType": "IPv4", \r
+ "address": "192.168.104.2"\r
+ }\r
+ }\r
+ ]\r
+ }\r
+ ],\r
+\r
+ "extVirtualLink": [\r
+ {\r
+ "extVirtualLinkId": "extvl1", \r
+ "resourceHandle": {\r
+ "vimId": "1",\r
+ "resourceId": "1111"\r
+ },\r
+ "linkPorts": [\r
+ {\r
+ "resourceHandle": \r
+ { \r
+ "vimId": "1",\r
+ "resourceId": "2121"\r
+ },\r
+ "cpInstanceId": "1"\r
+ }\r
+ ]\r
+ }\r
+ ],\r
+\r
+ "monitoringParameters": {...}, \r
+ "localizationLanguage": "en\_US",\r
+ "vimInfo": [\r
+ {\r
+ "vimInfoId": "1",\r
+ "vimId": "1", \r
+ "interfaceInfo": {\r
+ "vimType": "vim",\r
+ "apiVersion": "v2", \r
+ "protocolType": "http"\r
+ },\r
+ "accessInfo": {\r
+ "tenant": "tenant\_vCPE", \r
+ "username": "vCPE", \r
+ "password": "vCPE\_321"\r
+ },\r
+ "interfaceEndpoint": "http://10.43.21.105:80/"\r
+ }\r
+ ],\r
+\r
+ "vnfcResourceInfo": [\r
+ {\r
+ "vnfcInstanceId": "vm1", \r
+ "vduId": "vdu1", \r
+ "computeResource": {\r
+ "vimId": "1",\r
+ "resourceId": "3333"\r
+ },\r
+\r
+ "storageResourceIds": [ "storage1"\r
+ ]\r
+ }\r
+ ],\r
+\r
+ "virtualLinkResourceInfo": [\r
+ {\r
+ "virtualLinkInstanceId": "vl01", \r
+ "virtualLinkDescId": "vl01",\r
+ "networkResource": {\r
+ "vimId": "1",\r
+ "resourceId": "4444"\r
+ }\r
+ }\r
+ ],\r
+\r
+ "virtualStorageResourceInfo": [\r
+ {\r
+ "virtualStorageInstanceId": "storage1", \r
+ "virtualStorageDescId": "storage1", \r
+ "storageResource": {\r
+ "vimId": "1",\r
+ "resourceId": "555"\r
+ }\r
+ }\r
+ ]\r
+ },\r
+ "metadata": {...},\r
+ "extensions": {...}\r
+ }\r
+\r
+**3.7 Get Operation Status**\r
+------------------------------\r
++---------------------+-------------------------------------------------------------------------------------------------+\r
+| If Definition | Description |\r
++=====================+=================================================================================================+\r
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf\_lc\_ops/{vnfLcOpId}&response Id={responseId} |\r
++---------------------+-------------------------------------------------------------------------------------------------+\r
+| Operation | GET |\r
++---------------------+-------------------------------------------------------------------------------------------------+\r
+| Direction | NFVO->GVNFM |\r
++---------------------+-------------------------------------------------------------------------------------------------+\r
+\r
+**3.7.1 Request**\r
+\r
+ None\r
+\r
+**3.7.2 Response**\r
+\r
++--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++====================+=============+===============+===========+==================================================================================+\r
+| vnfLcOpId | M | 1 | String | Identifier of a VNF lifecycle operation occurrence |\r
++--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+\r
+| vnfInstanceId | M | 1 | String | Identifier of the VNF instance to which the operation applies |\r
++--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+\r
+| lcmOperationType | M | 1 | ENUM | Type of the actual LCM operation represented by this lcm operation occurrence. |\r
+| | | | | |\r
+| | | | | Permitted values: |\r
++--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+\r
+| | | | | - INSTANTIATE:the |\r
+| | | | | |\r
+| | | | | Instantiate VNF LCM operation. |\r
+| | | | | |\r
+| | | | | - SCALE: the Scale VNF LCM operation. |\r
+| | | | | |\r
+| | | | | - SCALE\_TO\_LEVEL: the |\r
+| | | | | |\r
+| | | | | Scale VNF to Level LCM operation. |\r
+| | | | | |\r
+| | | | | - CHANGE\_FLAVOUR: |\r
+| | | | | |\r
+| | | | | the Change VNF Flavour LCM operation. |\r
+| | | | | |\r
+| | | | | - TERMINATE: the |\r
+| | | | | |\r
+| | | | | Terminate VNF LCM operation. |\r
+| | | | | |\r
+| | | | | - HEAL: the Heal VNF LCM operation. |\r
+| | | | | |\r
+| | | | | - OPERATE: the Operate VNF LCM operation. |\r
+| | | | | |\r
+| | | | | - CHANGE\_EXT\_VLS: the |\r
+| | | | | |\r
+| | | | | Change VNF external VLs LCM operation. (Reserved) |\r
++--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+\r
+| startTime | M | 1 | String | Date-time of the start of the operation. |\r
+| | | | | |\r
+| | | | | Representation: String formatted according to RFC 3339 [13] |\r
++--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+\r
+| responseDescriptor | M | 1 | VnfLcOp | Including:responseId,progress,statusstatusDescription |\r
+| | | | Response | |\r
+| | | | Descriptor| ,errorCode,responseHistoryList |\r
++--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+\r
+\r
+ **VnfLcOpResponseDescriptor:**\r
+\r
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinalit y | Content | Description |\r
++===========================+=================+====================+===============+===========================================================+\r
+| responseId | M | 1 | Integer | Response Identifier |\r
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
+| progress | M | 1 | Integer | progress (1-100) |\r
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
+| lcmOperationS tatus | M | 1 | ENUM | Status of a VNF lifecycle operation occurrence |\r
+| | | | | |\r
+| | | | | Permitted values: |\r
+| | | | | |\r
+| | | | | - STARTING: The operation is starting.. |\r
+| | | | | |\r
+| | | | | - PROCESSING: The operation is |\r
+| | | | | currently in execution. |\r
+| | | | | |\r
+| | | | | - COMPLETED: The operation has completed successfully. |\r
+| | | | | |\r
+| | | | | - FAILED: The operation has failed and it cannot be |\r
+| | | | | retried or rolled back, as it is determined |\r
+| | | | | that such action won't succeed. |\r
+| | | | | - FAILED\_TEMP: The operation has failed and execution |\r
+| | | | | has stopped, but the execution of the |\r
+| | | | | operation is not considered to be closed. |\r
+| | | | | (Reserved) |\r
+| | | | | - ROLLING\_BACK: The operation is currently being rolled |\r
+| | | | | back. (Reserved) |\r
+| | | | | |\r
+| | | | | - ROLLED\_BACK: The state of the VNF prior to the |\r
+| | | | | original operation invocation has been |\r
+| | | | | restored as closely as possible. (Reserved) |\r
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
+| statusDescripti on | O | 0..1 | String | Status Description of a VNF lifecycle operation |\r
+| | | | | occurrence |\r
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
+| errorCode | O | 0..1 | Integer | Errorcode |\r
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
+| responseHistor yList | O | 0..N | VnfLcOpDetail | History Response Messages from the requested |\r
+| | | | | responseId to lastest one. |\r
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
+\r
+ **VnfLcOpDetail:**\r
+\r
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinalit y | Content | Description |\r
++===========================+=================+====================+===============+===========================================================+\r
+| responseId | M | 1 | Integer | Response Identifier |\r
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
+| progress | M | 1 | Integer | progress (1-100) |\r
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
+| lcmOperationS tatus | M | 1 | ENUM | Status of a VNF lifecycle operation occurrence |\r
+| | | | | |\r
+| | | | | Permitted values: |\r
+| | | | | |\r
+| | | | | - STARTING: The operation is starting.. |\r
+| | | | | |\r
+| | | | | - PROCESSING: The operation is currently in execution. |\r
+| | | | | |\r
+| | | | | - COMPLETED: The operation has completed successfully. |\r
+| | | | | |\r
+| | | | | - FAILED: The operation has failed and it |\r
+| | | | | cannot be retried or rolled back, as it is |\r
+| | | | | determined that such action won't succeed. |\r
+| | | | | |\r
+| | | | | |\r
+| | | | | - FAILED\_TEMP: The operation has failed and execution |\r
+| | | | | has stopped, but the execution of the operation |\r
+| | | | | is not considered to be closed. (Reserved) |\r
+| | | | | |\r
+| | | | | - ROLLING\_BACK: The operation is currently being |\r
+| | | | | rolled back. (Reserved) |\r
+| | | | | |\r
+| | | | | |\r
+| | | | | - ROLLED\_BACK: The state of the VNF prior to the |\r
+| | | | | original operation invocation has been restored |\r
+| | | | | as closely as possible. (Reserved) |\r
+| | | | | |\r
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
+| statusDescription | O | 0..1 | String | Status Description of a VNF lifecycle operation occurrence|\r
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
+| errorCode | O | 0..1 | Integer | Errorcode |\r
++---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
+\r
+ {\r
+\r
+ "vnfLcOpId": "1234566",\r
+\r
+ "vnfInstanceId": "1", \r
+ "lcmOperationType": "INSTANTIATE",\r
+\r
+ "startTime": "2017-01-01T12:00:27.87+00:20",\r
+\r
+ "responseDescriptor": { \r
+ "responseId": 3,\r
+ "progress": 40, \r
+ "lcmOperationStatus": "PROCESSING",\r
+ "statusDescription": "OMC VMs are decommissioned in VIM",\r
+ "errorCode": null,\r
+ "responseHistoryList": [\r
+ {\r
+ "responseId": 1,\r
+ "progress": 40, \r
+ "lcmOperationStatus": "PROCESSING",\r
+ "statusDescription": "OMC VMs are decommissioned in VIM",\r
+ "errorCode": null\r
+ },\r
+ {\r
+ "responseId": 2,\r
+ "progress": 41, \r
+ "lcmOperationStatus": "PROCESSING",\r
+ "statusDescription": "OMC VMs are decommissioned in VIM",\r
+ "errorCode": null\r
+ }\r
+ ]\r
+ }\r
+ }\r
+\r
+**3.7.3 Response Code**\r
+\r
++-----------+-----------------------+----------------------------------+\r
+| Code | Meaning | Description |\r
++===========+=======================+==================================+\r
+| 200 | Ok | The request has succeeded. |\r
++-----------+-----------------------+----------------------------------+\r
+| 4xx/5xx | <name from RFC7231> | <description> |\r
++-----------+-----------------------+----------------------------------+\r
+\r
+**4.Interfaces provided by VNF**\ (Ve-Vnfm-vnf)\r
+===============================================\r
+\r
+**4.1 Set Initial Configuration**\r
+-----------------------------\r
+\r
++---------------------+---------------------------------------------+\r
+| If Definition | Description |\r
++=====================+=============================================+\r
+| URI | http(s)://[hostname][:port]/configuration |\r
++---------------------+---------------------------------------------+\r
+| Operation | POST |\r
++---------------------+---------------------------------------------+\r
+| Direction | VNFM->VNF |\r
++---------------------+---------------------------------------------+\r
+\r
+ **4.1.1Request**\r
+\r
++-------------------------+-------------+---------------+--------------------------+------------------------------------------------------------------------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++=========================+=============+===============+==========================+==============================================================================+\r
+| vnfInstanceId | M | 1 | Identifier | Identifier of the VNF instance which the VNF to set initial configuration. |\r
++-------------------------+-------------+---------------+--------------------------+------------------------------------------------------------------------------+\r
+| vnfConfigurationData | O | 0..1 | VnfConfigur ation | Configuration data for the VNF instance. |\r
++-------------------------+-------------+---------------+--------------------------+------------------------------------------------------------------------------+\r
+| vnfcConfigurationData | O | 0..N | VnfcConfigu ration | Configuration data for VNFC instances. |\r
++-------------------------+-------------+---------------+--------------------------+------------------------------------------------------------------------------+\r
+\r
+**VnfConfiguration:**\r
+\r
++-----------------------+-----------------+--------------------+----------------------------------+------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinalit y | Content | Description |\r
++=======================+=================+====================+==================================+==============================================================================+\r
+| cp | O | 0..N | CpConfiguratio n | External CPs |\r
++-----------------------+-----------------+--------------------+----------------------------------+------------------------------------------------------------------------------+\r
+| vnfSpecificData | O | 0..1 | VnfConfigurabl eProperties | Configuration object containing values of VNF configurable properties. |\r
++-----------------------+-----------------+--------------------+----------------------------------+------------------------------------------------------------------------------+\r
+\r
+**CpConfiguration:**\r
+\r
++-----------------+-------------+--------------------+--------------+-------------------------------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinalit y | Content | Description |\r
++=================+=============+====================+==============+=======================================================================================================+\r
+| cpId | M | 1 | Identifier | Uniquely identifies a CP instance within the namespace of a specific VNF instance or VNFC instance. |\r
++-----------------+-------------+--------------------+--------------+-------------------------------------------------------------------------------------------------------+\r
+| cpdId | M | 1 | Identifier | Uniquely identifies a type of CP instance within the namespace of a VNFD. |\r
++-----------------+-------------+--------------------+--------------+-------------------------------------------------------------------------------------------------------+\r
+| cpAddress | M | 1..N | CpAddress | Address and Port assigned to the CP. |\r
++-----------------+-------------+--------------------+--------------+-------------------------------------------------------------------------------------------------------+\r
+\r
+ **CpAddress:**\r
+\r
++--------------------------+-------------+--------------------+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinalit y | Content | Description |\r
++==========================+=============+====================+===================+===============================================================================================================================================+\r
+| address | M | 0..N | NetworkAddre ss | The address assigned to the CP instance (e.g. IP address, MAC address, etc.). It shall be provided for configuring a fixed address. |\r
++--------------------------+-------------+--------------------+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+\r
+| useDynamicAddress | M | 0..1 | ENUM | It determines whether an address shall be assigned dynamically. It shall be provided if a dynamic address needs to be configured on the CP. |\r
+| | | | | |\r
+| | | | | A cardinality of "0" indicates that no dynamic address needs to be configured on the CP. |\r
+| | | | | |\r
+| | | | | Permitted values: |\r
+| | | | | |\r
+| | | | | - TRUE |\r
+| | | | | |\r
+| | | | | - FALSE |\r
++--------------------------+-------------+--------------------+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+\r
+| port | M | 0..1 | Not specified | The port assigned to the CP instance (e.g. IP port number, Ethernet port number, etc.). |\r
+| | | | | |\r
+| | | | | Reserved |\r
++--------------------------+-------------+--------------------+-------------------+-----------------------------------------------------------------------------------------------------------------------------------------------+\r
+\r
+ **VnfConfigurableProperties:**\r
+\r
++--------------------+-----------+--------------+--------+-----------------------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinality | Content| Description |\r
++====================+===========+==============+========+===============================================================================================+\r
+| autoScalable | O | 0..1 | ENUM | It permits to enable (TRUE) / disable (FALSE) the auto-scaling functionality. |\r
+| | | | | |\r
+| | | | | A cardinality of "0" indicates that configuring this present VNF property is not supported. |\r
+| | | | | |\r
+| | | | | Permitted values: |\r
+| | | | | |\r
+| | | | | - TRUE |\r
+| | | | | |\r
+| | | | | - FALSE |\r
++--------------------+-----------+--------------+--------+-----------------------------------------------------------------------------------------------+\r
+| autoHealable | O | 0..1 | ENUM | It permits to enable (TRUE) / disable (FALSE) the auto-healing functionality. |\r
+| | | | | |\r
+| | | | | A cardinality of "0" indicates that configuring this present VNF property is not supported. |\r
+| | | | | |\r
+| | | | | Permitted values: |\r
+| | | | | |\r
+| | | | | - TRUE |\r
+| | | | | |\r
+| | | | | - FALSE |\r
++--------------------+-----------+--------------+--------+-----------------------------------------------------------------------------------------------+\r
+\r
+**VnfcConfiguration:**\r
+\r
++------------------------+-------------+--------------------+--------------------+----------------------------------------------------------------------------------------+\r
+| Attribute | Qualifier | Cardinalit y | Content | Description |\r
++========================+=============+====================+====================+========================================================================================+\r
+| vnfcId | M | 1 | Identifier | Uniquely identifies a VNFC instance within the namespace of a specific VNF instance. |\r
++------------------------+-------------+--------------------+--------------------+----------------------------------------------------------------------------------------+\r
+| cp | O | 0..N | CpConfiguratio n | Internal CPs. |\r
++------------------------+-------------+--------------------+--------------------+----------------------------------------------------------------------------------------+\r
+| vnfcSpecificData | O | 0..1 | KeyValuePair | Configuration object containing values of VNFC configurable properties |\r
++------------------------+-------------+--------------------+--------------------+----------------------------------------------------------------------------------------+\r
+\r
+ {\r
+\r
+ "vnfInstanceId": "1", \r
+ "vnfConfigurationData": {\r
+ "cp": [\r
+ {\r
+ "cpId": "cp-1",\r
+ "cpdId": "cpd-a", \r
+ "cpAddress": [\r
+ {\r
+ "addresses": [\r
+ {\r
+ "addressType": "MAC", \r
+ "l2AddressData": "00:f3:43:20:a2:a3"\r
+ },\r
+ {\r
+ "addressType": "IP", \r
+ "l3AddressData": {\r
+ "iPAddressType": "IPv4", \r
+ "iPAddress": "192.168.104.2"\r
+ }\r
+ }\r
+ ],\r
+ "useDynamicAddress": "FALSE"\r
+ }\r
+ ]\r
+ }\r
+ ],\r
+ "vnfSpecificData": { \r
+ "autoScalable": "FALSE", \r
+ "autoHealable": "FALSE"\r
+ }\r
+ },\r
+ "vnfcConfigurationData": \r
+ { \r
+ "vnfcId": "vnfc-1", \r
+ "cp": [\r
+ {\r
+ "cpId": "cp-11",\r
+ "cpdId": "cpd-1a",\r
+ "cpAddress": [\r
+ {\r
+ "addresses": [\r
+ {\r
+ "addressType": "MAC", \r
+ "l2AddressData": "00:f3:43:21:a2:a3"\r
+ },\r
+ {\r
+ "addressType": "IP", \r
+ "l3AddressData": {\r
+ "iPAddressType": "IPv4", \r
+ "iPAddress": "192.168.105.2"\r
+ }\r
+ }\r
+ ],\r
+ "useDynamicAddress": "FALSE"\r
+ }\r
+ ]\r
+ }\r
+ ],\r
+ "vnfcSpecificData": {}\r
+ }\r
+ }\r
+\r
+\r
+ **4.1.2 Response**\r
++-----------------------+-------------+---------------+-------------------+---------------------------------+\r
+| Parameter | Qualifier | Cardinality | Content | Description |\r
++=======================+=============+===============+===================+=================================+\r
+| vnfConfigurationData | O | 0..1 | VnfConfiguration | Correspond to the |\r
+| | | | | vnfConfigurationData in the |\r
+| | | | | input information elements of |\r
+| | | | | the SetInitialConfiguration |\r
+| | | | | operation if it has. |\r
++-----------------------+-------------+---------------+-------------------+---------------------------------+\r
+| vnfcConfigurationDa | O | 0..N | VnfConfiguration | Correspond to the |\r
+| ta | | | | vnfcConfigurationData in the |\r
+| | | | | input information elements of |\r
+| | | | | the SetInitialConfiguration |\r
+| | | | | operation if it has. |\r
++-----------------------+-------------+---------------+-------------------+---------------------------------+\r
+\r
+ {\r
+ "vnfConfigurationData": { \r
+ "cp": [\r
+ {\r
+ "cpId": "cp-1",\r
+ "cpdId": "cpd-a", "cpAddress": [\r
+ {\r
+ "addresses": [\r
+ {\r
+ "addressType": "MAC", \r
+ "l2AddressData": "00:f3:43:20:a2:a3"\r
+ },\r
+ {\r
+ "addressType": "IP", \r
+ "l3AddressData": {\r
+ "iPAddressType": "IPv4", \r
+ "iPAddress": "192.168.104.2"\r
+ }\r
+ }\r
+ ],\r
+ "useDynamicAddress": "FALSE"\r
+ }\r
+ ]\r
+ }\r
+ ],\r
+ "vnfSpecificData": { \r
+ "autoScalable": "FALSE", \r
+ "autoHealable": "FALSE",\r
+ …\r
+ }\r
+ },\r
+ "vnfcConfigurationData": { \r
+ "vnfcId": "vnfc-1", \r
+ "cp": [\r
+ {\r
+ "cpId": "cp-11",\r
+ "cpdId": "cpd-1a", \r
+ "cpAddress": [\r
+ {\r
+ "addresses": [\r
+ {\r
+ "addressType": "MAC", \r
+ "l2AddressData": "00:f3:43:21:a2:a3"\r
+ },\r
+ {\r
+ "addressType": "IP", \r
+ "l3AddressData": {\r
+ "iPAddressType": "IPv4", \r
+ "iPAddress": "192.168.105.2"\r
+ }\r
+ }\r
+ ],\r
+ "useDynamicAddress": "FALSE"\r
+ }\r
+ ]\r
+ }\r
+ ],\r
+ "vnfcSpecificData": {…}\r
+ }\r
+ }\r
+\r
+ **4.1.3Response Code**\r
+\r
++-----------+-----------------------+-----------------------------------------------------------+\r
+| Code | Meaning | Description |\r
++===========+=======================+===========================================================+\r
+| 201 | Created | A VNF Instance identifier was created successfully. |\r
++-----------+-----------------------+-----------------------------------------------------------+\r
+| 4xx/5xx | <name from RFC7231> | <description> |\r
++-----------+-----------------------+-----------------------------------------------------------+\r
+\r
+.. |image0| image:: VNFM_API.png\r
+ :width: 5.07047in\r
+ :height: 5.63208in
\ No newline at end of file
--- /dev/null
+.. contents::\r
+ :depth: 3\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 exposed API specification.\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
+fw-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 | String | References to external |\r
+| | | | | virtual links to connect the |\r
+| | | | | VNF to. |\r
++-----------------------+------------+-------------+----------+------------------------------+\r
+| additionalParam | M | 0..N | String |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 | 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
+ "vlInstanceId":"1",\r
+ "resourceId":"1246" ,\r
+ " cpdId":"11111",\r
+ "vim":\r
+ {\r
+ "vimInfoId":"1",\r
+ "vimid":"1", \r
+ "interfaceInfo":{\r
+ "vimType":"vim",\r
+ "apiVersion":"v2",\r
+ "protocolType":"http"\r
+ }\r
+ "accessInfo":{\r
+ "tenant":"tenant_vCPE",\r
+ "username":"vCPE",\r
+ "password":"vCPE_321"\r
+ }\r
+ "interfaceEndpoint":"http://10.43.21.105:80/"\r
+ }\r
+ }\r
+ ]\r
+ "additionalParam":{\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
+| password | M | 1 | String | Password of login user |\r
++--------------+------------+-------------+-----------+-------------------------------+\r
+\r
+{\r
+ "jobId":"1",\r
+ "vnfInstanceId":"1"\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
+**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
+**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
+| | | | | See note. |\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. See note. |\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
+ "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
+**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
+ "progress" : "40",\r
+ "status" : "proccessing",\r
+ "statusDescription" : "OMC VMs are decommissioned in VIM",\r
+ "errorCode" : null,\r
+ "responseId" : "42",\r
+ "responseHistoryList" : [{\r
+ "progress" : "40",\r
+ "status" : "proccessing",\r
+ "statusDescription" : "OMC VMs are decommissioned in VIM",\r
+ "errorCode" : null,\r
+ "responseId" : "1"\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
+**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
+| 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, as declared in the |\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
+**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
+**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
+ "vmid": "804cca71-9ae9-4511-8e30-d1387718caff",\r
+ "vduid": "vdu_100",\r
+ "vmname": "ZTE_SSS_111_PP_2_L"\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