-.. contents::\r
- :depth: 1\r
-..\r
+\r
\r
NS LCM API\r
==========\r
\r
{\r
"swagger": "2.0",\r
+\r
"info": {\r
+\r
"version": "1.0.0",\r
+\r
"title": "ONAP VFC Network Service Lifecycle Management API",\r
+\r
"description": "VFC Network Service Lifecycle Management Rest API.",\r
+\r
"contact": {\r
+\r
"name": "ONAP VFC team",\r
+\r
"email": "onap-discuss@lists.onap.org",\r
+\r
"url": "https://gerrit.onap.org/r/#/admin/projects/vfc/nfvo/lcm"\r
+\r
}\r
+\r
},\r
+\r
"basePath": "/api/nslcm/v1",\r
+\r
"schemes": [\r
+\r
"http",\r
"https"\r
+\r
],\r
+\r
"consumes": [\r
+\r
"application/json"\r
+\r
],\r
"produces": [\r
+\r
"application/json"\r
+\r
],\r
"paths": {\r
+\r
"/ns": {\r
+\r
"post": {\r
+\r
"tags": [\r
+\r
"ns"\r
+\r
],\r
"summary": "ns create",\r
+\r
"description": "ns create",\r
+\r
"operationId": "ns_create",\r
+\r
"parameters": [\r
+\r
{\r
+\r
"in": "body",\r
+\r
"name": "NSCreateRequest",\r
+\r
"description": "NS Instance Create Request",\r
+\r
"required": true,\r
+\r
"schema": {\r
+\r
"$ref": "#/definitions/NsCreateRequest"\r
+\r
}\r
+\r
}\r
+\r
],\r
+\r
"responses": {\r
+\r
"200": {\r
+\r
"description": "successful operation",\r
+\r
"schema": {\r
+\r
"$ref": "#/definitions/NsCreateResponse"\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"get": {\r
+\r
"tags": [\r
+\r
"ns"\r
+\r
],\r
+\r
"summary": "ns get",\r
+\r
"description": "ns get",\r
+\r
"operationId": "ns_get",\r
+\r
"parameters": [],\r
+\r
"responses": {\r
+\r
"200": {\r
+\r
"description": "successful operation",\r
+\r
"schema": {\r
+\r
"$ref": "#/definitions/NsInfo"\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"/ns/{nsInstanceId}/Instantiate": {\r
+\r
"post": {\r
+\r
"tags": [\r
+\r
"ns"\r
+\r
],\r
+\r
"summary": "ns Instantiate",\r
+\r
"description": "ns Instantiate",\r
+\r
"operationId": "ns_Instantiate",\r
+\r
"parameters": [\r
+\r
{\r
"required": true,\r
+\r
"type": "string",\r
+\r
"description": "",\r
+\r
"name": "nsInstanceId",\r
+\r
"in": "path"\r
+\r
},\r
{\r
+\r
"in": "body",\r
+\r
"name": "NSInstantiateRequest",\r
+\r
"description": "NS Instantiate Request Body",\r
+\r
"required": true,\r
+\r
"schema": {\r
+\r
"$ref": "#/definitions/NsInstantiateRequest"\r
+\r
}\r
+\r
}\r
+\r
],\r
+\r
"responses": {\r
+\r
"200": {\r
+\r
"description": "",\r
+\r
"schema": {\r
+\r
"$ref": "#/definitions/JobInfo"\r
+\r
}\r
+\r
},\r
+\r
"201": {\r
+\r
"description": "Invalid Request"\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"/ns/{nsInstanceId}/scale": {\r
+\r
"post": {\r
+\r
"tags": [\r
+\r
"ns"\r
+\r
],\r
+\r
"summary": "ns scale",\r
+\r
"description": "ns scale",\r
+\r
"operationId": "ns_scale",\r
+\r
"parameters": [\r
+\r
{\r
+\r
"required": true,\r
+\r
"type": "string",\r
+\r
"description": "",\r
+\r
"name": "nsInstanceId",\r
+\r
"in": "path"\r
+\r
},\r
+\r
{\r
+\r
"in": "body",\r
+\r
"name": "ScaleNSRequest",\r
+\r
"description": "Scale NS Request Body",\r
+\r
"required": true,\r
+\r
"schema": {\r
+\r
"$ref": "#/definitions/NsScaleRequest"\r
+\r
}\r
+\r
}\r
+\r
],\r
+\r
"responses": {\r
+\r
"200": {\r
+\r
"description": "",\r
+\r
"schema": {\r
+\r
"$ref": "#/definitions/JobInfo"\r
+\r
}\r
+\r
},\r
+\r
"201": {\r
+\r
"description": "Invalid Request"\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"/ns/{ns_instance_id}/heal": {\r
+\r
"post": {\r
+\r
"tags": [\r
+\r
"ns"\r
+\r
],\r
+\r
"summary": "ns heal",\r
+\r
"description": "ns heal",\r
+\r
"operationId": "ns_heal",\r
+\r
"parameters": [\r
+\r
{\r
"required": true,\r
+\r
"type": "string",\r
+\r
"description": "Identifier of the NS instance.",\r
+\r
"name": "ns_instance_id",\r
+\r
"in": "path"\r
+\r
},\r
+\r
{\r
+\r
"in": "body",\r
+\r
"name": "healVnfData",\r
+\r
"description": "healVnfData",\r
+\r
"required": true,\r
+\r
"schema": {\r
+\r
"$ref": "#/definitions/NsHealRequest"\r
+\r
}\r
+\r
}\r
+\r
],\r
+\r
"responses": {\r
+\r
"202": {\r
+\r
"description": "",\r
+\r
"schema": {\r
+\r
"$ref": "#/definitions/JobInfo"\r
+\r
}\r
+\r
},\r
+\r
"500": {\r
+\r
"description": "the url is invalid"\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"/ns/{ns_instance_id}/terminate": {\r
+\r
"post": {\r
+\r
"tags": [\r
+\r
"ns"\r
+\r
],\r
+\r
"summary": "ns terminate",\r
+\r
"description": "ns terminate",\r
+\r
"operationId": "ns_terminate",\r
+\r
"parameters": [\r
+\r
{\r
+\r
"required": true,\r
+\r
"type": "string",\r
+\r
"description": "Identifier of the NS instance.",\r
+\r
"name": "ns_instance_id",\r
+\r
"in": "path"\r
+\r
},\r
+\r
{\r
"in": "body",\r
+\r
"name": "NsTerminateRequest",\r
+\r
"description": "NsTerminateRequest",\r
+\r
"required": true,\r
+\r
"schema": {\r
+\r
"$ref": "#/definitions/NsTerminateRequest"\r
+\r
}\r
+\r
}\r
+\r
],\r
+\r
"responses": {\r
+\r
"202": {\r
+\r
"description": "",\r
+\r
"schema": {\r
+\r
"$ref": "#/definitions/JobInfo"\r
+\r
}\r
+\r
},\r
+\r
"500": {\r
+\r
"description": "the url is invalid"\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
},\r
"/ns/{ns_instance_id}": {\r
+\r
"delete": {\r
+\r
"tags": [\r
+\r
"ns"\r
+\r
],\r
+\r
"summary": "ns delete",\r
+\r
"description": "ns delete",\r
+\r
"operationId": "ns_delete",\r
+\r
"parameters": [\r
+\r
{\r
"required": true,\r
+\r
"type": "string",\r
+\r
"description": "Identifier of the NS instance.",\r
+\r
"name": "ns_instance_id",\r
+\r
"in": "path"\r
+\r
}\r
+\r
],\r
+\r
"responses": {\r
+\r
"204": {\r
+\r
"description": "The NS instance resource and the associated NS identifier were deleted successfully."\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"/jobs/{jobId}": {\r
+\r
"post": {\r
+\r
"tags": [\r
+\r
"job"\r
+\r
],\r
+\r
"summary": "jobstatus",\r
+\r
"description": "",\r
+\r
"operationId": "jobstatus",\r
+\r
"parameters": [\r
+\r
{\r
"required": true,\r
+\r
"type": "string",\r
+\r
"description": "",\r
+\r
"name": "jobId",\r
+\r
"in": "path"\r
+\r
},\r
+\r
{\r
+\r
"in": "body",\r
+\r
"name": "body",\r
+\r
"description": "request param",\r
+\r
"required": true,\r
+\r
"schema": {\r
+\r
"$ref": "#/definitions/JobProgressRequest"\r
+\r
}\r
+\r
}\r
+\r
],\r
+\r
"responses": {\r
+\r
"202": {\r
+\r
"description": ""\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"definitions": {\r
+\r
"NsCreateRequest": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"csarId": {\r
+\r
"type": "string",\r
+\r
"description": "the NS package ID"\r
+\r
},\r
+\r
"nsName": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"description": {\r
+\r
"type": "string"\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"NsCreateResponse": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"nsInstanceId": {\r
+\r
"type": "string"\r
+\r
}\r
+\r
}\r
+\r
},\r
"NsInstantiateRequest": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"LocationConstraints": {\r
+\r
"type": "array",\r
+\r
"items": {\r
+\r
"$ref": "#/definitions/LocationConstraint"\r
+\r
}\r
+\r
},\r
+\r
"additionalParamForNs": {\r
+\r
"type": "string"\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"LocationConstraint": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"vnfProfileId": {\r
+\r
"type": "string"\r
+\r
},\r
"locationConstraints": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"vimid": {\r
+\r
"type": "string"\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"NsScaleRequest": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"scaleType": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"scaleNsByStepsData": {\r
+\r
"$ref": "#/definitions/NsScaleByStepsData"\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"NsScaleByStepsData": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"scalingDirection": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"aspectId": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"numberOfSteps": {\r
+\r
"type": "integer"\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"NsHealRequest": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"vnfInstanceId": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"cause": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"additionalParams": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"action": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"actionvminfo": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"vmid": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"vmname": {\r
+\r
"type": "string"\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"NsTerminateRequest": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"terminationType": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"gracefulTerminationTimeout": {\r
+\r
"type": "string"\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"JobInfo": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"jobId": {\r
+\r
"type": "string"\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"JobProgressRequest": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"progress": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"desc": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"errcode": {\r
+\r
"type": "string"\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"NsInfo": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"nsInstanceId": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"nsName": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"description": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"nsdId": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"vnfInfo": {\r
+\r
"type": "array",\r
+\r
"items": {\r
+\r
"$ref": "#/definitions/vnfInfo"\r
+\r
}\r
+\r
},\r
+\r
"vlInfo": {\r
+\r
"type": "array",\r
+\r
"items": {\r
+\r
"$ref": "#/definitions/vlInfo"\r
+\r
}\r
+\r
},\r
+\r
"vnffgInfo": {\r
+\r
"type": "array",\r
+\r
"items": {\r
+\r
"$ref": "#/definitions/vnffgInfo"\r
+\r
}\r
+\r
},\r
+\r
"nsState": {\r
+\r
"type": "string"\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"vnfInfo": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"vnfInstanceId": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"vnfInstanceName": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"vnfdId": {\r
+\r
"type": "string"\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"vlInfo": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"vlInstanceId": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"vlInstanceName": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"vldId": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"relatedCpInstanceId": {\r
+\r
"type": "array",\r
+\r
"items": {\r
+\r
"$ref": "#/definitions/cpInfo"\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
},\r
+\r
"cpInfo": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"cpInstanceId": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"cpInstanceName": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"cpdId": {\r
+\r
"type": "string"\r
+\r
}\r
+\r
}\r
+\r
},\r
"vnffgInfo": {\r
+\r
"type": "object",\r
+\r
"properties": {\r
+\r
"vnffgInstanceId": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"vnfId": {\r
+\r
"type": "string"\r
+\r
},\r
"pnfId": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"virtualLinkId": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"cpId": {\r
+\r
"type": "string"\r
+\r
},\r
+\r
"nfp": {\r
+\r
"type": "string"\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
}\r
+\r
}
\ No newline at end of file
+------------------------+-----------------------------------------------------+\r
| VNF | Virtual Network Function |\r
+------------------------+-----------------------------------------------------+\r
+\r
Table 2-1 abbreviations\r
\r
**3. Interfaces provided by VNFM** (Or-Vnfm/Ve-Vnfm-vnf) \r
{\r
"vnfdId": "zte\_vFW\_51610", \r
"vnfInstanceName": "vFW\_01",\r
- " vnfInstanceDescription": " vFW in Nanjing TIC Edge"\r
+ "vnfInstanceDescription": " vFW in Nanjing TIC Edge"\r
+\r
}\r
\r
**3.1.2 Response**\r
\r
{\r
"vnfInstanceId": "1"\r
+\r
}\r
\r
**3.1.3 Response Code**\r
| 4xx/5xx | <name from RFC7231> | <description> |\r
+-----------+-----------------------+----------------------------------------------------------------------------------------------+\r
\r
-3.3 Instantiate VNF\r
--------------------\r
+**3.3 Instantiate VNF**\r
+-----------------------\r
\r
+---------------------+-------------------------------------------------------------------------------------------+\r
| If Definition | Description |\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
+-----------------+-----------+-------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------+\r
| Attribute | Qualifier | Cardinality | Content | Description |\r
+=================+===========+=============+==============+==========================================================================================================================================+\r
+-----------------+-----------+-------------+--------------+------------------------------------------------------------------------------------------------------------------------------------------+\r
\r
**interfaceInfo:**\r
+\r
+------------------+---------------+--------------------------------------+\r
| **Key Define** | **Content** | **Description** |\r
+==================+===============+======================================+\r
+------------------+---------------+--------------------------------------+\r
\r
**accessInfo:**\r
+\r
+------------------+---------------+--------------------------+\r
| **Key Define** | **Content** | **Description** |\r
+==================+===============+==========================+\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
+| | | | | 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
"flavourId": "flavour\_1", \r
"instantiationLevelId":"instantiationLevel\_1", \r
"extVirtualLinks": [\r
- {\r
- "vlInstanceId": "1",\r
+\r
+ { "vlInstanceId": "1",\r
"vim": {\r
"vimInfoId": "1",\r
"vimId": "1", \r
"interfaceInfo": {\r
+\r
"vimType": "vim",\r
"apiVersion": "v2",\r
"protocolType": "http"\r
+\r
},\r
"accessInfo": {\r
+\r
"tenant": "tenant\_vCPE", \r
"username": "vCPE", \r
"password": "vCPE\_321"\r
+\r
},\r
"interfaceEndpoint": "http://10.43.21.105:80/"\r
+\r
},\r
"resourceId": "1246", \r
"extCps": [\r
+\r
{\r
"cpdId": "11", "addresses": [\r
+\r
{\r
"addressType": "MAC", \r
"l2AddressData": "00:f3:43:20:a2:a3"\r
+\r
},\r
{\r
+\r
"addressType": "IP", \r
"l3AddressData": {\r
+\r
"iPAddressType": "IPv4", \r
"iPAddress": "192.168.104.2"\r
+\r
}\r
+\r
}\r
+\r
],\r
"numDynamicAddresses": 0\r
- }\r
+\r
+ },\r
+\r
+ ...\r
+\r
]\r
+\r
}\r
+\r
],\r
\r
"localizationLanguage": "en\_US", "additionalParams": {...}\r
+\r
}\r
\r
+\r
**3.3.2 Response**\r
\r
+-------------+-------------+---------------+------------------+---------------------------------------------------------+\r
}\r
\r
**3.3.3 Response Code**\r
+\r
+-----------+-----------------------+------------------------------------------------------------------------------------------+\r
| Code | Meaning | Description |\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
+| | | | | |\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
+| 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
| | | | | VNF and releasing the |\r
| | | | | resources. |\r
+-------------------+-------------+---------------+---------------+-------------------------------------------------------------------------+\r
+\r
{\r
"terminationType": "GRACEFUL", \r
"gracefulTerminationTimeout": 120\r
+\r
}\r
\r
**3.4.2 Response**\r
\r
{\r
"vnfLcOpId": "2"\r
+\r
}\r
\r
**3.4.3 Response Code**\r
"vnfConfigurableProperties": {...},\r
"instantiationState": "INSTANTIATED", \r
"instantiatedVnfInfo": {\r
+\r
"flavourId": "1", \r
"vnfState": "STARTED", \r
"scaleStatus": [\r
+\r
{\r
"aspectId": "aspect1", \r
"scaleLevel": 1\r
+\r
}\r
+\r
],\r
+\r
"extCpInfo": [\r
+\r
{\r
"cpInstanceId": "1",\r
"cpdId": "1", "addresses": [\r
+\r
{\r
"addressType": "MAC", \r
"l2AddressData": "00:f3:43:20:a2:a3"\r
+\r
},\r
+\r
{\r
"addressType": "IP", \r
"l3AddressData": {\r
+\r
"iPAddressType": "IPv4", \r
"address": "192.168.104.2"\r
+\r
}\r
+\r
}\r
+\r
]\r
+\r
} \r
+\r
],\r
"extVirtualLink": [\r
+\r
{\r
"extVirtualLinkId": "extvl1", \r
"resourceHandle": {\r
+\r
"vimId": "1",\r
"resourceId": "1111"\r
+\r
},\r
\r
"linkPorts": [\r
+\r
{\r
"resourceHandle": \r
+\r
{ \r
"vimId": "1",\r
"resourceId": "2121"\r
+\r
},\r
+\r
"cpInstanceId": "1"\r
+\r
}\r
+\r
]\r
+\r
}\r
+\r
],\r
\r
"monitoringParameters": {...}, \r
"localizationLanguage": "en\_US",\r
"vimInfo": [\r
+\r
{\r
"vimInfoId": "1",\r
"vimId": "1", \r
"interfaceInfo": {\r
+\r
"vimType": "vim",\r
"apiVersion": "v2", \r
"protocolType": "http"\r
+\r
},\r
+\r
"accessInfo": {\r
+\r
"tenant": "tenant\_vCPE", \r
"username": "vCPE", \r
"password": "vCPE\_321"\r
+\r
},\r
\r
"interfaceEndpoint": "http://10.43.21.105:80/"\r
+\r
}\r
+\r
],\r
"vnfcResourceInfo": [\r
+\r
{\r
"vnfcInstanceId": "vm1", \r
"vduId": "vdu1", \r
"computeResource": {\r
+\r
"vimId": "1",\r
"resourceId": "3333"\r
+\r
},\r
+\r
"storageResourceIds": [ "storage1"\r
]\r
+\r
}\r
+\r
],\r
+\r
"virtualLinkResourceInfo": [\r
+\r
{\r
"virtualLinkInstanceId": "vl01", \r
"virtualLinkDescId": "vl01",\r
"networkResource": {\r
+\r
"vimId": "1",\r
"resourceId": "4444"\r
+\r
}\r
+\r
}\r
+\r
],\r
"virtualStorageResourceInfo": [\r
+\r
{\r
"virtualStorageInstanceId": "storage1", \r
"virtualStorageDescId":"storage1", \r
"storageResource": {\r
+\r
"vimId": "1",\r
"resourceId": "555"\r
+\r
}\r
+\r
}\r
+\r
]\r
+\r
},\r
"metadata": {...},\r
"extensions": {...}\r
+\r
}\r
+\r
]\r
\r
**3.5.3 Response Code**\r
+---------------------+------------------------------------------------------------------------------+\r
| If Definition | Description |\r
+=====================+==============================================================================+\r
-| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf_instances/{vnfInstanceId} |\r
+| URI | http(s)://[hostname][:port]/gvnfmapi/lcm/v1/vnf_instances/{vnfInstanceId} |\r
+---------------------+------------------------------------------------------------------------------+\r
| Operation | GET |\r
+---------------------+------------------------------------------------------------------------------+\r
"flavourId": "1", \r
"vnfState": "STARTED", \r
"scaleStatus": [\r
+\r
{\r
"aspectId": "aspect1", \r
"scaleLevel": 1\r
+\r
}\r
+\r
],\r
\r
"extCpInfo": [\r
+\r
{\r
"cpInstanceId": "1",\r
"cpdId": "1", "addresses": [\r
+\r
{\r
"addressType": "MAC", \r
"l2AddressData": "00:f3:43:20:a2:a3"\r
+\r
},\r
\r
{\r
"addressType": "IP", \r
"l3AddressData": {\r
+\r
"iPAddressType": "IPv4", \r
"address": "192.168.104.2"\r
+\r
}\r
+\r
}\r
+\r
]\r
+\r
}\r
+\r
],\r
\r
"extVirtualLink": [\r
+\r
{\r
"extVirtualLinkId": "extvl1", \r
"resourceHandle": {\r
+\r
"vimId": "1",\r
"resourceId": "1111"\r
+\r
},\r
+\r
"linkPorts": [\r
+\r
{\r
- "resourceHandle": \r
+ "resourceHandle":\r
+ \r
{ \r
"vimId": "1",\r
"resourceId": "2121"\r
+\r
},\r
"cpInstanceId": "1"\r
+\r
}\r
+\r
]\r
+\r
}\r
+\r
],\r
\r
"monitoringParameters": {...}, \r
"localizationLanguage": "en\_US",\r
"vimInfo": [\r
+\r
{\r
"vimInfoId": "1",\r
"vimId": "1", \r
"interfaceInfo": {\r
+\r
"vimType": "vim",\r
"apiVersion": "v2", \r
"protocolType": "http"\r
+\r
},\r
+\r
"accessInfo": {\r
+\r
"tenant": "tenant\_vCPE", \r
"username": "vCPE", \r
"password": "vCPE\_321"\r
+\r
},\r
"interfaceEndpoint": "http://10.43.21.105:80/"\r
+\r
}\r
+\r
],\r
\r
"vnfcResourceInfo": [\r
+\r
{\r
"vnfcInstanceId": "vm1", \r
"vduId": "vdu1", \r
"computeResource": {\r
+\r
"vimId": "1",\r
"resourceId": "3333"\r
+\r
},\r
\r
"storageResourceIds": [ "storage1"\r
]\r
+\r
}\r
+\r
],\r
\r
"virtualLinkResourceInfo": [\r
+\r
{\r
"virtualLinkInstanceId": "vl01", \r
"virtualLinkDescId": "vl01",\r
"networkResource": {\r
+\r
"vimId": "1",\r
"resourceId": "4444"\r
+\r
}\r
+\r
}\r
+\r
],\r
\r
"virtualStorageResourceInfo": [\r
+\r
{\r
"virtualStorageInstanceId": "storage1", \r
"virtualStorageDescId": "storage1", \r
"storageResource": {\r
+\r
"vimId": "1",\r
"resourceId": "555"\r
+\r
}\r
+\r
}\r
+\r
]\r
+\r
},\r
"metadata": {...},\r
"extensions": {...}\r
+\r
}\r
\r
**3.7 Get Operation Status**\r
| lcmOperationType | M | 1 | ENUM | Type of the actual LCM operation represented by this lcm operation occurrence. |\r
| | | | | |\r
| | | | | Permitted values: |\r
-+--------------------+-------------+---------------+-----------+----------------------------------------------------------------------------------+\r
+| | | | | |\r
| | | | | - INSTANTIATE:the |\r
| | | | | |\r
| | | | | Instantiate VNF LCM operation. |\r
+---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
| progress | M | 1 | Integer | progress (1-100) |\r
+---------------------------+-----------------+--------------------+---------------+-----------------------------------------------------------+\r
-| lcmOperationS tatus | M | 1 | ENUM | Status of a VNF lifecycle operation occurrence |\r
+| lcmOperationStatus | M | 1 | ENUM | Status of a VNF lifecycle operation occurrence |\r
| | | | | |\r
| | | | | Permitted values: |\r
| | | | | |\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
+| | | | | |\r
| | | | | (Reserved) |\r
+| | | | | |\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
+| | | | | 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
"startTime": "2017-01-01T12:00:27.87+00:20",\r
\r
- "responseDescriptor": { \r
+ "responseDescriptor": {\r
+ \r
"responseId": 3,\r
"progress": 40, \r
"lcmOperationStatus": "PROCESSING",\r
"statusDescription": "OMC VMs are decommissioned in VIM",\r
"errorCode": null,\r
"responseHistoryList": [\r
+\r
{\r
"responseId": 1,\r
"progress": 40, \r
"lcmOperationStatus": "PROCESSING",\r
"statusDescription": "OMC VMs are decommissioned in VIM",\r
"errorCode": null\r
+\r
},\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
}\r
+\r
}\r
\r
**3.7.3 Response Code**\r
===============================================\r
\r
**4.1 Set Initial Configuration**\r
------------------------------\r
+---------------------------------\r
\r
+---------------------+---------------------------------------------+\r
| If Definition | Description |\r
\r
"vnfInstanceId": "1", \r
"vnfConfigurationData": {\r
+\r
"cp": [\r
+\r
{\r
"cpId": "cp-1",\r
"cpdId": "cpd-a", \r
"cpAddress": [\r
+\r
{\r
"addresses": [\r
+\r
{\r
"addressType": "MAC", \r
"l2AddressData": "00:f3:43:20:a2:a3"\r
+\r
},\r
{\r
+\r
"addressType": "IP", \r
"l3AddressData": {\r
+\r
"iPAddressType": "IPv4", \r
"iPAddress": "192.168.104.2"\r
+\r
}\r
+\r
}\r
+\r
],\r
+\r
"useDynamicAddress": "FALSE"\r
+\r
}\r
+\r
]\r
+\r
}\r
+\r
],\r
+\r
"vnfSpecificData": { \r
+\r
"autoScalable": "FALSE", \r
"autoHealable": "FALSE"\r
+\r
}\r
+\r
},\r
+\r
"vnfcConfigurationData": \r
{ \r
"vnfcId": "vnfc-1", \r
"cp": [\r
+\r
{\r
"cpId": "cp-11",\r
"cpdId": "cpd-1a",\r
"cpAddress": [\r
+\r
{\r
"addresses": [\r
+\r
{\r
"addressType": "MAC", \r
"l2AddressData": "00:f3:43:21:a2:a3"\r
+\r
},\r
{\r
+\r
"addressType": "IP", \r
"l3AddressData": {\r
+\r
"iPAddressType": "IPv4", \r
"iPAddress": "192.168.105.2"\r
+\r
}\r
+\r
}\r
+\r
],\r
"useDynamicAddress": "FALSE"\r
+\r
}\r
+\r
]\r
+\r
}\r
+\r
],\r
+\r
"vnfcSpecificData": {}\r
+\r
}\r
+\r
}\r
\r
\r
**4.1.2 Response**\r
+\r
+-----------------------+-------------+---------------+-------------------+---------------------------------+\r
| Parameter | Qualifier | Cardinality | Content | Description |\r
+=======================+=============+===============+===================+=================================+\r
\r
{\r
"vnfConfigurationData": { \r
+\r
"cp": [\r
+\r
{\r
"cpId": "cp-1",\r
"cpdId": "cpd-a", "cpAddress": [\r
+\r
{\r
"addresses": [\r
+\r
{\r
"addressType": "MAC", \r
"l2AddressData": "00:f3:43:20:a2:a3"\r
+\r
},\r
{\r
+\r
"addressType": "IP", \r
"l3AddressData": {\r
+\r
"iPAddressType": "IPv4", \r
"iPAddress": "192.168.104.2"\r
+\r
}\r
+\r
}\r
+\r
],\r
+\r
"useDynamicAddress": "FALSE"\r
+\r
}\r
+\r
]\r
+\r
}\r
+\r
],\r
"vnfSpecificData": { \r
+\r
"autoScalable": "FALSE", \r
"autoHealable": "FALSE",\r
…\r
+\r
}\r
+\r
},\r
+\r
"vnfcConfigurationData": { \r
+\r
"vnfcId": "vnfc-1", \r
"cp": [\r
+\r
{\r
"cpId": "cp-11",\r
"cpdId": "cpd-1a", \r
"cpAddress": [\r
+\r
{\r
"addresses": [\r
+\r
{\r
+\r
"addressType": "MAC", \r
"l2AddressData": "00:f3:43:21:a2:a3"\r
+\r
},\r
{\r
+\r
"addressType": "IP", \r
"l3AddressData": {\r
+\r
"iPAddressType": "IPv4", \r
"iPAddress": "192.168.105.2"\r
+\r
}\r
+\r
}\r
+\r
],\r
+\r
"useDynamicAddress": "FALSE"\r
+\r
}\r
+\r
]\r
+\r
}\r
+\r
],\r
+\r
"vnfcSpecificData": {…}\r
+\r
}\r
+\r
}\r
\r
**4.1.3Response Code**\r
\r
.. |image0| image:: VNFM_API.png\r
:width: 5.07047in\r
- :height: 5.63208in
\ No newline at end of file
+ :height: 5.6320
\ No newline at end of file
.. contents::\r
:depth: 3\r
..\r
+\r
**VNFM Driver API**\r
**V0.1**\r
\r
| | | | | manages this resource. |\r
| | | | | This attribute shall be supported |\r
| | | | | and present if VNF-related resource |\r
-| | | | | management in direct applicable. |\r
+| | | | | management in direct applicable. |\r
+--------------+------------+-------------+----------+----------------------------------------+\r
| networkId | M | 1 | String | The network UUID of VIM |\r
+--------------+------------+-------------+----------+----------------------------------------+\r
"vnfPackageId":"1",\r
"vnfDescriptorId":"1",\r
"vnfInstanceDescription":"vFW_1",\r
- "extVirtualLinkLink":[\r
+ "extVirtualLinkLink":[ \r
+\r
{\r
"vlInstanceId":"1",\r
"resourceId":"1246" ,\r
" cpdId":"11111",\r
"vim":\r
{\r
+\r
"vimInfoId":"1",\r
"vimid":"1", \r
"interfaceInfo":{\r
+\r
"vimType":"vim",\r
"apiVersion":"v2",\r
"protocolType":"http"\r
+\r
}\r
"accessInfo":{\r
+\r
"tenant":"tenant_vCPE",\r
"username":"vCPE",\r
"password":"vCPE_321"\r
+\r
}\r
"interfaceEndpoint":"http://10.43.21.105:80/"\r
+\r
}\r
+\r
}\r
+\r
]\r
"additionalParam":{\r
+\r
……\r
}\r
+\r
}\r
\r
\r
{\r
"jobId":"1",\r
"vnfInstanceId":"1"\r
+\r
}\r
\r
**3.2 Terminate VNF**\r
"vnfInstanceId":"1",\r
"terminationType":"graceful",\r
"gracefulTerminationTimeout":"60"\r
+\r
}\r
\r
**3.2.2 Response**\r
\r
{\r
"jobId":"1"\r
+\r
}\r
\r
\r
{\r
"vnfInfo":\r
{\r
+\r
"nfInstanceId":"1",\r
"vnfInstanceName":"vFW",\r
"vnfInstanceDescription":"vFW in Nanjing TIC Edge",\r
"vnfProvider":"ZTE",\r
"vnfType":"vFW",\r
"vnfStatus":" ACTIVE",\r
+\r
}\r
+\r
}\r
\r
**3.4 Get operation status**\r
{\r
"jobId" : "1234566",\r
"responseDescriptor" : {\r
+\r
"progress" : "40",\r
"status" : "proccessing",\r
"statusDescription" : "OMC VMs are decommissioned in VIM",\r
"errorCode" : null,\r
"responseId" : "42",\r
"responseHistoryList" : [{\r
+\r
"progress" : "40",\r
"status" : "proccessing",\r
"statusDescription" : "OMC VMs are decommissioned in VIM",\r
"errorCode" : null,\r
"responseId" : "1"\r
+\r
}, {\r
"progress" : "41",\r
"status" : "proccessing",\r
"statusDescription" : "OMC VMs are decommissioned in VIM",\r
"errorCode" : null,\r
"responseId" : "2"\r
+\r
}\r
+\r
]\r
+\r
}\r
+\r
}\r
\r
**3.5 Scale VNF**\r
\r
**3.5.1 Request**\r
\r
+\r
+---------------+------------+-------------+-------------+---------------------------------------------+\r
| Parameter | Qualifier | Cardinality | Content | Description |\r
+===============+============+=============+=============+=============================================+\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
++---------------+------------+-------------+-------------+---------------------------------------------+\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
"aspectId":"101",\r
"numberOfSteps":"1",\r
"additionalParam":{\r
+\r
……\r
+\r
}\r
+\r
}\r
\r
**3.5.2 Response**\r
\r
{\r
"jobId":"1"\r
+\r
}\r
\r
**3.6 Heal VNF**\r
"action": "vmReset",\r
"affectedvm": \r
{\r
+\r
"vmid": "804cca71-9ae9-4511-8e30-d1387718caff",\r
"vduid": "vdu_100",\r
"vmname": "ZTE_SSS_111_PP_2_L"\r
+\r
},\r
+\r
}\r
\r
**3.6.2 Response**\r
\r
{\r
"jobId":"1"\r
+\r
}\r