Merge "Fix LCN API inconsistency with code"
[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/vl/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/vl/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     "JobDetailInfo": {
565       "type": "object",
566       "properties": {
567         "jobId": {
568           "type": "string"
569         },
570         "responseDescriptor": {
571           "type": "object",
572           "properties": {
573             "status": {
574               "type": "string"
575             },
576             "progress": {
577               "type": "string"
578             },
579             "statusDescription": {
580               "type": "string"
581             },
582             "errorCode": {
583               "type": "string"
584             },
585             "responseId": {
586               "type": "string"
587             },
588             "responseHistoryList": {
589               "type": "array",
590               "items": {
591                 "$ref": "#/definitions/jobResponseInfo"
592               }
593             }
594           }
595         }
596       }
597     },
598     "ResourceChange" : {
599        "type": "object",
600        "properties": {
601          "type": {
602            "type": "string",
603            "description": " The value should be VDU,VL,CP,Strorage."
604          },
605          "resourceDefinitionId": {
606            "type": "string"
607          },
608          "vdu": {
609            "type": "string"
610          }
611        }
612     },
613     "GrantVNFRequest": {
614       "type": "object",
615       "properties": {
616         "vnfInstanceId": {
617           "type": "string"
618         },
619         "vnfDescriptorId": {
620           "type": "string"
621         },
622         "lifecycleOperation": {
623           "type": "string",
624           "description": "The value should be Instantiate,Scaleout,Scalein,Scaleup,Scaledown, Heal, Terminal"
625         },
626         "jobId": {
627           "type": "string"
628         },
629         "addResource": {
630           "type": "array",
631           "items": {
632             "$ref": "#/definitions/ResourceChange"
633           }
634         },
635         "removeResource": {
636           "type": "array",
637           "items": {
638             "$ref": "#/definitions/ResourceChange"
639           }
640         },
641         "additionalParam": {
642           "type": "object",
643           "description": "The data type is KeyValuePair. Additional parameters passed by the NFVO, specific to the VNF and the LCM operation."
644         }
645       }
646     },
647     "GrantVNFResponse": {
648       "type": "object",
649       "properties": {
650         "vim": {
651           "type": "object",
652           "properties": {
653             "vimInfoId": {
654               "type": "string"
655             },
656             "vimId": {
657               "type": "string"
658             },
659             "interfaceInfo": {
660               "type": "object",
661               "properties": {
662                 "vimType": {
663                   "type": "string",
664                   "description": "The vim Type value wil be openstack"
665                 },
666                 "apiVersion": {
667                   "type": "string",
668                   "description": "The api Version Type value will be "
669                 },
670                 "protocolType": {
671                   "type": "string",
672                   "description": "The protocol Type value will be http or https"
673                 }
674               }
675             },
676             "accessInfo": {
677               "type": "string",
678               "properties": {
679                 "tenant": {
680                   "type": "string",
681                   "description": "Tenant Name of tenant"
682                 },
683                 "username": {
684                   "type": "string",
685                   "description": "Username for login"
686                 },
687                 "password": {
688                   "type": "string",
689                   "description": "Password of login user"
690                 }
691               }
692             },
693             "interfaceEndpoint": {
694               "type": "string",
695               "description": "Information about the interface endpoint. It is a URL"
696             }
697           }
698         }
699       }
700     },
701     "VnfNotificationType": {
702       "description": "The type of the notification",
703       "type": "string",
704       "enum": [
705         "added",
706         "removed",
707         "modified"
708       ]
709     },
710     "AffectedVnfc": {
711        "type": "object",
712        "properties": {
713          "vnfcInstanceId": {
714            "type": "string",
715            "description": "Identifier of the VNFC instance"
716          },
717          "vduId": {
718            "type": "string",
719            "description": "Identifier of the VDU in the VNFD"
720          },
721          "changeType": {
722            "$ref": "#/definitions/VnfNotificationType",
723            "description": "The type of the change"
724          },
725          "vimid": {
726            "type": "string",
727            "description": "Identifier of vim"
728          },
729          "vmid": {
730            "type": "string",
731            "description": "Identifier of virtual machine"
732          },
733          "vmname": {
734            "type": "string",
735            "description": "Name of virtual machine"
736          }
737        }
738     },
739     "AffectedVirtualLinkType": {
740       "description": "The type of the affected virtual link",
741       "type": "string",
742       "enum": [
743         "network",
744         "port"
745       ]
746     },
747     "AffectedVirtualLink":{
748        "type": "object",
749        "properties": {
750          "vlInstanceId": {
751            "type": "string",
752            "description": "Identifier of the VL instance"
753          },
754          "vldid": {
755            "type": "string",
756            "description": "Identifier of the VLD in the VNFD"
757          },
758          "changeType": {
759            "$ref": "#/definitions/VnfNotificationType",
760            "description": "The type of the change"
761          },
762          "networkResource": {
763            "type": "object",
764            "description": "network Resource",
765            "properties": {
766              "resourceType": {
767                "$ref": "#/definitions/AffectedVirtualLinkType",
768                "description": "Must be network"
769              },
770              "resourceId": {
771                "type": "string",
772                "description": "Identifier of the resource in the scope of the VIM"
773              }
774            }
775          }
776        }
777     },
778     "VnfCpNotificationType": {
779       "description": "The type of the notification for connection points",
780       "type": "string",
781       "enum": [
782         "added",
783         "removed",
784         "changed"
785       ]
786     },
787     "AffectedCp": {
788        "type": "object",
789        "properties": {
790          "virtualLinkInstanceId": {
791            "type": "string",
792            "description": "Identifier of the VL instance"
793          },
794          "cpinstanceid": {
795            "type": "string",
796            "description": "Identifier of the connection point"
797          },
798          "cpdid": {
799            "type": "string",
800            "description": "Identifier of the connection point in the VNFD"
801          },
802          "ownerType": {
803            "type": "string",
804            "description": "The type of the owner."
805          },
806          "ownerId": {
807            "type": "string",
808            "description": "Identifier of the owner. Mandatory if ownerType is specified."
809          },
810          "changeType": {
811            "$ref": "#/definitions/VnfCpNotificationType",
812            "description": "The type of the change"
813          },
814          "portResource": {
815            "type": "object",
816            "description": "port Resource",
817            "properties": {
818              "vimid": {
819                "type": "string",
820                "description": "Identifier of the VIM"
821              },
822              "resourceid": {
823                "type": "string",
824                "description": "Identifier of the resource in the scope of the VIM"
825              },
826              "resourceName": {
827                "type": "string",
828                "description": "Resource name in the vim"
829              },
830              "tenant": {
831                "type": "string",
832                "description": "The identifier of the tenant"
833              },
834              "ipAddress": {
835                "type": "string",
836                "description": "The IP address of the port"
837              },
838              "macAddress": {
839                "type": "string",
840                "description": "The MAC address of the port"               
841              },
842              "instId": {
843                "type": "string",
844                "description": "The instance id of the server to which the port is attached to"
845              }
846            }
847          }
848        }
849     },
850     "AffectedVirtualStorage" : {
851        "type": "object"
852      },
853     "VNFLCMNotification": {
854       "type": "object",
855       "properties": {
856         "status": {
857           "type": "string"
858         },
859         "vnfInstanceId": {
860           "type": "string"
861         },
862         "operation": {
863           "type": "string"
864         },
865         "jobId": {
866           "type": "string"
867         },
868         "affectedVnfc": {
869           "type": "array",
870           "description": "The affected VNFCs",
871           "items": {
872             "$ref": "#/definitions/AffectedVnfc"
873           }
874         },
875         "affectedCp": {
876           "type": "array",
877           "description": "The affected Connected Points",
878           "items": {
879             "$ref": "#/definitions/AffectedCp"
880           }
881         },
882         "affectedVl": {
883           "type": "array",
884           "description": "The affected virtual links",
885           "items": {
886             "$ref": "#/definitions/AffectedVirtualLink"
887           }
888         },
889         "affectedVirtualStorage": {
890           "type": "array",
891           "description": "The affected virtual storages. (Not supported)",
892           "items": {
893             "$ref": "#/definitions/AffectedVirtualStorage"
894           }
895         }
896       }
897     },
898     "VnfInstantiateRequest": {
899       "type": "object",
900       "properties": {
901         "vnfInstanceName": {
902           "type": "string"
903         },
904         "vnfPackageId": {
905           "type": "string"
906         },
907         "vnfDescriptorId": {
908           "type": "string"
909         },        
910         "vnfInstanceDescription": {
911           "type": "string"
912         },
913         "extVirtualLink": {
914           "type": "array",
915           "items": {
916               "$ref": "#/definitions/extVirtualLinkInfo"
917           }
918         },
919         "additionalParam": {
920           "type": "object"
921         }
922       }
923     },
924     "extVirtualLinkInfo":{
925         "type": "object",
926         "properties": {
927           "vlInstanceId": {
928             "type": "string"
929           },
930           "networkId": {
931             "type": "string"
932           },
933           "cpdId": {
934             "type": "string"
935           },
936           "vim": {
937             "$ref": "#/definitions/vimInfo"
938           }
939         }
940     },
941             
942     "VnfInstantiateResponse": {
943       "type": "object",
944       "properties": {
945         "vnfInstanceId": {
946           "type": "string"
947         },
948         "jobId": {
949           "type": "string"
950         }
951       }
952     },
953     "VnfScaleRequest":{
954       "type": "object",
955       "properties": {
956         "type": {
957           "type": "string",
958           "description": "The VNF scale type value should be SCALE_OUT, SCALE_IN"
959         },
960         "aspectId":{
961           "type": "string",
962           "description": "Identifies the aspect of the VNF that is requested to be scaled"          
963         },
964         "numberOfSteps": {
965           "type": "string",
966           "description": "Number of scaling steps to be executed as part of this ScaleVnf operation. It shall be a positive number" 
967         },
968         "additionalParam":{
969           "type": "object",
970           "description": "Additional parameters passed by the NFVO as input to the scaling process, specific to the VNF being scaled" 
971         } 
972       }
973     },
974     "VnfHealRequest":{
975       "type": "object",
976       "properties": {
977         "action": {
978           "type": "string"
979         },
980         "affectedvm": {
981           "type": "object",
982           "properties": {
983             "vimid":{
984               "type": "string"
985             },
986            "vduid": {
987               "type": "string"
988            },
989           "vmname":{
990               "type": "string"
991            }
992           }
993         }
994       }
995     },
996     "VnfTerminateRequest":{
997       "type": "object",
998       "properties": {
999         "terminationType": {
1000           "type": "string"
1001         },
1002         "gracefulTerminationTimeout": {
1003           "type": "string"
1004         }        
1005       }      
1006     },
1007     "JobInfo": {
1008       "type": "object",
1009       "properties": {
1010         "jobId": {
1011           "type": "string"
1012         }
1013       }
1014     },
1015     "VnfInfo": {
1016       "type": "object",
1017       "properties": {
1018         "vnfInstanceId": {
1019           "type": "string"
1020         },
1021         "vnfInstanceName": {
1022           "type": "string"
1023         },
1024         "vnfInstanceDescription": {
1025           "type": "string"
1026         },
1027         "vnfdId": {
1028           "type": "string"
1029         },        
1030         "vnfPackageId": {
1031           "type": "string"
1032         },   
1033         "version": {
1034           "type": "string"
1035         },   
1036         "vnfProvider": {
1037           "type": "string"
1038         },  
1039         "vnfType": {
1040           "type": "string"
1041         },  
1042         "vnfStatus": {
1043           "type": "string"
1044         }
1045       }
1046     },
1047     "vimInfo": {
1048           "type": "object",
1049           "properties": {
1050             "vimInfoId": {
1051               "type": "string"
1052             },
1053             "vimId": {
1054               "type": "string"
1055             },
1056             "interfaceInfo": {
1057               "type": "object",
1058               "properties": {
1059                 "vimType": {
1060                   "type": "string",
1061                   "description": "The vim Type value wil be openstack"
1062                 },
1063                 "apiVersion": {
1064                   "type": "string",
1065                   "description": "The api Version Type value will be "
1066                 },
1067                 "protocolType": {
1068                   "type": "string",
1069                   "description": "The protocol Type value will be http or https"
1070                 }
1071               }
1072             },
1073             "accessInfo": {
1074               "type": "string",
1075               "properties": {
1076                 "tenant": {
1077                   "type": "string",
1078                   "description": "Tenant Name of tenant"
1079                 },
1080                 "username": {
1081                   "type": "string",
1082                   "description": "Username for login"
1083                 },
1084                 "password": {
1085                   "type": "string",
1086                   "description": "Password of login user"
1087                 }
1088               }
1089             },
1090             "interfaceEndpoint": {
1091               "type": "string",
1092               "description": "Information about the interface endpoint. It is a URL"
1093             }
1094           }
1095     },
1096     "VnfPkgDetailInfo": {
1097       "type": "object",
1098       "properties": {
1099         "csarId": {
1100           "type": "string",
1101           "description": "vnf package id, UUID"
1102         },
1103         "packageInfo": {
1104           "$ref": "#/definitions/VnfPkgInfo"
1105         },
1106         "imageInfo": {
1107           "$ref": "#/definitions/VnfPkgImgListInfo"
1108         },
1109         "vnfInstanceInfo": {
1110           "$ref": "#/definitions/VnfInstListInfo"
1111         }
1112       }
1113     },
1114     "VnfPkgInfo": {
1115       "type": "object",
1116       "description": "vnf package infomation",
1117       "properties": {
1118         "csarId": {
1119           "type": "string",
1120           "description": "vnf package id, UUID"
1121         },
1122         "vnfdId": {
1123           "type": "string",
1124           "description": "VNF descriptor ID"
1125         },
1126         "vnfdProvider": {
1127           "type": "string",
1128           "description": "VNF descriptor vendor ID"
1129         },
1130         "vnfdVersion": {
1131           "type": "string",
1132           "description": "VNF descriptor version"
1133         },
1134         "vnfVersion": {
1135           "type": "string",
1136           "description": "VNF Software version"
1137         },
1138         "downloadUri":{
1139           "type": "string",
1140           "description": "The download uri of VNF package"
1141         }
1142       }
1143     },
1144     "VnfInstListInfo": {
1145       "type": "array",
1146       "items": {
1147         "$ref": "#/definitions/VnfInstInfo"
1148       }
1149     },
1150     "VnfInstInfo": {
1151       "type": "object",
1152       "properties": {
1153         "vnfInstanceId": {
1154           "type": "string",
1155           "description": "VNF instance ID"
1156         },
1157         "vnfInstanceName": {
1158           "type": "string",
1159           "description": "VNF instance name"
1160         }
1161       }
1162     },
1163     "VnfPkgImgListInfo": {
1164       "type": "array",
1165       "items": {
1166         "$ref": "#/definitions/VnfPkgImgInfo"
1167       }
1168     },
1169     "VnfPkgImgInfo": {
1170       "type": "object",
1171       "properties": {
1172         "fileName": {
1173           "type": "string",
1174           "description": "image file name"
1175         },
1176         "imageUrl": {
1177           "type": "string",
1178           "description": "image file path in the csar or image url in external repository"
1179         }
1180       }
1181     },
1182     "VnfmInfo": {
1183       "type": "object",
1184       "properties": {
1185         "vnfmId": {
1186           "type": "string",
1187           "description": "vnfm Id"
1188         },
1189         "name": {
1190           "type": "string",
1191           "description": "vnfm name"
1192         },
1193         "type": {
1194           "type": "string",
1195           "description": "vnfm type"
1196         },  
1197         "url": {
1198           "type": "string",
1199           "description": "vnfm url"
1200         },
1201         "userName": {
1202           "type": "string",
1203           "description": "vnfm login username"
1204         },
1205         "password": {
1206           "type": "string",
1207           "description": "vnfm login password"
1208         },  
1209         "vimId": {
1210           "type": "string",
1211           "description": "vim Id"
1212         },
1213         "vendor": {
1214           "type": "string",
1215           "description": "vendor name"
1216         },
1217         "version": {
1218           "type": "string",
1219           "description": "vnfm version"
1220         }, 
1221         "description": {
1222           "type": "string",
1223           "description": "vnfm description"
1224         }, 
1225         "certificateUrl": {
1226           "type": "string",
1227           "description": "vnfm certificate Url"
1228         },
1229         "createTime": {
1230           "type": "string",
1231           "description": "vnfm info createTime"
1232         }
1233       }      
1234     },
1235     "VimInfo": {
1236       "type": "object",
1237       "properties": {
1238         "vimId": {
1239           "type": "string",
1240           "description": "vim Id"
1241         },
1242         "name": {
1243           "type": "string",
1244           "description": "vnfm name"
1245         },
1246         "type": {
1247           "type": "string",
1248           "description": "vnfm type"
1249         },  
1250         "url": {
1251           "type": "string",
1252           "description": "vnfm url"
1253         },
1254         "userName": {
1255           "type": "string",
1256           "description": "vnfm login username"
1257         },
1258         "password": {
1259           "type": "string",
1260           "description": "vnfm login password"
1261         },  
1262         "vendor": {
1263           "type": "string",
1264           "description": "vendor name"
1265         },
1266         "version": {
1267           "type": "string",
1268           "description": "vnfm version"
1269         }, 
1270         "description": {
1271           "type": "string",
1272           "description": "vnfm description"
1273         }, 
1274         "createTime": {
1275           "type": "string",
1276           "description": "vnfm info createTime"
1277         }
1278       }      
1279     }
1280   }
1281 }