Fix LCN API inconsistency with code 57/20857/2
authorDenes Nemeth <denes.nemeth@nokia.com>
Thu, 26 Oct 2017 19:24:42 +0000 (21:24 +0200)
committermaopeng zhang <zhang.maopeng1@zte.com.cn>
Fri, 27 Oct 2017 06:56:42 +0000 (06:56 +0000)
Change-Id: Ie120d396d0976df7aff6f0e49fb2b91cabe02540
Issue-Id: VFC-560
Signed-off-by: Denes Nemeth <denes.nemeth@nokia.com>
lcm/swagger/vfc.vnfdriver.swagger.json

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