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