Add VNFM Driver Development API 35/11035/1
authormaopengzhang <zhang.maopeng1@zte.com.cn>
Fri, 8 Sep 2017 07:28:00 +0000 (15:28 +0800)
committermaopengzhang <zhang.maopeng1@zte.com.cn>
Fri, 8 Sep 2017 07:28:00 +0000 (15:28 +0800)
Add VNFM Driver Development API defintion

Change-Id: I813ae606820244480a81e59b28508cf923ed8e74
Issue-ID: VFC-1
Signed-off-by: maopengzhang <zhang.maopeng1@zte.com.cn>
lcm/swagger/vfc.vnfdriver.swagger.json [new file with mode: 0644]

diff --git a/lcm/swagger/vfc.vnfdriver.swagger.json b/lcm/swagger/vfc.vnfdriver.swagger.json
new file mode 100644 (file)
index 0000000..b6d1653
--- /dev/null
@@ -0,0 +1,1191 @@
+{\r
+  "swagger": "2.0",\r
+  "info": {\r
+    "version": "1.0.0",\r
+    "title": "ONAP VNFM Driver Development Related API",\r
+    "description": "ONAP VNFM Driver Development Related Rest API.",\r
+    "contact": {\r
+      "name": "ONAP VFC team",\r
+      "email": "onap-discuss@lists.onap.org",\r
+      "url": "https://gerrit.onap.org/r/#/admin/projects/vfc/nfvo/lcm"\r
+    }\r
+  },\r
+  "basePath": "/api",\r
+  "schemes": [\r
+    "http",\r
+    "https"\r
+  ],\r
+  "consumes": [\r
+    "application/json"\r
+  ],\r
+  "produces": [\r
+    "application/json"\r
+  ],\r
+  "paths": {\r
+    "/{vnfmtype}/v1/{vnfmid}/vnfs": {\r
+      "post": {\r
+        "tags": [\r
+          "VNFMDriver"\r
+        ],\r
+        "summary": "vnf create&instantiate",\r
+        "description": "VNF create&instantiate Rest API should be provided by the VNFM Driver",\r
+        "operationId": "vnf_instantiate",\r
+        "consumes": [\r
+          "application/json"\r
+        ],\r
+        "produces": [\r
+          "application/json"\r
+        ],\r
+        "parameters": [\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfmtype should be the SVNFM driver service name",\r
+            "name": "vnfmtype",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfmid should be the VNFM Instantiate ID",\r
+            "name": "vnfmid",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "in": "body",\r
+            "name": "body",\r
+            "description": "instantiate request param",\r
+            "required": true,\r
+            "schema": {\r
+              "$ref": "#/definitions/VnfInstantiateRequest"\r
+            }\r
+          }\r
+        ],\r
+        "responses": {\r
+          "201": {\r
+            "description": "",\r
+            "schema": {\r
+              "$ref": "#/definitions/VnfInstantiateResponse"\r
+            }\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "/{vnfmtype}/v1/{vnfmid}/vnfs/{vnfInstanceId}/scale": {\r
+      "post": {\r
+        "tags": [\r
+          "VNFMDriver"\r
+        ],\r
+        "summary": "vnf Scale",\r
+        "description": "VNF Scale Rest API should be provided by the VNFM Driver",\r
+        "operationId": "vnf_scale",\r
+        "consumes": [\r
+          "application/json"\r
+        ],\r
+        "produces": [\r
+          "application/json"\r
+        ],\r
+        "parameters": [\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfmtype should be the SVNFM driver service name",\r
+            "name": "vnfmtype",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfmid should be the VNFM Instantiate ID",\r
+            "name": "vnfmid",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfInstanceId should be the VNF Instantiate ID",\r
+            "name": "vnfInstanceId",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "in": "body",\r
+            "name": "body",\r
+            "description": "instantiate request param",\r
+            "required": true,\r
+            "schema": {\r
+              "$ref": "#/definitions/VnfScaleRequest"\r
+            }\r
+          }\r
+        ],\r
+        "responses": {\r
+          "201": {\r
+            "description": "",\r
+            "schema": {\r
+              "$ref": "#/definitions/JobInfo"\r
+            }\r
+          },\r
+          "404": {\r
+            "description": "the VNF instance id is wrong"\r
+          },\r
+          "500": {\r
+            "description": "the url is invalid"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "/{vnfmtype}/v1/{vnfmid}/vnfs/{vnfInstanceId}/heal": {\r
+      "post": {\r
+        "tags": [\r
+          "VNFMDriver"\r
+        ],\r
+        "summary": "vnf heal",\r
+        "description": "VNF Heal Rest API should be provided by the VNFM Driver",\r
+        "operationId": "vnf_heal",\r
+        "consumes": [\r
+          "application/json"\r
+        ],\r
+        "produces": [\r
+          "application/json"\r
+        ],\r
+        "parameters": [\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfmtype should be the SVNFM driver service name",\r
+            "name": "vnfmtype",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfmid should be the VNFM Instantiate ID",\r
+            "name": "vnfmid",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfInstanceId should be the VNF Instantiate ID",\r
+            "name": "vnfInstanceId",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "in": "body",\r
+            "name": "body",\r
+            "description": "instantiate request param",\r
+            "required": true,\r
+            "schema": {\r
+              "$ref": "#/definitions/VnfHealRequest"\r
+            }\r
+          }\r
+        ],\r
+        "responses": {\r
+          "201": {\r
+            "description": "",\r
+            "schema": {\r
+              "$ref": "#/definitions/JobInfo"\r
+            }\r
+          },\r
+          "404": {\r
+            "description": "the VNF instance id is wrong"\r
+          },\r
+          "500": {\r
+            "description": "the url is invalid"\r
+          }\r
+        }\r
+      }\r
+    },   \r
+    "/{vnfmtype}/v1/{vnfmid}/vnfs/{vnfInstanceId}/terminate": {    \r
+      "delete": {\r
+        "tags": [\r
+          "VNFMDriver"\r
+        ],\r
+        "summary": "delete vnf",\r
+        "description": "VNF terminate Rest API should be provided by the VNFM Driver",\r
+        "operationId": "delete_vnf",\r
+        "consumes": [\r
+          "application/json"\r
+        ],\r
+        "produces": [\r
+          "application/json"\r
+        ],\r
+        "parameters": [\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfmtype should be the SVNFM driver service name",\r
+            "name": "vnfmtype",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfmid should be the VNFM Instantiate ID",\r
+            "name": "vnfmid",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfInstanceId should be the VNF Instantiate ID",\r
+            "name": "vnfInstanceId",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "in": "body",\r
+            "name": "body",\r
+            "description": "instantiate request param",\r
+            "required": true,\r
+            "schema": {\r
+              "$ref": "#/definitions/VnfTerminateRequest"\r
+            }\r
+          }\r
+        ],\r
+        "responses": {\r
+          "204": {\r
+            "description": "successful operation",\r
+            "schema": {\r
+              "$ref": "#/definitions/JobInfo"\r
+            }\r
+          },\r
+          "404": {\r
+            "description": "the VNF instance id is wrong"\r
+          },\r
+          "500": {\r
+            "description": "the url is invalid"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "/{vnfmtype}/v1/{vnfmid}/vnfs/{vnfInstanceId}": {\r
+      "get": {\r
+        "tags": [\r
+          "VNFMDriver"\r
+        ],\r
+        "summary": "query the specified vnf info",\r
+        "description": "",\r
+        "operationId": "query_vnf",\r
+        "consumes": [\r
+          "application/json"\r
+        ],\r
+        "produces": [\r
+          "application/json"\r
+        ],\r
+        "parameters": [\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfmtype should be the SVNFM driver service name",\r
+            "name": "vnfmtype",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfmid should be the VNFM Instantiate ID",\r
+            "name": "vnfmid",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfInstanceId should be the VNF Instantiate ID",\r
+            "name": "vnfInstanceId",\r
+            "in": "path"\r
+          }\r
+        ],\r
+        "responses": {\r
+          "200": {\r
+            "description": "successful operation",\r
+            "schema": {\r
+              "$ref": "#/definitions/VnfInfo"\r
+            }\r
+          },\r
+          "404": {\r
+            "description": "the vnf instance id is wrong"\r
+          },\r
+          "500": {\r
+            "description": "the url is invalid"\r
+          }\r
+        }\r
+      }\r
+    }, \r
+    "/nslcm/v1/ns/grantvnf": {\r
+      "post": {\r
+        "tags": [\r
+          "NSLCM"\r
+        ],\r
+        "summary": "grantvnf",\r
+        "description": "Grant VNF, provived by the NSLCM component",\r
+        "operationId": "grantvnf",\r
+        "parameters": [\r
+          {\r
+            "in": "body",\r
+            "name": "grantvnf",\r
+            "description": "Grant VNF Request",\r
+            "required": true,\r
+            "schema": {\r
+              "$ref": "#/definitions/GrantVNFRequest"\r
+            }\r
+          }\r
+        ],\r
+        "responses": {\r
+          "202": {\r
+            "description": "",\r
+            "schema": {\r
+              "$ref": "#/definitions/GrantVNFResponse"\r
+            }\r
+          },\r
+          "500": {\r
+            "description": "the url is invalid"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "/nslcm/v1/vnfs/{vnfInstanceId}/Notify": {\r
+      "post": {\r
+        "tags": [\r
+          "NSLCM"\r
+        ],\r
+        "summary": "VNF LCM Notification",\r
+        "description": "VNF LCM Notification API should be provided by NSLCM component",\r
+        "operationId": "VNF_LCM_Notification",\r
+        "parameters": [\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "VNF Instance Id",\r
+            "name": "vnfInstanceId",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "in": "body",\r
+            "name": "vnf Notification",\r
+            "description": "VNF LCM Notification",\r
+            "required": true,\r
+            "schema": {\r
+              "$ref": "#/definitions/VNFLCMNotification"\r
+            }\r
+          }\r
+        ],\r
+        "responses": {\r
+          "202": {\r
+            "description": ""\r
+          },\r
+          "500": {\r
+            "description": "the url is invalid"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "/{vnfmid}/jobs/{jobid}": {\r
+      "get": {\r
+        "tags": [\r
+          "VNFMDriver"\r
+        ],\r
+        "summary": "jobstatus",\r
+        "description": "Job Infomation API should be provided by VNFM Driver",\r
+        "operationId": "get_jobstatus",\r
+        "parameters": [\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "job Id",\r
+            "name": "jobid",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "The value of vnfmid should be the VNFM Instantiate ID",\r
+            "name": "vnfmid",\r
+            "in": "path"\r
+          },\r
+          {\r
+            "required": true,\r
+            "type": "string",\r
+            "description": "job response message id",\r
+            "name": "responseId",\r
+            "in": "query"\r
+          }\r
+        ],\r
+        "responses": {\r
+          "202": {\r
+            "description": "",\r
+            "schema": {\r
+              "$ref": "#/definitions/JobDetailInfo"\r
+            }\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "/catalog/v1/vnfpackages/{csarId}": {\r
+      "get": {\r
+        "tags": [\r
+          "Catalog"\r
+        ],\r
+        "summary": "query vnf package info",\r
+        "description": "query one vnf package info via vnf package csarId",\r
+        "operationId": "query_vnf_package",\r
+        "consumes": [\r
+          "application/json"\r
+        ],\r
+        "produces": [\r
+          "application/json"\r
+        ],\r
+        "parameters": [\r
+          {\r
+            "name": "csarId",\r
+            "in": "path",\r
+            "description": "csar id of vnf package",\r
+            "required": true,\r
+            "type": "string"\r
+          }\r
+        ],\r
+        "responses": {\r
+          "200": {\r
+            "description": "successful operation",\r
+            "schema": {\r
+              "$ref": "#/definitions/VnfPkgDetailInfo"\r
+            }\r
+          },\r
+          "500": {\r
+            "description": "internal error"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "/nslcm/vl/vnfms/{vnfmid}":{\r
+      "get": {\r
+        "tags": [\r
+          "NSLCM"\r
+        ],\r
+        "summary": "Query VNFM register info",\r
+        "description": "query VNFM register info",\r
+        "operationId": "query_vnfm_info",\r
+        "consumes": [\r
+          "application/json"\r
+        ],\r
+        "produces": [\r
+          "application/json"\r
+        ],\r
+        "parameters": [\r
+          {\r
+            "name": "vnfmid",\r
+            "in": "path",\r
+            "description": "vnfm id",\r
+            "required": true,\r
+            "type": "string"\r
+          }\r
+        ],\r
+        "responses": {\r
+          "200": {\r
+            "description": "successful operation",\r
+            "schema": {\r
+              "$ref": "#/definitions/VnfmInfo"\r
+            }\r
+          },\r
+          "500": {\r
+            "description": "internal error"\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "/nslcm/vl/vims/{vimid}":{\r
+      "get": {\r
+        "tags": [\r
+          "NSLCM"\r
+        ],\r
+        "summary": "Query VIM register info",\r
+        "description": "query VIM register info",\r
+        "operationId": "query_VIM_info",\r
+        "consumes": [\r
+          "application/json"\r
+        ],\r
+        "produces": [\r
+          "application/json"\r
+        ],\r
+        "parameters": [\r
+          {\r
+            "name": "vimid",\r
+            "in": "path",\r
+            "description": "vim id",\r
+            "required": true,\r
+            "type": "string"\r
+          }\r
+        ],\r
+        "responses": {\r
+          "200": {\r
+            "description": "successful operation",\r
+            "schema": {\r
+              "$ref": "#/definitions/VimInfo"\r
+            }\r
+          },\r
+          "500": {\r
+            "description": "internal error"\r
+          }\r
+        }\r
+      }\r
+    },    \r
+  },\r
+  "definitions": {\r
+    "jobResponseInfo": {\r
+      "type": "object",\r
+      "properties": {\r
+        "status": {\r
+          "type": "string"\r
+        },\r
+        "progress": {\r
+          "type": "string"\r
+        },\r
+        "statusDescription": {\r
+          "type": "string"\r
+        },\r
+        "errorCode": {\r
+          "type": "string"\r
+        },\r
+        "responseId": {\r
+          "type": "string"\r
+        }\r
+      }\r
+    },\r
+    "JobDetailInfo": {\r
+      "type": "object",\r
+      "properties": {\r
+        "jobId": {\r
+          "type": "string"\r
+        },\r
+        "responseDescriptor": {\r
+          "type": "object",\r
+          "properties": {\r
+            "status": {\r
+              "type": "string"\r
+            },\r
+            "progress": {\r
+              "type": "string"\r
+            },\r
+            "statusDescription": {\r
+              "type": "string"\r
+            },\r
+            "errorCode": {\r
+              "type": "string"\r
+            },\r
+            "responseId": {\r
+              "type": "string"\r
+            },\r
+            "responseHistoryList": {\r
+              "type": "array",\r
+              "items": {\r
+                "$ref": "#/definitions/jobResponseInfo"\r
+              }\r
+            }\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "GrantVNFRequest": {\r
+      "type": "object",\r
+      "properties": {\r
+        "vnfInstanceId": {\r
+          "type": "string"\r
+        },\r
+        "vnfDescriptorId": {\r
+          "type": "string"\r
+        },\r
+        "lifecycleOperation": {\r
+          "type": "string",\r
+          "description": "The value should be Instantiate,Scaleout,Scalein,Scaleup,Scaledown, Heal, Terminal"\r
+        },\r
+        "jobId": {\r
+          "type": "string"\r
+        },\r
+        "addResource": {\r
+          "type": "object",\r
+          "properties": {\r
+            "type": {\r
+              "type": "string",\r
+              "description": " The value should be VDU,VL,CP,Strorage."\r
+            },\r
+            "resourceDefinitionId": {\r
+              "type": "string"\r
+            },\r
+            "vdu": {\r
+              "type": "string"\r
+            }\r
+          }\r
+        },\r
+        "removeResource": {\r
+          "type": "object",\r
+          "properties": {\r
+            "type": {\r
+              "type": "string",\r
+              "description": " The value should be VDU,VL,CP,Strorage."\r
+            },\r
+            "resourceDefinitionId": {\r
+              "type": "string"\r
+            },\r
+            "vdu": {\r
+              "type": "string"\r
+            }\r
+          }\r
+        },\r
+        "additionalParam": {\r
+          "type": "object",\r
+          "description": "The data type is KeyValuePair. Additional parameters passed by the NFVO, specific to the VNF and the LCM operation."\r
+        }\r
+      }\r
+    },\r
+    "GrantVNFResponse": {\r
+      "type": "object",\r
+      "properties": {\r
+        "vim": {\r
+          "type": "object",\r
+          "properties": {\r
+            "vimInfoId": {\r
+              "type": "string"\r
+            },\r
+            "vimId": {\r
+              "type": "string"\r
+            },\r
+            "interfaceInfo": {\r
+              "type": "object",\r
+              "properties": {\r
+                "vimType": {\r
+                  "type": "string",\r
+                  "description": "The vim Type value wil be openstack"\r
+                },\r
+                "apiVersion": {\r
+                  "type": "string",\r
+                  "description": "The api Version Type value will be "\r
+                },\r
+                "protocolType": {\r
+                  "type": "string",\r
+                  "description": "The protocol Type value will be http or https"\r
+                }\r
+              }\r
+            },\r
+            "accessInfo": {\r
+              "type": "string",\r
+              "properties": {\r
+                "tenant": {\r
+                  "type": "string",\r
+                  "description": "Tenant Name of tenant"\r
+                },\r
+                "username": {\r
+                  "type": "string",\r
+                  "description": "Username for login"\r
+                },\r
+                "password": {\r
+                  "type": "string",\r
+                  "description": "Password of login user"\r
+                }\r
+              }\r
+            },\r
+            "interfaceEndpoint": {\r
+              "type": "string",\r
+              "description": "Information about the interface endpoint. It is a URL"\r
+            }\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "VNFLCMNotification": {\r
+      "type": "object",\r
+      "properties": {\r
+        "status": {\r
+          "type": "string"\r
+        },\r
+        "vnfInstanceId": {\r
+          "type": "string"\r
+        },\r
+        "operation": {\r
+          "type": "string"\r
+        },\r
+        "jobId": {\r
+          "type": "string"\r
+        },\r
+        "affectedVnfc": {\r
+          "type": "object",\r
+          "properties": {\r
+            "vnfcInstanceId": {\r
+              "type": "string",\r
+              "description": "Identifier of the VNFC instance"\r
+            },\r
+            "vduId": {\r
+              "type": "string",\r
+              "description": "Identifier of the VDU in the VNFD"\r
+            },\r
+            "changeType": {\r
+              "type": "string",\r
+              "description": "Signals the type of change: added,removed, modified"\r
+            },\r
+            "vimid": {\r
+              "type": "string",\r
+              "description": "Identifier of vim"\r
+            },\r
+            "vmid": {\r
+              "type": "string",\r
+              "description": "Identifier of virtual machine"\r
+            },\r
+            "vmname": {\r
+              "type": "string",\r
+              "description": "Name of virtual machine"\r
+            }\r
+          }\r
+        },\r
+        "affectedVl": {\r
+          "type": "object",\r
+          "properties": {\r
+            "vlInstanceId": {\r
+              "type": "string",\r
+              "description": "Identifier of the VL instance"\r
+            },\r
+            "vldid": {\r
+              "type": "string",\r
+              "description": "Identifier of the VLD in the VNFD"\r
+            },\r
+            "changeType": {\r
+              "type": "string",\r
+              "description": "Signals the type of change: vl_added,vl_removed,vl_modified"\r
+            },\r
+            "networkResource": {\r
+              "type": "object",\r
+              "description": "storage Resource",\r
+              "properties": {\r
+                "resourceType": {\r
+                  "type": "string",\r
+                  "description": "The value should be vm,volume,network,port"\r
+                },\r
+                "resourceId": {\r
+                  "type": "string",\r
+                  "description": "Identifier of the resource in the scope of the VIM"\r
+                },\r
+                "resourceName": {\r
+                  "type": "string",\r
+                  "description": "Resource name in the vim"\r
+                }\r
+              }\r
+            }\r
+          }\r
+        },\r
+        "affectedVirtualStorage": {\r
+          "type": "object",\r
+          "properties": {\r
+            "vsInstanceId": {\r
+              "type": "string",\r
+              "description": "Identifier of the VL instance"\r
+            },\r
+            "vsdId": {\r
+              "type": "string",\r
+              "description": "Identifier of the VLD in the VNFD"\r
+            },\r
+            "changeType": {\r
+              "type": "string",\r
+              "description": "Signals the type of change: vl_added,vl_removed,vl_modified"\r
+            },\r
+            "storageResource": {\r
+              "type": "object",\r
+              "description": "storage Resource",\r
+              "properties": {\r
+                "resourceType": {\r
+                  "type": "string",\r
+                  "description": "The value should be vm,volume,network,port"\r
+                },\r
+                "resourceId": {\r
+                  "type": "string",\r
+                  "description": "Identifier of the resource in the scope of the VIM"\r
+                },\r
+                "resourceName": {\r
+                  "type": "string",\r
+                  "description": "Resource name in the vim"\r
+                }\r
+              }\r
+            }\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "VnfInstantiateRequest": {\r
+      "type": "object",\r
+      "properties": {\r
+        "vnfInstanceName": {\r
+          "type": "string"\r
+        },\r
+        "vnfPackageId": {\r
+          "type": "string"\r
+        },\r
+        "vnfDescriptorId": {\r
+          "type": "string"\r
+        },        \r
+        "vnfInstanceDescription": {\r
+          "type": "string"\r
+        },\r
+        "extVirtualLink": {\r
+          "type": "array",\r
+          "items": {\r
+              "$ref": "#/definitions/extVirtualLinkInfo"\r
+          }\r
+        },\r
+        "additionalParam": {\r
+          "type": "object"\r
+        }\r
+      }\r
+    },\r
+    "extVirtualLinkInfo":{\r
+        "type": "object",\r
+        "properties": {\r
+          "vlInstanceId": {\r
+            "type": "string"\r
+          },\r
+          "networkId": {\r
+            "type": "string"\r
+          },\r
+          "cpdId": {\r
+            "type": "string"\r
+          },\r
+          "vim": {\r
+            "$ref": "#/definitions/vimInfo"\r
+          }\r
+        }\r
+    },\r
+            \r
+    "VnfInstantiateResponse": {\r
+      "type": "object",\r
+      "properties": {\r
+        "vnfInstanceId": {\r
+          "type": "string"\r
+        },\r
+        "jobId": {\r
+          "type": "string"\r
+        }\r
+      }\r
+    },\r
+    "VnfScaleRequest":{\r
+      "type": "object",\r
+      "properties": {\r
+        "type": {\r
+          "type": "string",\r
+          "description": "The VNF scale type value should be SCALE_OUT, SCALE_IN"\r
+        },\r
+        "aspectId":{\r
+          "type": "string",\r
+          "description": "Identifies the aspect of the VNF that is requested to be scaled"          \r
+        },\r
+        "numberOfSteps": {\r
+          "type": "string",\r
+          "description": "Number of scaling steps to be executed as part of this ScaleVnf operation. It shall be a positive number" \r
+        },\r
+        "additionalParam":{\r
+          "type": "object",\r
+          "description": "Additional parameters passed by the NFVO as input to the scaling process, specific to the VNF being scaled" \r
+        } \r
+      }\r
+    },\r
+    "VnfHealRequest":{\r
+      "type": "object",\r
+      "properties": {\r
+        "action": {\r
+          "type": "string"\r
+        },\r
+        "affectedvm": {\r
+          "type": "object",\r
+          "properties": {\r
+            "vimid":{\r
+              "type": "string"\r
+            },\r
+           "vduid": {\r
+              "type": "string"\r
+           },\r
+          "vmname":{\r
+              "type": "string"\r
+           }\r
+          }\r
+        }\r
+      }\r
+    },\r
+    "VnfTerminateRequest":{\r
+      "type": "object",\r
+      "properties": {\r
+        "terminationType": {\r
+          "type": "string"\r
+        },\r
+        "gracefulTerminationTimeout": {\r
+          "type": "string"\r
+        }        \r
+      }      \r
+    },\r
+    "JobInfo": {\r
+      "type": "object",\r
+      "properties": {\r
+        "jobId": {\r
+          "type": "string"\r
+        }\r
+      }\r
+    },\r
+    "VnfInfo": {\r
+      "type": "object",\r
+      "properties": {\r
+        "vnfInstanceId": {\r
+          "type": "string"\r
+        },\r
+        "vnfInstanceName": {\r
+          "type": "string"\r
+        },\r
+        "vnfInstanceDescription": {\r
+          "type": "string"\r
+        },\r
+        "vnfdId": {\r
+          "type": "string"\r
+        },        \r
+        "vnfPackageId": {\r
+          "type": "string"\r
+        },   \r
+        "version": {\r
+          "type": "string"\r
+        },   \r
+        "vnfProvider": {\r
+          "type": "string"\r
+        },  \r
+        "vnfType": {\r
+          "type": "string"\r
+        },  \r
+        "vnfStatus": {\r
+          "type": "string"\r
+        }\r
+      }\r
+    },\r
+    "vimInfo": {\r
+          "type": "object",\r
+          "properties": {\r
+            "vimInfoId": {\r
+              "type": "string"\r
+            },\r
+            "vimId": {\r
+              "type": "string"\r
+            },\r
+            "interfaceInfo": {\r
+              "type": "object",\r
+              "properties": {\r
+                "vimType": {\r
+                  "type": "string",\r
+                  "description": "The vim Type value wil be openstack"\r
+                },\r
+                "apiVersion": {\r
+                  "type": "string",\r
+                  "description": "The api Version Type value will be "\r
+                },\r
+                "protocolType": {\r
+                  "type": "string",\r
+                  "description": "The protocol Type value will be http or https"\r
+                }\r
+              }\r
+            },\r
+            "accessInfo": {\r
+              "type": "string",\r
+              "properties": {\r
+                "tenant": {\r
+                  "type": "string",\r
+                  "description": "Tenant Name of tenant"\r
+                },\r
+                "username": {\r
+                  "type": "string",\r
+                  "description": "Username for login"\r
+                },\r
+                "password": {\r
+                  "type": "string",\r
+                  "description": "Password of login user"\r
+                }\r
+              }\r
+            },\r
+            "interfaceEndpoint": {\r
+              "type": "string",\r
+              "description": "Information about the interface endpoint. It is a URL"\r
+            }\r
+          }\r
+    },\r
+    "VnfPkgDetailInfo": {\r
+      "type": "object",\r
+      "properties": {\r
+        "csarId": {\r
+          "type": "string",\r
+          "description": "vnf package id, UUID"\r
+        },\r
+        "packageInfo": {\r
+          "$ref": "#/definitions/VnfPkgInfo"\r
+        },\r
+        "imageInfo": {\r
+          "$ref": "#/definitions/VnfPkgImgListInfo"\r
+        },\r
+        "vnfInstanceInfo": {\r
+          "$ref": "#/definitions/VnfInstListInfo"\r
+        }\r
+      }\r
+    },\r
+    "VnfPkgInfo": {\r
+      "type": "object",\r
+      "description": "vnf package infomation",\r
+      "properties": {\r
+        "csarId": {\r
+          "type": "string",\r
+          "description": "vnf package id, UUID"\r
+        },\r
+        "vnfdId": {\r
+          "type": "string",\r
+          "description": "VNF descriptor ID"\r
+        },\r
+        "vnfdProvider": {\r
+          "type": "string",\r
+          "description": "VNF descriptor vendor ID"\r
+        },\r
+        "vnfdVersion": {\r
+          "type": "string",\r
+          "description": "VNF descriptor version"\r
+        },\r
+        "vnfVersion": {\r
+          "type": "string",\r
+          "description": "VNF Software version"\r
+        },\r
+        "downloadUri":{\r
+          "type": "string",\r
+          "description": "The download uri of VNF package"\r
+        }\r
+      }\r
+    },\r
+    "VnfInstListInfo": {\r
+      "type": "array",\r
+      "items": {\r
+        "$ref": "#/definitions/VnfInstInfo"\r
+      }\r
+    },\r
+    "VnfInstInfo": {\r
+      "type": "object",\r
+      "properties": {\r
+        "vnfInstanceId": {\r
+          "type": "string",\r
+          "description": "VNF instance ID"\r
+        },\r
+        "vnfInstanceName": {\r
+          "type": "string",\r
+          "description": "VNF instance name"\r
+        }\r
+      }\r
+    },\r
+    "VnfPkgImgListInfo": {\r
+      "type": "array",\r
+      "items": {\r
+        "$ref": "#/definitions/VnfPkgImgInfo"\r
+      }\r
+    },\r
+    "VnfPkgImgInfo": {\r
+      "type": "object",\r
+      "properties": {\r
+        "fileName": {\r
+          "type": "string",\r
+          "description": "image file name"\r
+        },\r
+        "imageUrl": {\r
+          "type": "string",\r
+          "description": "image file path in the csar or image url in external repository"\r
+        }\r
+      }\r
+    },\r
+    "VnfmInfo": {\r
+      "type": "object",\r
+      "properties": {\r
+        "vnfmId": {\r
+          "type": "string",\r
+          "description": "vnfm Id"\r
+        },\r
+        "name": {\r
+          "type": "string",\r
+          "description": "vnfm name"\r
+        },\r
+        "type": {\r
+          "type": "string",\r
+          "description": "vnfm type"\r
+        },  \r
+        "url": {\r
+          "type": "string",\r
+          "description": "vnfm url"\r
+        },\r
+        "userName": {\r
+          "type": "string",\r
+          "description": "vnfm login username"\r
+        },\r
+        "password": {\r
+          "type": "string",\r
+          "description": "vnfm login password"\r
+        },  \r
+        "vimId": {\r
+          "type": "string",\r
+          "description": "vim Id"\r
+        },\r
+        "vendor": {\r
+          "type": "string",\r
+          "description": "vendor name"\r
+        },\r
+        "version": {\r
+          "type": "string",\r
+          "description": "vnfm version"\r
+        }, \r
+        "description": {\r
+          "type": "string",\r
+          "description": "vnfm description"\r
+        }, \r
+        "certificateUrl": {\r
+          "type": "string",\r
+          "description": "vnfm certificate Url"\r
+        },\r
+        "createTime": {\r
+          "type": "string",\r
+          "description": "vnfm info createTime"\r
+        }\r
+      }      \r
+    },\r
+    "VimInfo": {\r
+      "type": "object",\r
+      "properties": {\r
+        "vimId": {\r
+          "type": "string",\r
+          "description": "vim Id"\r
+        },\r
+        "name": {\r
+          "type": "string",\r
+          "description": "vnfm name"\r
+        },\r
+        "type": {\r
+          "type": "string",\r
+          "description": "vnfm type"\r
+        },  \r
+        "url": {\r
+          "type": "string",\r
+          "description": "vnfm url"\r
+        },\r
+        "userName": {\r
+          "type": "string",\r
+          "description": "vnfm login username"\r
+        },\r
+        "password": {\r
+          "type": "string",\r
+          "description": "vnfm login password"\r
+        },  \r
+        "vendor": {\r
+          "type": "string",\r
+          "description": "vendor name"\r
+        },\r
+        "version": {\r
+          "type": "string",\r
+          "description": "vnfm version"\r
+        }, \r
+        "description": {\r
+          "type": "string",\r
+          "description": "vnfm description"\r
+        }, \r
+        "createTime": {\r
+          "type": "string",\r
+          "description": "vnfm info createTime"\r
+        }\r
+      }      \r
+    }\r
+  }\r
+}
\ No newline at end of file