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