Merge "modify the document API"
[vfc/nfvo/lcm.git] / lcm / swagger / vfc.vnfdriver.swagger.json
1 {
2   "swagger": "2.0",
3   "info": {
4     "version": "1.0.0",
5     "title": "ONAP VNFM Driver Development Related API",
6     "description": "ONAP VNFM Driver Development Related Rest API.",
7     "contact": {
8       "name": "ONAP VFC team",
9       "email": "onap-discuss@lists.onap.org",
10       "url": "https://gerrit.onap.org/r/#/admin/projects/vfc/nfvo/lcm"
11     }
12   },
13   "basePath": "/api",
14   "schemes": [
15     "http",
16     "https"
17   ],
18   "consumes": [
19     "application/json"
20   ],
21   "produces": [
22     "application/json"
23   ],
24   "paths": {
25     "/{vnfmtype}/v1/{vnfmid}/vnfs": {
26       "post": {
27         "tags": [
28           "VNFMDriver"
29         ],
30         "summary": "vnf create&instantiate",
31         "description": "VNF create&instantiate Rest API should be provided by the VNFM Driver",
32         "operationId": "vnf_instantiate",
33         "consumes": [
34           "application/json"
35         ],
36         "produces": [
37           "application/json"
38         ],
39         "parameters": [
40           {
41             "required": true,
42             "type": "string",
43             "description": "The value of vnfmtype should be the SVNFM driver service name",
44             "name": "vnfmtype",
45             "in": "path"
46           },
47           {
48             "required": true,
49             "type": "string",
50             "description": "The value of vnfmid should be the VNFM Instantiate ID",
51             "name": "vnfmid",
52             "in": "path"
53           },
54           {
55             "in": "body",
56             "name": "body",
57             "description": "instantiate request param",
58             "required": true,
59             "schema": {
60               "$ref": "#/definitions/VnfInstantiateRequest"
61             }
62           }
63         ],
64         "responses": {
65           "201": {
66             "description": "",
67             "schema": {
68               "$ref": "#/definitions/VnfInstantiateResponse"
69             }
70           }
71         }
72       }
73     },
74     "/{vnfmtype}/v1/{vnfmid}/vnfs/{vnfInstanceId}/scale": {
75       "post": {
76         "tags": [
77           "VNFMDriver"
78         ],
79         "summary": "vnf Scale",
80         "description": "VNF Scale Rest API should be provided by the VNFM Driver",
81         "operationId": "vnf_scale",
82         "consumes": [
83           "application/json"
84         ],
85         "produces": [
86           "application/json"
87         ],
88         "parameters": [
89           {
90             "required": true,
91             "type": "string",
92             "description": "The value of vnfmtype should be the SVNFM driver service name",
93             "name": "vnfmtype",
94             "in": "path"
95           },
96           {
97             "required": true,
98             "type": "string",
99             "description": "The value of vnfmid should be the VNFM Instantiate ID",
100             "name": "vnfmid",
101             "in": "path"
102           },
103           {
104             "required": true,
105             "type": "string",
106             "description": "The value of vnfInstanceId should be the VNF Instantiate ID",
107             "name": "vnfInstanceId",
108             "in": "path"
109           },
110           {
111             "in": "body",
112             "name": "body",
113             "description": "instantiate request param",
114             "required": true,
115             "schema": {
116               "$ref": "#/definitions/VnfScaleRequest"
117             }
118           }
119         ],
120         "responses": {
121           "201": {
122             "description": "",
123             "schema": {
124               "$ref": "#/definitions/JobInfo"
125             }
126           },
127           "404": {
128             "description": "the VNF instance id is wrong"
129           },
130           "500": {
131             "description": "the url is invalid"
132           }
133         }
134       }
135     },
136     "/{vnfmtype}/v1/{vnfmid}/vnfs/{vnfInstanceId}/heal": {
137       "post": {
138         "tags": [
139           "VNFMDriver"
140         ],
141         "summary": "vnf heal",
142         "description": "VNF Heal Rest API should be provided by the VNFM Driver",
143         "operationId": "vnf_heal",
144         "consumes": [
145           "application/json"
146         ],
147         "produces": [
148           "application/json"
149         ],
150         "parameters": [
151           {
152             "required": true,
153             "type": "string",
154             "description": "The value of vnfmtype should be the SVNFM driver service name",
155             "name": "vnfmtype",
156             "in": "path"
157           },
158           {
159             "required": true,
160             "type": "string",
161             "description": "The value of vnfmid should be the VNFM Instantiate ID",
162             "name": "vnfmid",
163             "in": "path"
164           },
165           {
166             "required": true,
167             "type": "string",
168             "description": "The value of vnfInstanceId should be the VNF Instantiate ID",
169             "name": "vnfInstanceId",
170             "in": "path"
171           },
172           {
173             "in": "body",
174             "name": "body",
175             "description": "instantiate request param",
176             "required": true,
177             "schema": {
178               "$ref": "#/definitions/VnfHealRequest"
179             }
180           }
181         ],
182         "responses": {
183           "201": {
184             "description": "",
185             "schema": {
186               "$ref": "#/definitions/JobInfo"
187             }
188           },
189           "404": {
190             "description": "the VNF instance id is wrong"
191           },
192           "500": {
193             "description": "the url is invalid"
194           }
195         }
196       }
197     },   
198     "/{vnfmtype}/v1/{vnfmid}/vnfs/{vnfInstanceId}/terminate": {    
199       "post": {
200         "tags": [
201           "VNFMDriver"
202         ],
203         "summary": "terminate&delete vnf",
204         "description": "VNF terminate&delete Rest API should be provided by the VNFM Driver",
205         "operationId": "terminate_vnf",
206         "consumes": [
207           "application/json"
208         ],
209         "produces": [
210           "application/json"
211         ],
212         "parameters": [
213           {
214             "required": true,
215             "type": "string",
216             "description": "The value of vnfmtype should be the SVNFM driver service name",
217             "name": "vnfmtype",
218             "in": "path"
219           },
220           {
221             "required": true,
222             "type": "string",
223             "description": "The value of vnfmid should be the VNFM Instantiate ID",
224             "name": "vnfmid",
225             "in": "path"
226           },
227           {
228             "required": true,
229             "type": "string",
230             "description": "The value of vnfInstanceId should be the VNF Instantiate ID",
231             "name": "vnfInstanceId",
232             "in": "path"
233           },
234           {
235             "in": "body",
236             "name": "body",
237             "description": "instantiate request param",
238             "required": true,
239             "schema": {
240               "$ref": "#/definitions/VnfTerminateRequest"
241             }
242           }
243         ],
244         "responses": {
245           "204": {
246             "description": "successful operation",
247             "schema": {
248               "$ref": "#/definitions/JobInfo"
249             }
250           },
251           "404": {
252             "description": "the VNF instance id is wrong"
253           },
254           "500": {
255             "description": "the url is invalid"
256           }
257         }
258       }
259     },
260     "/{vnfmtype}/v1/{vnfmid}/vnfs/{vnfInstanceId}": {
261       "get": {
262         "tags": [
263           "VNFMDriver"
264         ],
265         "summary": "query the specified vnf info",
266         "description": "",
267         "operationId": "query_vnf",
268         "consumes": [
269           "application/json"
270         ],
271         "produces": [
272           "application/json"
273         ],
274         "parameters": [
275           {
276             "required": true,
277             "type": "string",
278             "description": "The value of vnfmtype should be the SVNFM driver service name",
279             "name": "vnfmtype",
280             "in": "path"
281           },
282           {
283             "required": true,
284             "type": "string",
285             "description": "The value of vnfmid should be the VNFM Instantiate ID",
286             "name": "vnfmid",
287             "in": "path"
288           },
289           {
290             "required": true,
291             "type": "string",
292             "description": "The value of vnfInstanceId should be the VNF Instantiate ID",
293             "name": "vnfInstanceId",
294             "in": "path"
295           }
296         ],
297         "responses": {
298           "200": {
299             "description": "successful operation",
300             "schema": {
301               "$ref": "#/definitions/VnfInfo"
302             }
303           },
304           "404": {
305             "description": "the vnf instance id is wrong"
306           },
307           "500": {
308             "description": "the url is invalid"
309           }
310         }
311       }
312     }, 
313     "/nslcm/v1/ns/grantvnf": {
314       "post": {
315         "tags": [
316           "NSLCM"
317         ],
318         "summary": "grantvnf",
319         "description": "Grant VNF, provived by the NSLCM component",
320         "operationId": "grantvnf",
321         "parameters": [
322           {
323             "in": "body",
324             "name": "grantvnf",
325             "description": "Grant VNF Request",
326             "required": true,
327             "schema": {
328               "$ref": "#/definitions/GrantVNFRequest"
329             }
330           }
331         ],
332         "responses": {
333           "202": {
334             "description": "",
335             "schema": {
336               "$ref": "#/definitions/GrantVNFResponse"
337             }
338           },
339           "404": {
340             "description": "URL not found"
341           },
342           "500": {
343             "description": "the url is invalid"
344           }
345         }
346       }
347     },
348     "/nslcm/v1/vnfs/{vnfInstanceId}/Notify": {
349       "post": {
350         "tags": [
351           "NSLCM"
352         ],
353         "summary": "VNF LCM Notification",
354         "description": "VNF LCM Notification API should be provided by NSLCM component",
355         "operationId": "VNF_LCM_Notification",
356         "parameters": [
357           {
358             "required": true,
359             "type": "string",
360             "description": "VNF Instance Id",
361             "name": "vnfInstanceId",
362             "in": "path"
363           },
364           {
365             "in": "body",
366             "name": "vnf Notification",
367             "description": "VNF LCM Notification",
368             "required": true,
369             "schema": {
370               "$ref": "#/definitions/VNFLCMNotification"
371             }
372           }
373         ],
374         "responses": {
375           "202": {
376             "description": ""
377           },
378           "404": {
379             "description": "URL not found"
380           },
381           "500": {
382             "description": "the url is invalid"
383           }
384         }
385       }
386     },
387     "/{vnfmid}/jobs/{jobid}": {
388       "get": {
389         "tags": [
390           "VNFMDriver"
391         ],
392         "summary": "jobstatus",
393         "description": "Job Infomation API should be provided by VNFM Driver",
394         "operationId": "get_jobstatus",
395         "parameters": [
396           {
397             "required": true,
398             "type": "string",
399             "description": "job Id",
400             "name": "jobid",
401             "in": "path"
402           },
403           {
404             "required": true,
405             "type": "string",
406             "description": "The value of vnfmid should be the VNFM Instantiate ID",
407             "name": "vnfmid",
408             "in": "path"
409           },
410           {
411             "required": true,
412             "type": "string",
413             "description": "job response message id",
414             "name": "responseId",
415             "in": "query"
416           }
417         ],
418         "responses": {
419           "202": {
420             "description": "",
421             "schema": {
422               "$ref": "#/definitions/JobDetailInfo"
423             }
424           }
425         }
426       }
427     },
428     "/catalog/v1/vnfpackages/{csarId}": {
429       "get": {
430         "tags": [
431           "Catalog"
432         ],
433         "summary": "query vnf package info",
434         "description": "query one vnf package info via vnf package csarId",
435         "operationId": "query_vnf_package",
436         "consumes": [
437           "application/json"
438         ],
439         "produces": [
440           "application/json"
441         ],
442         "parameters": [
443           {
444             "name": "csarId",
445             "in": "path",
446             "description": "csar id of vnf package",
447             "required": true,
448             "type": "string"
449           }
450         ],
451         "responses": {
452           "200": {
453             "description": "successful operation",
454             "schema": {
455               "$ref": "#/definitions/VnfPkgDetailInfo"
456             }
457           },
458           "500": {
459             "description": "internal error"
460           }
461         }
462       }
463     },
464     "/nslcm/v1/vnfms/{vnfmid}":{
465       "get": {
466         "tags": [
467           "NSLCM"
468         ],
469         "summary": "Query VNFM register info",
470         "description": "query VNFM register info",
471         "operationId": "query_vnfm_info",
472         "consumes": [
473           "application/json"
474         ],
475         "produces": [
476           "application/json"
477         ],
478         "parameters": [
479           {
480             "name": "vnfmid",
481             "in": "path",
482             "description": "vnfm id",
483             "required": true,
484             "type": "string"
485           }
486         ],
487         "responses": {
488           "200": {
489             "description": "successful operation",
490             "schema": {
491               "$ref": "#/definitions/VnfmInfo"
492             }
493           },
494           "404": {
495             "description": "URL not found"
496           },
497           "500": {
498             "description": "internal error"
499           }
500         }
501       }
502     },
503     "/nslcm/v1/vims/{vimid}":{
504       "get": {
505         "tags": [
506           "NSLCM"
507         ],
508         "summary": "Query VIM register info",
509         "description": "query VIM register info",
510         "operationId": "query_VIM_info",
511         "consumes": [
512           "application/json"
513         ],
514         "produces": [
515           "application/json"
516         ],
517         "parameters": [
518           {
519             "name": "vimid",
520             "in": "path",
521             "description": "vim id",
522             "required": true,
523             "type": "string"
524           }
525         ],
526         "responses": {
527           "200": {
528             "description": "successful operation",
529             "schema": {
530               "$ref": "#/definitions/VimInfo"
531             }
532           },
533           "404": {
534             "description": "URL not found"
535           },
536           "500": {
537             "description": "internal error"
538           }
539         }
540       }
541     }
542   },
543   "definitions": {
544     "jobResponseInfo": {
545       "type": "object",
546       "properties": {
547         "status": {
548           "type": "string"
549         },
550         "progress": {
551           "type": "string"
552         },
553         "statusDescription": {
554           "type": "string"
555         },
556         "errorCode": {
557           "type": "string"
558         },
559         "responseId": {
560           "type": "string"
561         }
562       }
563     },
564     "JobStatus" : {
565       "description": "The status of the job",
566       "type": "string",
567       "enum": [
568         "started",
569         "processing",
570         "finished",
571         "error",
572         "timeout"
573       ]
574     },
575     "JobDetailInfo": {
576       "type": "object",
577       "properties": {
578         "jobId": {
579           "type": "string"
580         },
581         "responseDescriptor": {
582           "type": "object",
583           "properties": {
584             "status": {
585               "$ref": "#/definitions/JobStatus",
586               "description": "The status of the job"
587             },
588             "progress": {
589               "type": "string",
590               "description": "The progress of the job. Value between 0 and 100."
591             },
592             "statusDescription": {
593               "type": "string",
594               "description": "The reason of the current status of the job."
595             },
596             "errorCode": {
597               "type": "string"
598             },
599             "responseId": {
600               "type": "string"
601             },
602             "responseHistoryList": {
603               "type": "array",
604               "items": {
605                 "$ref": "#/definitions/jobResponseInfo"
606               }
607             }
608           }
609         }
610       }
611     },
612     "ChangeType" : {
613       "description": "The type of the change",
614       "type": "string",
615       "enum": [
616         "VDU"
617       ]
618     },
619     "ResourceChange" : {
620        "type": "object",
621        "properties": {
622          "type": {
623            "$ref": "#/definitions/ChangeType",
624            "description": "The type of the resource."
625          },
626          "resourceDefinitionId": {
627            "description": "The identifier of the resource within the grant request.",
628            "type": "string"
629          },
630          "vdu": {
631            "description": "The identifier of the VDU.",
632            "type": "string"
633          }
634        }
635     },
636     "OperationType" : {
637       "description": "The type of operation",
638       "type": "string",
639       "enum": [
640         "Terminal",
641         "Instantiate",
642         "Scalein",
643         "Scaleout",
644         "Scaledown",
645         "Scaleup",
646         "Heal"
647       ]
648     },
649     "GrantVNFRequest": {
650       "type": "object",
651       "properties": {
652         "vnfInstanceId": {
653           "type": "string"
654         },
655         "vnfDescriptorId": {
656           "type": "string"
657         },
658         "lifecycleOperation": {
659           "description" : "The type of the operation.",
660           "$ref": "#/definitions/OperationType"
661         },
662         "jobId": {
663           "type": "string"
664         },
665         "addResource": {
666           "type": "array",
667           "items": {
668             "$ref": "#/definitions/ResourceChange"
669           }
670         },
671         "removeResource": {
672           "type": "array",
673           "items": {
674             "$ref": "#/definitions/ResourceChange"
675           }
676         },
677         "additionalParam": {
678           "type": "object",
679           "description": "The data type is KeyValuePair. Additional parameters passed by the NFVO, specific to the VNF and the LCM operation."
680         }
681       }
682     },
683     "GrantVNFResponse": {
684       "type": "object",
685       "properties": {
686         "vim": {
687           "type": "object",
688           "properties": {
689             "vimInfoId": {
690               "type": "string"
691             },
692             "vimId": {
693               "type": "string"
694             },
695             "interfaceInfo": {
696               "type": "object",
697               "properties": {
698                 "vimType": {
699                   "type": "string",
700                   "description": "The vim Type value wil be openstack"
701                 },
702                 "apiVersion": {
703                   "type": "string",
704                   "description": "The api Version Type value will be "
705                 },
706                 "protocolType": {
707                   "type": "string",
708                   "description": "The protocol Type value will be http or https"
709                 }
710               }
711             },
712             "accessInfo": {
713               "type": "object",
714               "properties": {
715                 "tenant": {
716                   "type": "string",
717                   "description": "Tenant Name of tenant"
718                 },
719                 "username": {
720                   "type": "string",
721                   "description": "Username for login"
722                 },
723                 "password": {
724                   "type": "string",
725                   "description": "Password of login user"
726                 }
727               }
728             },
729             "interfaceEndpoint": {
730               "type": "string",
731               "description": "Information about the interface endpoint. It is a URL"
732             }
733           }
734         }
735       }
736     },
737     "VnfNotificationType": {
738       "description": "The type of the notification",
739       "type": "string",
740       "enum": [
741         "added",
742         "removed",
743         "modified"
744       ]
745     },
746     "AffectedVnfc": {
747        "type": "object",
748        "properties": {
749          "vnfcInstanceId": {
750            "type": "string",
751            "description": "Identifier of the VNFC instance"
752          },
753          "vduId": {
754            "type": "string",
755            "description": "Identifier of the VDU in the VNFD"
756          },
757          "changeType": {
758            "$ref": "#/definitions/VnfNotificationType",
759            "description": "The type of the change"
760          },
761          "vimid": {
762            "type": "string",
763            "description": "Identifier of vim"
764          },
765          "vmid": {
766            "type": "string",
767            "description": "Identifier of virtual machine"
768          },
769          "vmname": {
770            "type": "string",
771            "description": "Name of virtual machine"
772          }
773        }
774     },
775     "AffectedVirtualLinkType": {
776       "description": "The type of the affected virtual link",
777       "type": "string",
778       "enum": [
779         "network",
780         "port"
781       ]
782     },
783     "AffectedVirtualLink":{
784        "type": "object",
785        "properties": {
786          "vlInstanceId": {
787            "type": "string",
788            "description": "Identifier of the VL instance"
789          },
790          "vldid": {
791            "type": "string",
792            "description": "Identifier of the VLD in the VNFD"
793          },
794          "changeType": {
795            "$ref": "#/definitions/VnfNotificationType",
796            "description": "The type of the change"
797          },
798          "networkResource": {
799            "type": "object",
800            "description": "network Resource",
801            "properties": {
802              "resourceType": {
803                "$ref": "#/definitions/AffectedVirtualLinkType",
804                "description": "Must be network"
805              },
806              "resourceId": {
807                "type": "string",
808                "description": "Identifier of the resource in the scope of the VIM"
809              }
810            }
811          }
812        }
813     },
814     "VnfCpNotificationType": {
815       "description": "The type of the notification for connection points",
816       "type": "string",
817       "enum": [
818         "added",
819         "removed",
820         "changed"
821       ]
822     },
823     "AffectedCp": {
824        "type": "object",
825        "properties": {
826          "virtualLinkInstanceId": {
827            "type": "string",
828            "description": "Identifier of the VL instance"
829          },
830          "cpinstanceid": {
831            "type": "string",
832            "description": "Identifier of the connection point"
833          },
834          "cpdid": {
835            "type": "string",
836            "description": "Identifier of the connection point in the VNFD"
837          },
838          "ownerType": {
839            "type": "string",
840            "description": "The type of the owner."
841          },
842          "ownerId": {
843            "type": "string",
844            "description": "Identifier of the owner. Mandatory if ownerType is specified."
845          },
846          "changeType": {
847            "$ref": "#/definitions/VnfCpNotificationType",
848            "description": "The type of the change"
849          },
850          "portResource": {
851            "type": "object",
852            "description": "port Resource",
853            "properties": {
854              "vimid": {
855                "type": "string",
856                "description": "Identifier of the VIM"
857              },
858              "resourceid": {
859                "type": "string",
860                "description": "Identifier of the resource in the scope of the VIM"
861              },
862              "resourceName": {
863                "type": "string",
864                "description": "Resource name in the vim"
865              },
866              "tenant": {
867                "type": "string",
868                "description": "The identifier of the tenant"
869              },
870              "ipAddress": {
871                "type": "string",
872                "description": "The IP address of the port"
873              },
874              "macAddress": {
875                "type": "string",
876                "description": "The MAC address of the port"               
877              },
878              "instId": {
879                "type": "string",
880                "description": "The instance id of the server to which the port is attached to"
881              }
882            }
883          }
884        }
885     },
886     "AffectedVirtualStorage" : {
887        "type": "object"
888      },
889    "VnfLcmNotificationStatus" : {
890       "description": "The status of the operation",
891       "type": "string",
892       "enum": [
893         "result",
894         "start"
895       ]
896     },
897    "VNFLCMNotification": {
898       "type": "object",
899       "properties": {
900         "status": {
901           "description" : "The status of the operation that triggered the LCN.",
902           "$ref": "#/definitions/VnfLcmNotificationStatus"
903         },
904         "vnfInstanceId": {
905           "type": "string"
906         },
907         "operation": {
908           "description" : "The type of the operation that tiggered the LCN.",
909           "$ref": "#/definitions/OperationType"
910         },
911         "jobId": {
912           "description" : "The identifier fo the job that triggered the LCN.",
913           "type": "string"
914         },
915         "affectedVnfc": {
916           "type": "array",
917           "description": "The affected VNFCs",
918           "items": {
919             "$ref": "#/definitions/AffectedVnfc"
920           }
921         },
922         "affectedCp": {
923           "type": "array",
924           "description": "The affected Connected Points",
925           "items": {
926             "$ref": "#/definitions/AffectedCp"
927           }
928         },
929         "affectedVl": {
930           "type": "array",
931           "description": "The affected virtual links",
932           "items": {
933             "$ref": "#/definitions/AffectedVirtualLink"
934           }
935         },
936         "affectedVirtualStorage": {
937           "type": "array",
938           "description": "The affected virtual storages. (Not supported)",
939           "items": {
940             "$ref": "#/definitions/AffectedVirtualStorage"
941           }
942         }
943       }
944     },
945     "VnfInstantiateRequest": {
946       "type": "object",
947       "properties": {
948         "vnfInstanceName": {
949           "type": "string"
950         },
951         "vnfPackageId": {
952           "type": "string"
953         },
954         "vnfDescriptorId": {
955           "type": "string"
956         },        
957         "vnfInstanceDescription": {
958           "type": "string"
959         },
960         "extVirtualLink": {
961           "type": "array",
962           "items": {
963               "$ref": "#/definitions/extVirtualLinkInfo"
964           }
965         },
966         "additionalParam": {
967           "type": "object"
968         }
969       }
970     },
971     "extVirtualLinkInfo":{
972         "type": "object",
973         "properties": {
974           "vlInstanceId": {
975             "type": "string"
976           },
977           "networkId": {
978             "type": "string"
979           },
980           "cpdId": {
981             "type": "string"
982           },
983           "vim": {
984             "$ref": "#/definitions/vimInfo"
985           }
986         }
987     },
988             
989     "VnfInstantiateResponse": {
990       "type": "object",
991       "properties": {
992         "vnfInstanceId": {
993           "type": "string"
994         },
995         "jobId": {
996           "type": "string"
997         }
998       }
999     },
1000     "ScaleDirection" : {
1001       "description": "The direction of the scaling",
1002       "type": "string",
1003       "enum": [
1004         "SCALE_IN",
1005         "SCALE_OUT"
1006       ]
1007     },
1008     "VnfScaleRequest":{
1009       "type": "object",
1010       "properties": {
1011         "type": {
1012           "description" : "The direction of the scaling.",
1013           "$ref": "#/definitions/ScaleDirection"
1014         },
1015         "aspectId":{
1016           "type": "string",
1017           "description": "Identifies the aspect of the VNF that is requested to be scaled"          
1018         },
1019         "numberOfSteps": {
1020           "type": "string",
1021           "description": "Number of scaling steps to be executed as part of this ScaleVnf operation. It shall be a positive number" 
1022         },
1023         "additionalParam":{
1024           "type": "object",
1025           "description": "Additional parameters passed by the NFVO as input to the scaling process, specific to the VNF being scaled" 
1026         } 
1027       }
1028     },
1029     "VnfHealRequest":{
1030       "type": "object",
1031       "properties": {
1032         "action": {
1033           "type": "string"
1034         },
1035         "affectedvm": {
1036           "type": "object",
1037           "properties": {
1038             "vimid":{
1039               "type": "string"
1040             },
1041            "vduid": {
1042               "type": "string"
1043            },
1044           "vmname":{
1045               "type": "string"
1046            }
1047           }
1048         }
1049       }
1050     },
1051     "VnfTerminationType": {
1052       "description": "The type of the termination.",
1053       "type": "string",
1054       "enum": [
1055         "graceful",
1056         "forceful"
1057       ]
1058     },
1059     "VnfTerminateRequest":{
1060       "type": "object",
1061       "properties": {
1062         "terminationType": {
1063           "description" : "The type of the termination",
1064           "$ref": "#/definitions/VnfTerminationType"
1065         },
1066         "gracefulTerminationTimeout": {
1067           "description": "The time interval(second) to wait for the VNF to be taken out of service during graceful termination.",
1068           "type": "string"
1069         }
1070       }      
1071     },
1072     "JobInfo": {
1073       "type": "object",
1074       "properties": {
1075         "jobId": {
1076           "type": "string"
1077         }
1078       }
1079     },
1080     "VnfInfo": {
1081       "type": "object",
1082       "properties": {
1083         "vnfInstanceId": {
1084           "type": "string"
1085         },
1086         "vnfInstanceName": {
1087           "type": "string"
1088         },
1089         "vnfInstanceDescription": {
1090           "type": "string"
1091         },
1092         "vnfdId": {
1093           "type": "string"
1094         },        
1095         "vnfPackageId": {
1096           "type": "string"
1097         },   
1098         "version": {
1099           "type": "string"
1100         },   
1101         "vnfProvider": {
1102           "type": "string"
1103         },  
1104         "vnfType": {
1105           "type": "string"
1106         },  
1107         "vnfStatus": {
1108           "type": "string"
1109         }
1110       }
1111     },
1112     "vimInfo": {
1113           "type": "object",
1114           "properties": {
1115             "vimInfoId": {
1116               "type": "string"
1117             },
1118             "vimId": {
1119               "type": "string"
1120             },
1121             "interfaceInfo": {
1122               "type": "object",
1123               "properties": {
1124                 "vimType": {
1125                   "type": "string",
1126                   "description": "The vim Type value wil be openstack"
1127                 },
1128                 "apiVersion": {
1129                   "type": "string",
1130                   "description": "The api Version Type value will be "
1131                 },
1132                 "protocolType": {
1133                   "type": "string",
1134                   "description": "The protocol Type value will be http or https"
1135                 }
1136               }
1137             },
1138             "accessInfo": {
1139               "type": "object",
1140               "properties": {
1141                 "tenant": {
1142                   "type": "string",
1143                   "description": "Tenant Name of tenant"
1144                 },
1145                 "username": {
1146                   "type": "string",
1147                   "description": "Username for login"
1148                 },
1149                 "password": {
1150                   "type": "string",
1151                   "description": "Password of login user"
1152                 }
1153               }
1154             },
1155             "interfaceEndpoint": {
1156               "type": "string",
1157               "description": "Information about the interface endpoint. It is a URL"
1158             }
1159           }
1160     },
1161     "VnfPkgDetailInfo": {
1162       "type": "object",
1163       "properties": {
1164         "csarId": {
1165           "type": "string",
1166           "description": "vnf package id, UUID"
1167         },
1168         "packageInfo": {
1169           "$ref": "#/definitions/VnfPkgInfo"
1170         },
1171         "imageInfo": {
1172           "$ref": "#/definitions/VnfPkgImgListInfo"
1173         },
1174         "vnfInstanceInfo": {
1175           "$ref": "#/definitions/VnfInstListInfo"
1176         }
1177       }
1178     },
1179     "VnfPkgInfo": {
1180       "type": "object",
1181       "description": "vnf package infomation",
1182       "properties": {
1183         "csarId": {
1184           "type": "string",
1185           "description": "vnf package id, UUID"
1186         },
1187         "vnfdId": {
1188           "type": "string",
1189           "description": "VNF descriptor ID"
1190         },
1191         "vnfdProvider": {
1192           "type": "string",
1193           "description": "VNF descriptor vendor ID"
1194         },
1195         "vnfdVersion": {
1196           "type": "string",
1197           "description": "VNF descriptor version"
1198         },
1199         "vnfVersion": {
1200           "type": "string",
1201           "description": "VNF Software version"
1202         },
1203         "downloadUri":{
1204           "type": "string",
1205           "description": "The download uri of VNF package"
1206         }
1207       }
1208     },
1209     "VnfInstListInfo": {
1210       "type": "array",
1211       "items": {
1212         "$ref": "#/definitions/VnfInstInfo"
1213       }
1214     },
1215     "VnfInstInfo": {
1216       "type": "object",
1217       "properties": {
1218         "vnfInstanceId": {
1219           "type": "string",
1220           "description": "VNF instance ID"
1221         },
1222         "vnfInstanceName": {
1223           "type": "string",
1224           "description": "VNF instance name"
1225         }
1226       }
1227     },
1228     "VnfPkgImgListInfo": {
1229       "type": "array",
1230       "items": {
1231         "$ref": "#/definitions/VnfPkgImgInfo"
1232       }
1233     },
1234     "VnfPkgImgInfo": {
1235       "type": "object",
1236       "properties": {
1237         "fileName": {
1238           "type": "string",
1239           "description": "image file name"
1240         },
1241         "imageUrl": {
1242           "type": "string",
1243           "description": "image file path in the csar or image url in external repository"
1244         }
1245       }
1246     },
1247     "VnfmInfo": {
1248       "type": "object",
1249       "properties": {
1250         "vnfmId": {
1251           "type": "string",
1252           "description": "vnfm Id"
1253         },
1254         "name": {
1255           "type": "string",
1256           "description": "vnfm name"
1257         },
1258         "type": {
1259           "type": "string",
1260           "description": "vnfm type"
1261         },  
1262         "url": {
1263           "type": "string",
1264           "description": "vnfm url"
1265         },
1266         "userName": {
1267           "type": "string",
1268           "description": "vnfm login username"
1269         },
1270         "password": {
1271           "type": "string",
1272           "description": "vnfm login password"
1273         },  
1274         "vimId": {
1275           "type": "string",
1276           "description": "vim Id"
1277         },
1278         "vendor": {
1279           "type": "string",
1280           "description": "vendor name"
1281         },
1282         "version": {
1283           "type": "string",
1284           "description": "vnfm version"
1285         }, 
1286         "description": {
1287           "type": "string",
1288           "description": "vnfm description"
1289         }, 
1290         "certificateUrl": {
1291           "type": "string",
1292           "description": "vnfm certificate Url"
1293         },
1294         "createTime": {
1295           "type": "string",
1296           "description": "vnfm info createTime"
1297         }
1298       }      
1299     },
1300     "VimInfo": {
1301       "type": "object",
1302       "properties": {
1303         "vimId": {
1304           "type": "string",
1305           "description": "vim Id"
1306         },
1307         "name": {
1308           "type": "string",
1309           "description": "vim name"
1310         },
1311         "type": {
1312           "type": "string",
1313           "description": "vim type"
1314         },  
1315         "url": {
1316           "type": "string",
1317           "description": "vim url"
1318         },
1319         "userName": {
1320           "type": "string",
1321           "description": "vim login username"
1322         },
1323         "password": {
1324           "type": "string",
1325           "description": "vim login password"
1326         },  
1327         "vendor": {
1328           "type": "string",
1329           "description": "vendor name"
1330         },
1331         "version": {
1332           "type": "string",
1333           "description": "vim version"
1334         }, 
1335         "description": {
1336           "type": "string",
1337           "description": "vim description"
1338         }, 
1339         "createTime": {
1340           "type": "string",
1341           "description": "vim info createTime"
1342         },
1343         "sslCacert": {
1344           "type": "string",
1345           "description": "The collection of trusted certificates towards the VIM connection."
1346         },
1347         "sslInsecure": {
1348           "type": "string",
1349           "description": "Whether to verify VIM's certificate"         
1350         },
1351         "status": {
1352           "type": "string",
1353           "description": "The status of external system"
1354         }
1355       }      
1356     }
1357   }
1358 }