Fixes in LCM
[vfc/nfvo/driver/vnfm/svnfm.git] / nokiav2 / generatedapis / src / main / resources / 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/ns/{vnfmid}/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": "VNFM Instance Id",
361             "name": "vnfmid",
362             "in": "path"
363           },
364           {
365             "required": true,
366             "type": "string",
367             "description": "VNF Instance Id",
368             "name": "vnfInstanceId",
369             "in": "path"
370           },
371           {
372             "in": "body",
373             "name": "vnf Notification",
374             "description": "VNF LCM Notification",
375             "required": true,
376             "schema": {
377               "$ref": "#/definitions/VNFLCMNotification"
378             }
379           }
380         ],
381         "responses": {
382           "202": {
383             "description": ""
384           },
385           "404": {
386             "description": "URL not found"
387           },
388           "500": {
389             "description": "the url is invalid"
390           }
391         }
392       }
393     },
394     "/{vnfmid}/jobs/{jobid}": {
395       "get": {
396         "tags": [
397           "VnfmDriver"
398         ],
399         "summary": "jobstatus",
400         "description": "Job Infomation API should be provided by VNFM Driver",
401         "operationId": "get_jobstatus",
402         "parameters": [
403           {
404             "required": true,
405             "type": "string",
406             "description": "job Id",
407             "name": "jobid",
408             "in": "path"
409           },
410           {
411             "required": true,
412             "type": "string",
413             "description": "The value of vnfmid should be the VNFM Instantiate ID",
414             "name": "vnfmid",
415             "in": "path"
416           },
417           {
418             "required": true,
419             "type": "string",
420             "description": "job response message id",
421             "name": "responseId",
422             "in": "query"
423           }
424         ],
425         "responses": {
426           "202": {
427             "description": "",
428             "schema": {
429               "$ref": "#/definitions/JobDetailInfo"
430             }
431           }
432         }
433       }
434     },
435     "/catalog/v1/vnfpackages/{csarId}": {
436       "get": {
437         "tags": [
438           "Catalog"
439         ],
440         "summary": "query vnf package info",
441         "description": "query one vnf package info via vnf package csarId",
442         "operationId": "query_vnf_package",
443         "consumes": [
444           "application/json"
445         ],
446         "produces": [
447           "application/json"
448         ],
449         "parameters": [
450           {
451             "name": "csarId",
452             "in": "path",
453             "description": "csar id of vnf package",
454             "required": true,
455             "type": "string"
456           }
457         ],
458         "responses": {
459           "200": {
460             "description": "successful operation",
461             "schema": {
462               "$ref": "#/definitions/VnfPkgDetailInfo"
463             }
464           },
465           "500": {
466             "description": "internal error"
467           }
468         }
469       }
470     },
471     "/nslcm/v1/vnfms/{vnfmid}":{
472       "get": {
473         "tags": [
474           "Nslcm"
475         ],
476         "summary": "Query VNFM register info",
477         "description": "query VNFM register info",
478         "operationId": "query_vnfm_info",
479         "consumes": [
480           "application/json"
481         ],
482         "produces": [
483           "application/json"
484         ],
485         "parameters": [
486           {
487             "name": "vnfmid",
488             "in": "path",
489             "description": "vnfm id",
490             "required": true,
491             "type": "string"
492           }
493         ],
494         "responses": {
495           "200": {
496             "description": "successful operation",
497             "schema": {
498               "$ref": "#/definitions/VnfmInfo"
499             }
500           },
501           "404": {
502             "description": "URL not found"
503           },
504           "500": {
505             "description": "internal error"
506           }
507         }
508       }
509     },
510     "/nslcm/v1/vims/{vimid}":{
511       "get": {
512         "tags": [
513           "Nslcm"
514         ],
515         "summary": "Query VIM register info",
516         "description": "query VIM register info",
517         "operationId": "query_VIM_info",
518         "consumes": [
519           "application/json"
520         ],
521         "produces": [
522           "application/json"
523         ],
524         "parameters": [
525           {
526             "name": "vimid",
527             "in": "path",
528             "description": "vim id",
529             "required": true,
530             "type": "string"
531           }
532         ],
533         "responses": {
534           "200": {
535             "description": "successful operation",
536             "schema": {
537               "$ref": "#/definitions/VimInfo"
538             }
539           },
540           "404": {
541             "description": "URL not found"
542           },
543           "500": {
544             "description": "internal error"
545           }
546         }
547       }
548     }
549   },
550   "definitions": {
551     "jobResponseInfo": {
552       "type": "object",
553       "properties": {
554         "status": {
555           "type": "string"
556         },
557         "progress": {
558           "type": "string"
559         },
560         "statusDescription": {
561           "type": "string"
562         },
563         "errorCode": {
564           "type": "string"
565         },
566         "responseId": {
567           "type": "string"
568         }
569       }
570     },
571     "JobStatus" : {
572       "description": "The status of the job",
573       "type": "string",
574       "enum": [
575         "started",
576         "processing",
577         "finished",
578         "error",
579         "timeout"
580       ]
581     },
582     "JobDetailInfo": {
583       "type": "object",
584       "properties": {
585         "jobId": {
586           "type": "string"
587         },
588         "responseDescriptor": {
589           "type": "object",
590           "properties": {
591             "status": {
592               "$ref": "#/definitions/JobStatus",
593               "description": "The status of the job"
594             },
595             "progress": {
596               "type": "string",
597               "description": "The progress of the job. Value between 0 and 100."
598             },
599             "statusDescription": {
600               "type": "string",
601               "description": "The reason of the current status of the job."
602             },
603             "errorCode": {
604               "type": "string"
605             },
606             "responseId": {
607               "type": "string"
608             },
609             "responseHistoryList": {
610               "type": "array",
611               "items": {
612                 "$ref": "#/definitions/jobResponseInfo"
613               }
614             }
615           }
616         }
617       }
618     },
619     "ChangeType" : {
620       "description": "The type of the change",
621       "type": "string",
622       "enum": [
623         "VDU"
624       ]
625     },
626     "ResourceChange" : {
627        "type": "object",
628        "properties": {
629          "type": {
630            "$ref": "#/definitions/ChangeType",
631            "description": "The type of the resource."
632          },
633          "resourceDefinitionId": {
634            "description": "The identifier of the resource within the grant request.",
635            "type": "string"
636          },
637          "vdu": {
638            "description": "The identifier of the VDU.",
639            "type": "string"
640          }
641        }
642     },
643     "OperationType" : {
644       "description": "The type of operation",
645       "type": "string",
646       "enum": [
647         "Terminal",
648         "Instantiate",
649         "Scalein",
650         "Scaleout",
651         "Scaledown",
652         "Scaleup",
653         "Heal"
654       ]
655     },
656     "GrantVNFRequest": {
657       "type": "object",
658       "properties": {
659         "vnfInstanceId": {
660           "type": "string"
661         },
662         "vnfDescriptorId": {
663           "type": "string"
664         },
665         "lifecycleOperation": {
666           "description" : "The type of the operation.",
667           "$ref": "#/definitions/OperationType"
668         },
669         "jobId": {
670           "type": "string"
671         },
672         "addResource": {
673           "type": "array",
674           "items": {
675             "$ref": "#/definitions/ResourceChange"
676           }
677         },
678         "removeResource": {
679           "type": "array",
680           "items": {
681             "$ref": "#/definitions/ResourceChange"
682           }
683         },
684         "additionalParam": {
685           "type": "object",
686           "description": "The data type is KeyValuePair. Additional parameters passed by the NFVO, specific to the VNF and the LCM operation."
687         }
688       }
689     },
690     "GrantVNFResponse": {
691       "type": "object",
692       "properties": {
693         "vim": {
694           "type": "object",
695           "properties": {
696             "vimInfoId": {
697               "type": "string"
698             },
699             "vimId": {
700               "type": "string"
701             },
702             "interfaceInfo": {
703               "type": "object",
704               "properties": {
705                 "vimType": {
706                   "type": "string",
707                   "description": "The vim Type value wil be openstack"
708                 },
709                 "apiVersion": {
710                   "type": "string",
711                   "description": "The api Version Type value will be "
712                 },
713                 "protocolType": {
714                   "type": "string",
715                   "description": "The protocol Type value will be http or https"
716                 }
717               }
718             },
719             "accessInfo": {
720               "type": "object",
721               "properties": {
722                 "tenant": {
723                   "type": "string",
724                   "description": "Tenant Name of tenant"
725                 },
726                 "username": {
727                   "type": "string",
728                   "description": "Username for login"
729                 },
730                 "password": {
731                   "type": "string",
732                   "description": "Password of login user"
733                 }
734               }
735             },
736             "interfaceEndpoint": {
737               "type": "string",
738               "description": "Information about the interface endpoint. It is a URL"
739             }
740           }
741         }
742       }
743     },
744     "VnfNotificationType": {
745       "description": "The type of the notification",
746       "type": "string",
747       "enum": [
748         "added",
749         "removed",
750         "modified"
751       ]
752     },
753     "AffectedVnfc": {
754        "type": "object",
755        "properties": {
756          "vnfcInstanceId": {
757            "type": "string",
758            "description": "Identifier of the VNFC instance"
759          },
760          "vduId": {
761            "type": "string",
762            "description": "Identifier of the VDU in the VNFD"
763          },
764          "changeType": {
765            "$ref": "#/definitions/VnfNotificationType",
766            "description": "The type of the change"
767          },
768          "vimid": {
769            "type": "string",
770            "description": "Identifier of vim"
771          },
772          "vmid": {
773            "type": "string",
774            "description": "Identifier of virtual machine"
775          },
776          "vmname": {
777            "type": "string",
778            "description": "Name of virtual machine"
779          }
780        }
781     },
782     "AffectedVirtualLinkType": {
783       "description": "The type of the affected virtual link",
784       "type": "string",
785       "enum": [
786         "network",
787         "port"
788       ]
789     },
790     "AffectedVirtualLink":{
791        "type": "object",
792        "properties": {
793          "vlInstanceId": {
794            "type": "string",
795            "description": "Identifier of the VL instance"
796          },
797          "vldid": {
798            "type": "string",
799            "description": "Identifier of the VLD in the VNFD"
800          },
801          "changeType": {
802            "$ref": "#/definitions/VnfNotificationType",
803            "description": "The type of the change"
804          },
805          "networkResource": {
806            "type": "object",
807            "description": "network Resource",
808            "properties": {
809              "resourceType": {
810                "$ref": "#/definitions/AffectedVirtualLinkType",
811                "description": "Must be network"
812              },
813              "resourceId": {
814                "type": "string",
815                "description": "Identifier of the resource in the scope of the VIM"
816              }
817            }
818          }
819        }
820     },
821     "VnfCpNotificationType": {
822       "description": "The type of the notification for connection points",
823       "type": "string",
824       "enum": [
825         "added",
826         "removed",
827         "changed"
828       ]
829     },
830     "AffectedCp": {
831        "type": "object",
832        "properties": {
833          "virtualLinkInstanceId": {
834            "type": "string",
835            "description": "Identifier of the VL instance"
836          },
837          "cpinstanceid": {
838            "type": "string",
839            "description": "Identifier of the connection point"
840          },
841          "cpdid": {
842            "type": "string",
843            "description": "Identifier of the connection point in the VNFD"
844          },
845          "ownerType": {
846            "type": "string",
847            "description": "The type of the owner."
848          },
849          "ownerId": {
850            "type": "string",
851            "description": "Identifier of the owner. Mandatory if ownerType is specified."
852          },
853          "changeType": {
854            "$ref": "#/definitions/VnfCpNotificationType",
855            "description": "The type of the change"
856          },
857          "portResource": {
858            "type": "object",
859            "description": "port Resource",
860            "properties": {
861              "vimid": {
862                "type": "string",
863                "description": "Identifier of the VIM"
864              },
865              "resourceid": {
866                "type": "string",
867                "description": "Identifier of the resource in the scope of the VIM"
868              },
869              "resourceName": {
870                "type": "string",
871                "description": "Resource name in the vim"
872              },
873              "tenant": {
874                "type": "string",
875                "description": "The identifier of the tenant"
876              },
877              "ipAddress": {
878                "type": "string",
879                "description": "The IP address of the port"
880              },
881              "macAddress": {
882                "type": "string",
883                "description": "The MAC address of the port"               
884              },
885              "instId": {
886                "type": "string",
887                "description": "The instance id of the server to which the port is attached to"
888              }
889            }
890          }
891        }
892     },
893     "AffectedVirtualStorage" : {
894        "type": "object"
895      },
896    "VnfLcmNotificationStatus" : {
897       "description": "The status of the operation",
898       "type": "string",
899       "enum": [
900         "result",
901         "start"
902       ]
903     },
904    "VNFLCMNotification": {
905       "type": "object",
906       "properties": {
907         "status": {
908           "description" : "The status of the operation that triggered the LCN.",
909           "$ref": "#/definitions/VnfLcmNotificationStatus"
910         },
911         "vnfInstanceId": {
912           "type": "string"
913         },
914         "operation": {
915           "description" : "The type of the operation that tiggered the LCN.",
916           "$ref": "#/definitions/OperationType"
917         },
918         "jobId": {
919           "description" : "The identifier fo the job that triggered the LCN.",
920           "type": "string"
921         },
922         "affectedVnfc": {
923           "type": "array",
924           "description": "The affected VNFCs",
925           "items": {
926             "$ref": "#/definitions/AffectedVnfc"
927           }
928         },
929         "affectedCp": {
930           "type": "array",
931           "description": "The affected Connected Points",
932           "items": {
933             "$ref": "#/definitions/AffectedCp"
934           }
935         },
936         "affectedVl": {
937           "type": "array",
938           "description": "The affected virtual links",
939           "items": {
940             "$ref": "#/definitions/AffectedVirtualLink"
941           }
942         },
943         "affectedVirtualStorage": {
944           "type": "array",
945           "description": "The affected virtual storages. (Not supported)",
946           "items": {
947             "$ref": "#/definitions/AffectedVirtualStorage"
948           }
949         }
950       }
951     },
952     "VnfInstantiateRequest": {
953       "type": "object",
954       "properties": {
955         "vnfInstanceName": {
956           "type": "string"
957         },
958         "vnfPackageId": {
959           "type": "string"
960         },
961         "vnfDescriptorId": {
962           "type": "string"
963         },        
964         "vnfInstanceDescription": {
965           "type": "string"
966         },
967         "extVirtualLink": {
968           "type": "array",
969           "items": {
970               "$ref": "#/definitions/extVirtualLinkInfo"
971           }
972         },
973         "additionalParam": {
974           "type": "object"
975         }
976       }
977     },
978     "extVirtualLinkInfo":{
979         "type": "object",
980         "properties": {
981           "resourceSubnetId": {
982             "type": "string",
983             "description": "The provider id of the subnet"
984           },
985           "vlInstanceId": {
986             "type": "string",
987             "description" : "The identifier of the virtual link"
988           },
989           "resourceId": {
990             "type": "string",
991             "description": "The provider id of the network"
992           },
993           "cpdId": {
994             "type": "string",
995             "description": "The identifier of the connection point descriptor"
996           },
997           "vim": {
998             "type": "object",
999             "properties": {
1000                "vimid": {
1001                   "type": "string",
1002                   "description": "The identifier of the VIM"
1003                }
1004             }
1005           }
1006         }
1007     },
1008     "VnfInstantiateResponse": {
1009       "type": "object",
1010       "properties": {
1011         "vnfInstanceId": {
1012           "type": "string"
1013         },
1014         "jobId": {
1015           "type": "string"
1016         }
1017       }
1018     },
1019     "ScaleDirection" : {
1020       "description": "The direction of the scaling",
1021       "type": "string",
1022       "enum": [
1023         "SCALE_IN",
1024         "SCALE_OUT"
1025       ]
1026     },
1027     "VnfScaleRequest":{
1028       "type": "object",
1029       "properties": {
1030         "type": {
1031           "description" : "The direction of the scaling.",
1032           "$ref": "#/definitions/ScaleDirection"
1033         },
1034         "aspectId":{
1035           "type": "string",
1036           "description": "Identifies the aspect of the VNF that is requested to be scaled"          
1037         },
1038         "numberOfSteps": {
1039           "type": "string",
1040           "description": "Number of scaling steps to be executed as part of this ScaleVnf operation. It shall be a positive number" 
1041         },
1042         "additionalParam":{
1043           "type": "object",
1044           "description": "Additional parameters passed by the NFVO as input to the scaling process, specific to the VNF being scaled" 
1045         } 
1046       }
1047     },
1048     "VnfHealRequest":{
1049       "type": "object",
1050       "properties": {
1051         "action": {
1052           "type": "string"
1053         },
1054         "affectedvm": {
1055           "type": "object",
1056           "properties": {
1057             "vimid":{
1058               "type": "string"
1059             },
1060            "vduid": {
1061               "type": "string"
1062            },
1063           "vmname":{
1064               "type": "string"
1065            }
1066           }
1067         }
1068       }
1069     },
1070     "VnfTerminationType": {
1071       "description": "The type of the termination.",
1072       "type": "string",
1073       "enum": [
1074         "graceful",
1075         "forceful"
1076       ]
1077     },
1078     "VnfTerminateRequest":{
1079       "type": "object",
1080       "properties": {
1081         "terminationType": {
1082           "description" : "The type of the termination",
1083           "$ref": "#/definitions/VnfTerminationType"
1084         },
1085         "gracefulTerminationTimeout": {
1086           "description": "The time interval(second) to wait for the VNF to be taken out of service during graceful termination.",
1087           "type": "string"
1088         }
1089       }      
1090     },
1091     "JobInfo": {
1092       "type": "object",
1093       "properties": {
1094         "jobId": {
1095           "type": "string"
1096         }
1097       }
1098     },
1099     "VnfInfo": {
1100       "type": "object",
1101       "properties": {
1102         "vnfInstanceId": {
1103           "type": "string"
1104         },
1105         "vnfInstanceName": {
1106           "type": "string"
1107         },
1108         "vnfInstanceDescription": {
1109           "type": "string"
1110         },
1111         "vnfdId": {
1112           "type": "string"
1113         },        
1114         "vnfPackageId": {
1115           "type": "string"
1116         },   
1117         "version": {
1118           "type": "string"
1119         },   
1120         "vnfProvider": {
1121           "type": "string"
1122         },  
1123         "vnfType": {
1124           "type": "string"
1125         },  
1126         "vnfStatus": {
1127           "type": "string"
1128         }
1129       }
1130     },
1131     "vimInfo": {
1132           "type": "object",
1133           "properties": {
1134             "vimInfoId": {
1135               "type": "string"
1136             },
1137             "vimId": {
1138               "type": "string"
1139             },
1140             "interfaceInfo": {
1141               "type": "object",
1142               "properties": {
1143                 "vimType": {
1144                   "type": "string",
1145                   "description": "The vim Type value wil be openstack"
1146                 },
1147                 "apiVersion": {
1148                   "type": "string",
1149                   "description": "The api Version Type value will be "
1150                 },
1151                 "protocolType": {
1152                   "type": "string",
1153                   "description": "The protocol Type value will be http or https"
1154                 }
1155               }
1156             },
1157             "accessInfo": {
1158               "type": "object",
1159               "properties": {
1160                 "tenant": {
1161                   "type": "string",
1162                   "description": "Tenant Name of tenant"
1163                 },
1164                 "username": {
1165                   "type": "string",
1166                   "description": "Username for login"
1167                 },
1168                 "password": {
1169                   "type": "string",
1170                   "description": "Password of login user"
1171                 }
1172               }
1173             },
1174             "interfaceEndpoint": {
1175               "type": "string",
1176               "description": "Information about the interface endpoint. It is a URL"
1177             }
1178           }
1179     },
1180     "VnfPkgDetailInfo": {
1181       "type": "object",
1182       "properties": {
1183         "csarId": {
1184           "type": "string",
1185           "description": "vnf package id, UUID"
1186         },
1187         "packageInfo": {
1188           "$ref": "#/definitions/VnfPkgInfo"
1189         },
1190         "imageInfo": {
1191           "$ref": "#/definitions/VnfPkgImgListInfo"
1192         },
1193         "vnfInstanceInfo": {
1194           "$ref": "#/definitions/VnfInstListInfo"
1195         }
1196       }
1197     },
1198     "VnfPkgInfo": {
1199       "type": "object",
1200       "description": "vnf package infomation",
1201       "properties": {
1202         "vnfPackageId": {
1203           "type": "string",
1204           "description": "vnf package id (csarId)"
1205         },
1206         "csarName": {
1207           "type": "string",
1208           "description": "The name of the csar"
1209         },
1210         "vnfdId": {
1211           "type": "string",
1212           "description": "VNF descriptor ID"
1213         },
1214         "vnfdProvider": {
1215           "type": "string",
1216           "description": "VNF descriptor vendor ID"
1217         },
1218         "vnfdModel": {
1219           "type": "string",
1220           "description": "The model of the VNF (JSON) encoded to string"
1221         },
1222         "vnfdVersion": {
1223           "type": "string",
1224           "description": "VNF descriptor version"
1225         },
1226         "vnfVersion": {
1227           "type": "string",
1228           "description": "VNF Software version"
1229         },
1230         "downloadUrl":{
1231           "type": "string",
1232           "description": "The URL from which the VNF package can be downloaded"
1233         }
1234       }
1235     },
1236     "VnfInstListInfo": {
1237       "type": "array",
1238       "items": {
1239         "$ref": "#/definitions/VnfInstInfo"
1240       }
1241     },
1242     "VnfInstInfo": {
1243       "type": "object",
1244       "properties": {
1245         "vnfInstanceId": {
1246           "type": "string",
1247           "description": "VNF instance ID"
1248         },
1249         "vnfInstanceName": {
1250           "type": "string",
1251           "description": "VNF instance name"
1252         }
1253       }
1254     },
1255     "VnfPkgImgListInfo": {
1256       "type": "array",
1257       "items": {
1258         "$ref": "#/definitions/VnfPkgImgInfo"
1259       }
1260     },
1261     "VnfPkgImgInfo": {
1262       "type": "object",
1263       "properties": {
1264         "fileName": {
1265           "type": "string",
1266           "description": "image file name"
1267         },
1268         "imageUrl": {
1269           "type": "string",
1270           "description": "image file path in the csar or image url in external repository"
1271         }
1272       }
1273     },
1274     "VnfmInfo": {
1275       "type": "object",
1276       "properties": {
1277         "vnfmId": {
1278           "type": "string",
1279           "description": "vnfm Id"
1280         },
1281         "name": {
1282           "type": "string",
1283           "description": "vnfm name"
1284         },
1285         "type": {
1286           "type": "string",
1287           "description": "vnfm type"
1288         },  
1289         "url": {
1290           "type": "string",
1291           "description": "vnfm url"
1292         },
1293         "userName": {
1294           "type": "string",
1295           "description": "vnfm login username"
1296         },
1297         "password": {
1298           "type": "string",
1299           "description": "vnfm login password"
1300         },  
1301         "vimId": {
1302           "type": "string",
1303           "description": "vim Id"
1304         },
1305         "vendor": {
1306           "type": "string",
1307           "description": "vendor name"
1308         },
1309         "version": {
1310           "type": "string",
1311           "description": "vnfm version"
1312         }, 
1313         "description": {
1314           "type": "string",
1315           "description": "vnfm description"
1316         }, 
1317         "certificateUrl": {
1318           "type": "string",
1319           "description": "vnfm certificate Url"
1320         },
1321         "createTime": {
1322           "type": "string",
1323           "description": "vnfm info createTime"
1324         }
1325       }      
1326     },
1327     "VimInfo": {
1328       "type": "object",
1329       "properties": {
1330         "vimId": {
1331           "type": "string",
1332           "description": "vim Id"
1333         },
1334         "name": {
1335           "type": "string",
1336           "description": "vim name"
1337         },
1338         "type": {
1339           "type": "string",
1340           "description": "vim type"
1341         },  
1342         "url": {
1343           "type": "string",
1344           "description": "vim url"
1345         },
1346         "userName": {
1347           "type": "string",
1348           "description": "vim login username"
1349         },
1350         "password": {
1351           "type": "string",
1352           "description": "vim login password"
1353         },  
1354         "vendor": {
1355           "type": "string",
1356           "description": "vendor name"
1357         },
1358         "domain": {
1359           "type": "string",
1360           "description": "domain"
1361         },
1362         "version": {
1363           "type": "string",
1364           "description": "vim version"
1365         }, 
1366         "description": {
1367           "type": "string",
1368           "description": "vim description"
1369         }, 
1370         "createTime": {
1371           "type": "string",
1372           "description": "vim info createTime"
1373         },
1374         "sslCacert": {
1375           "type": "string",
1376           "description": "The collection of trusted certificates towards the VIM connection."
1377         },
1378         "sslInsecure": {
1379           "type": "string",
1380           "description": "Whether to verify VIM's certificate"         
1381         },
1382         "status": {
1383           "type": "string",
1384           "description": "The status of external system"
1385         }
1386       }      
1387     }
1388   }
1389 }