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