blob: f948f70a5ab6f37a039beb0174398c0d967f09a3 [file] [log] [blame]
garciadeblas60e2ee92018-02-27 19:09:51 +01001openapi: 3.0.0
2servers:
3 - description: OSM NB API
4 url: https://osm.etsi.org/nbapi/v1.0.0
5info:
6 description: |
7 This is Open Source MANO Northbound API featuring ETSI NFV SOL005.
8 For more information on OSM, you can visit
9 [http://osm.etsi.org](http://osm.etsi.org) or connect to IRCs
10 [Freenode, #etsi-osm](http://webchat.freenode.net?channels=etsi-osm) or on
11 [OSM IRC, #tech](https://osm.etsi.org:8080/kiwi)
12 version: "1.0.0"
13 title: OSM NB API featuring ETSI NFV SOL005
14 contact:
15 email: OSM_TECH@list.etsi.org
16 license:
17 name: Apache 2.0
18 url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
19tags:
20 - name: 'VNF packages'
21 description: Management operations of VNF descriptors and packages
22 - name: 'NS packages'
23 description: Management operations of NS descriptors and packages
24 - name: 'NS instances'
25 description: Management operations of NS instances
26paths:
27 /nsd/v1/ns_descriptors:
28 get:
29 tags:
30 - "NS packages"
31 summary: Query information about multiple NS descriptor resources
32 description: Query information about multiple NS descriptor resources
33 operationId: getNSDs
34 security:
35 - bearerAuth: []
36 responses:
37 '200':
38 description: OK
39 content:
40 application/json:
41 schema:
42 $ref: '#/components/schemas/ArrayOfNsdInfo'
43 application/yaml:
44 schema:
45 $ref: '#/components/schemas/ArrayOfNsdInfo'
46 '400':
47 $ref: '#/components/responses/BadRequest'
48 '401':
49 $ref: '#/components/responses/Unauthorized'
50 '403':
51 $ref: '#/components/responses/Forbidden'
52 '404':
53 $ref: '#/components/responses/NotFound'
54 '405':
55 $ref: '#/components/responses/MethodNotAllowed'
56 '406':
57 $ref: '#/components/responses/NotAcceptable'
58 '409':
59 $ref: '#/components/responses/Conflict'
60 '422':
61 $ref: '#/components/responses/UnprocessableEntity'
62 '500':
63 $ref: '#/components/responses/InternalServerError'
64 '503':
65 $ref: '#/components/responses/ServiceUnavailable'
66 '5XX':
67 $ref: '#/components/responses/UnexpectedError'
68 default:
69 $ref: '#/components/responses/UnexpectedError'
70 post:
71 tags:
72 - "NS packages"
73 summary: Create a new NS descriptor resource
74 description: Create a new NS descriptor resource
75 operationId: addNSD
76 security:
77 - bearerAuth: []
78 requestBody:
79 $ref: '#/components/requestBodies/CreateNsdInfoRequest'
80 responses:
81 '201':
82 description: Created
garciadeblas63fe88c2018-02-28 19:32:41 +010083 headers:
84 Location:
85 schema:
86 type: string
87 format: uri
garciadeblas60e2ee92018-02-27 19:09:51 +010088 content:
89 application/json:
90 schema:
91 $ref: '#/components/schemas/NsdInfo'
92 application/yaml:
93 schema:
94 $ref: '#/components/schemas/NsdInfo'
95 '400':
96 $ref: '#/components/responses/BadRequest'
97 '401':
98 $ref: '#/components/responses/Unauthorized'
99 '403':
100 $ref: '#/components/responses/Forbidden'
101 '404':
102 $ref: '#/components/responses/NotFound'
103 '405':
104 $ref: '#/components/responses/MethodNotAllowed'
105 '406':
106 $ref: '#/components/responses/NotAcceptable'
107 '409':
108 $ref: '#/components/responses/Conflict'
109 '422':
110 $ref: '#/components/responses/UnprocessableEntity'
111 '500':
112 $ref: '#/components/responses/InternalServerError'
113 '503':
114 $ref: '#/components/responses/ServiceUnavailable'
115 '5XX':
116 $ref: '#/components/responses/UnexpectedError'
117 default:
118 $ref: '#/components/responses/UnexpectedError'
119 '/nsd/v1/ns_descriptors/{nsdInfoId}':
120 get:
121 tags:
122 - "NS packages"
123 summary: Read information about an individual NS descriptor resource
124 description: Read information about an individual NS descriptor resource
125 operationId: getNSD
126 security:
127 - bearerAuth: []
128 responses:
129 '200':
130 description: OK
131 content:
132 application/json:
133 schema:
134 $ref: '#/components/schemas/NsdInfo'
135 application/yaml:
136 schema:
137 $ref: '#/components/schemas/NsdInfo'
138 '400':
139 $ref: '#/components/responses/BadRequest'
140 '401':
141 $ref: '#/components/responses/Unauthorized'
142 '403':
143 $ref: '#/components/responses/Forbidden'
144 '404':
145 $ref: '#/components/responses/NotFound'
146 '405':
147 $ref: '#/components/responses/MethodNotAllowed'
148 '406':
149 $ref: '#/components/responses/NotAcceptable'
150 '409':
151 $ref: '#/components/responses/Conflict'
152 '422':
153 $ref: '#/components/responses/UnprocessableEntity'
154 '500':
155 $ref: '#/components/responses/InternalServerError'
156 '503':
157 $ref: '#/components/responses/ServiceUnavailable'
158 '5XX':
159 $ref: '#/components/responses/UnexpectedError'
160 default:
161 $ref: '#/components/responses/UnexpectedError'
162 delete:
163 tags:
164 - "NS packages"
165 summary: Delete an individual NS descriptor resource
166 description: Delete an individual NS descriptor resource
167 operationId: deleteNSD
168 security:
169 - bearerAuth: []
170 responses:
171 '204':
172 description: No Content
173 '400':
174 $ref: '#/components/responses/BadRequest'
175 '401':
176 $ref: '#/components/responses/Unauthorized'
177 '403':
178 $ref: '#/components/responses/Forbidden'
179 '404':
180 $ref: '#/components/responses/NotFound'
181 '405':
182 $ref: '#/components/responses/MethodNotAllowed'
183 '406':
184 $ref: '#/components/responses/NotAcceptable'
185 '409':
186 $ref: '#/components/responses/Conflict'
187 '422':
188 $ref: '#/components/responses/UnprocessableEntity'
189 '500':
190 $ref: '#/components/responses/InternalServerError'
191 '503':
192 $ref: '#/components/responses/ServiceUnavailable'
193 '5XX':
194 $ref: '#/components/responses/UnexpectedError'
195 default:
196 $ref: '#/components/responses/UnexpectedError'
197 patch:
198 tags:
199 - "NS packages"
200 summary: Modify the operational state and/or the user defined data of an individual NS descriptor resource
201 description: Modify the operational state and/or the user defined data of an individual NS descriptor resource
202 operationId: updateNSD
203 security:
204 - bearerAuth: []
205 requestBody:
206 $ref: '#/components/requestBodies/NsdInfoModifications'
207 responses:
208 '200':
209 description: OK
210 content:
211 application/json:
212 schema:
213 $ref: '#/components/schemas/NsdInfoModifications'
214 application/yaml:
215 schema:
216 $ref: '#/components/schemas/NsdInfoModifications'
217 '400':
218 $ref: '#/components/responses/BadRequest'
219 '401':
220 $ref: '#/components/responses/Unauthorized'
221 '403':
222 $ref: '#/components/responses/Forbidden'
223 '404':
224 $ref: '#/components/responses/NotFound'
225 '405':
226 $ref: '#/components/responses/MethodNotAllowed'
227 '406':
228 $ref: '#/components/responses/NotAcceptable'
229 '409':
230 $ref: '#/components/responses/Conflict'
231 '422':
232 $ref: '#/components/responses/UnprocessableEntity'
233 '500':
234 $ref: '#/components/responses/InternalServerError'
235 '503':
236 $ref: '#/components/responses/ServiceUnavailable'
237 '5XX':
238 $ref: '#/components/responses/UnexpectedError'
239 default:
240 $ref: '#/components/responses/UnexpectedError'
241 '/nsd/v1/ns_descriptors/{nsdInfoId}/nsd_content':
242 get:
243 tags:
244 - "NS packages"
245 summary: Fetch the content of a NSD
246 description: Fetch the content of a NSD
247 operationId: getNSDcontent
248 security:
249 - bearerAuth: []
250 responses:
251 '200':
252 description: OK
253 $ref: '#/components/requestBodies/NsdContent'
254 '206':
255 description: Partial Content
256 headers:
257 Content-Range:
258 schema:
259 type: string
260 $ref: '#/components/requestBodies/NsdContent'
261 '400':
262 $ref: '#/components/responses/BadRequest'
263 '401':
264 $ref: '#/components/responses/Unauthorized'
265 '403':
266 $ref: '#/components/responses/Forbidden'
267 '404':
268 $ref: '#/components/responses/NotFound'
269 '405':
270 $ref: '#/components/responses/MethodNotAllowed'
271 '406':
272 $ref: '#/components/responses/NotAcceptable'
273 '409':
274 $ref: '#/components/responses/Conflict'
275 '422':
276 $ref: '#/components/responses/UnprocessableEntity'
277 '500':
278 $ref: '#/components/responses/InternalServerError'
279 '503':
280 $ref: '#/components/responses/ServiceUnavailable'
281 '5XX':
282 $ref: '#/components/responses/UnexpectedError'
283 default:
284 $ref: '#/components/responses/UnexpectedError'
285 put:
286 tags:
287 - "NS packages"
288 summary: Upload the content of a NSD
289 description: Upload the content of a NSD
290 operationId: updateNSDcontent
291 security:
292 - bearerAuth: []
293 requestBody:
294 $ref: '#/components/requestBodies/NsdContent'
295 responses:
296 '202':
297 description: Accepted
298 '204':
299 description: No Content
300 '400':
301 $ref: '#/components/responses/BadRequest'
302 '401':
303 $ref: '#/components/responses/Unauthorized'
304 '403':
305 $ref: '#/components/responses/Forbidden'
306 '404':
307 $ref: '#/components/responses/NotFound'
308 '405':
309 $ref: '#/components/responses/MethodNotAllowed'
310 '406':
311 $ref: '#/components/responses/NotAcceptable'
312 '409':
313 $ref: '#/components/responses/Conflict'
314 '422':
315 $ref: '#/components/responses/UnprocessableEntity'
316 '500':
317 $ref: '#/components/responses/InternalServerError'
318 '503':
319 $ref: '#/components/responses/ServiceUnavailable'
320 '5XX':
321 $ref: '#/components/responses/UnexpectedError'
322 default:
323 $ref: '#/components/responses/UnexpectedError'
garciadeblas63fe88c2018-02-28 19:32:41 +0100324 /vnfpkgm/v1/vnf_packages:
325 get:
326 tags:
327 - "VNF packages"
328 summary: Query information about multiple VNF package resources
329 description: Query information about multiple VNF package resoureces
330 operationId: getVnfPkgs
331 security:
332 - bearerAuth: []
333 responses:
334 '200':
335 description: OK
336 content:
337 application/json:
338 schema:
339 $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
340 application/yaml:
341 schema:
342 $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
343 '400':
344 $ref: '#/components/responses/BadRequest'
345 '401':
346 $ref: '#/components/responses/Unauthorized'
347 '403':
348 $ref: '#/components/responses/Forbidden'
349 '404':
350 $ref: '#/components/responses/NotFound'
351 '405':
352 $ref: '#/components/responses/MethodNotAllowed'
353 '406':
354 $ref: '#/components/responses/NotAcceptable'
355 '409':
356 $ref: '#/components/responses/Conflict'
357 '422':
358 $ref: '#/components/responses/UnprocessableEntity'
359 '500':
360 $ref: '#/components/responses/InternalServerError'
361 '503':
362 $ref: '#/components/responses/ServiceUnavailable'
363 '5XX':
364 $ref: '#/components/responses/UnexpectedError'
365 default:
366 $ref: '#/components/responses/UnexpectedError'
367 post:
368 tags:
369 - "VNF packages"
370 summary: Create a new VNF package resource
371 description: Create a new VNF package resource
372 operationId: addVnfPkg
373 security:
374 - bearerAuth: []
375 requestBody:
376 $ref: '#/components/requestBodies/CreateVnfPkgInfoRequest'
377 responses:
378 '201':
379 description: Created
380 headers:
381 Location:
382 schema:
383 type: string
384 format: uri
385 content:
386 application/json:
387 schema:
388 $ref: '#/components/schemas/VnfPkgInfo'
389 application/yaml:
390 schema:
391 $ref: '#/components/schemas/VnfPkgInfo'
392 '400':
393 $ref: '#/components/responses/BadRequest'
394 '401':
395 $ref: '#/components/responses/Unauthorized'
396 '403':
397 $ref: '#/components/responses/Forbidden'
398 '404':
399 $ref: '#/components/responses/NotFound'
400 '405':
401 $ref: '#/components/responses/MethodNotAllowed'
402 '406':
403 $ref: '#/components/responses/NotAcceptable'
404 '409':
405 $ref: '#/components/responses/Conflict'
406 '422':
407 $ref: '#/components/responses/UnprocessableEntity'
408 '500':
409 $ref: '#/components/responses/InternalServerError'
410 '503':
411 $ref: '#/components/responses/ServiceUnavailable'
412 '5XX':
413 $ref: '#/components/responses/UnexpectedError'
414 default:
415 $ref: '#/components/responses/UnexpectedError'
416 '/vnfpkgm/v1/vnf_packages/{vnfPkgId}':
417 get:
418 tags:
419 - "VNF packages"
420 summary: Read information about an individual VNF package resource
421 description: Read information about an individual VNF package resource
422 operationId: getVnfPkg
423 security:
424 - bearerAuth: []
425 responses:
426 '200':
427 description: OK
428 content:
429 application/json:
430 schema:
431 $ref: '#/components/schemas/VnfPkgInfo'
432 application/yaml:
433 schema:
434 $ref: '#/components/schemas/VnfPkgInfo'
435 '400':
436 $ref: '#/components/responses/BadRequest'
437 '401':
438 $ref: '#/components/responses/Unauthorized'
439 '403':
440 $ref: '#/components/responses/Forbidden'
441 '404':
442 $ref: '#/components/responses/NotFound'
443 '405':
444 $ref: '#/components/responses/MethodNotAllowed'
445 '406':
446 $ref: '#/components/responses/NotAcceptable'
447 '409':
448 $ref: '#/components/responses/Conflict'
449 '422':
450 $ref: '#/components/responses/UnprocessableEntity'
451 '500':
452 $ref: '#/components/responses/InternalServerError'
453 '503':
454 $ref: '#/components/responses/ServiceUnavailable'
455 '5XX':
456 $ref: '#/components/responses/UnexpectedError'
457 default:
458 $ref: '#/components/responses/UnexpectedError'
459 delete:
460 tags:
461 - "VNF packages"
462 summary: Delete an individual VNF package resource
463 description: Delete an individual VNF package resource
464 operationId: deleteVnfPkg
465 security:
466 - bearerAuth: []
467 responses:
468 '204':
469 description: No Content
470 '400':
471 $ref: '#/components/responses/BadRequest'
472 '401':
473 $ref: '#/components/responses/Unauthorized'
474 '403':
475 $ref: '#/components/responses/Forbidden'
476 '404':
477 $ref: '#/components/responses/NotFound'
478 '405':
479 $ref: '#/components/responses/MethodNotAllowed'
480 '406':
481 $ref: '#/components/responses/NotAcceptable'
482 '409':
483 $ref: '#/components/responses/Conflict'
484 '422':
485 $ref: '#/components/responses/UnprocessableEntity'
486 '500':
487 $ref: '#/components/responses/InternalServerError'
488 '503':
489 $ref: '#/components/responses/ServiceUnavailable'
490 '5XX':
491 $ref: '#/components/responses/UnexpectedError'
492 default:
493 $ref: '#/components/responses/UnexpectedError'
494 patch:
495 tags:
496 - "VNF packages"
497 summary: Modify the operational state and/or the user defined data of an individual VNF package resource
498 description: Modify the operational state and/or the user defined data of an individual VNF package resource
499 operationId: updateVnfPkg
500 security:
501 - bearerAuth: []
502 requestBody:
503 $ref: '#/components/requestBodies/VnfPkgInfoModifications'
504 responses:
505 '200':
506 description: OK
507 content:
508 application/json:
509 schema:
510 $ref: '#/components/schemas/VnfPkgInfoModifications'
511 application/yaml:
512 schema:
513 $ref: '#/components/schemas/VnfPkgInfoModifications'
514 '400':
515 $ref: '#/components/responses/BadRequest'
516 '401':
517 $ref: '#/components/responses/Unauthorized'
518 '403':
519 $ref: '#/components/responses/Forbidden'
520 '404':
521 $ref: '#/components/responses/NotFound'
522 '405':
523 $ref: '#/components/responses/MethodNotAllowed'
524 '406':
525 $ref: '#/components/responses/NotAcceptable'
526 '409':
527 $ref: '#/components/responses/Conflict'
528 '422':
529 $ref: '#/components/responses/UnprocessableEntity'
530 '500':
531 $ref: '#/components/responses/InternalServerError'
532 '503':
533 $ref: '#/components/responses/ServiceUnavailable'
534 '5XX':
535 $ref: '#/components/responses/UnexpectedError'
536 default:
537 $ref: '#/components/responses/UnexpectedError'
538 '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/vnfd':
539 get:
540 tags:
541 - "VNF packages"
542 summary: Read VNFD of an on-boarded VNF package
543 description: Read VNFD of an on-boarded VNF package
544 operationId: getVnfPkgVNFD
545 security:
546 - bearerAuth: []
547 responses:
548 '200':
549 description: OK
550 content:
551 text/plain:
552 schema:
553 $ref: '#/components/schemas/VnfDescriptor'
554 '400':
555 $ref: '#/components/responses/BadRequest'
556 '401':
557 $ref: '#/components/responses/Unauthorized'
558 '403':
559 $ref: '#/components/responses/Forbidden'
560 '404':
561 $ref: '#/components/responses/NotFound'
562 '405':
563 $ref: '#/components/responses/MethodNotAllowed'
564 '406':
565 $ref: '#/components/responses/NotAcceptable'
566 '409':
567 $ref: '#/components/responses/Conflict'
568 '422':
569 $ref: '#/components/responses/UnprocessableEntity'
570 '500':
571 $ref: '#/components/responses/InternalServerError'
572 '503':
573 $ref: '#/components/responses/ServiceUnavailable'
574 '5XX':
575 $ref: '#/components/responses/UnexpectedError'
576 default:
577 $ref: '#/components/responses/UnexpectedError'
578 '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content':
579 get:
580 tags:
581 - "VNF packages"
582 summary: Fetch an on-boarded VNF package
583 description: Fetch an on-boarded VNF package
584 operationId: getVnfPkgContent
585 security:
586 - bearerAuth: []
587 responses:
588 '200':
589 description: OK
590 content:
591 application/zip:
592 schema:
593 $ref: '#/components/schemas/VnfPackage'
594 '206':
595 description: Partial Content
596 headers:
597 Content-Range:
598 schema:
599 type: string
600 content:
601 application/zip:
602 schema:
603 $ref: '#/components/schemas/VnfPackage'
604 '400':
605 $ref: '#/components/responses/BadRequest'
606 '401':
607 $ref: '#/components/responses/Unauthorized'
608 '403':
609 $ref: '#/components/responses/Forbidden'
610 '404':
611 $ref: '#/components/responses/NotFound'
612 '405':
613 $ref: '#/components/responses/MethodNotAllowed'
614 '406':
615 $ref: '#/components/responses/NotAcceptable'
616 '409':
617 $ref: '#/components/responses/Conflict'
618 '422':
619 $ref: '#/components/responses/UnprocessableEntity'
620 '500':
621 $ref: '#/components/responses/InternalServerError'
622 '503':
623 $ref: '#/components/responses/ServiceUnavailable'
624 '5XX':
625 $ref: '#/components/responses/UnexpectedError'
626 default:
627 $ref: '#/components/responses/UnexpectedError'
628 put:
629 tags:
630 - "VNF packages"
631 summary: Upload a VNF package by providing the content of the VNF package
632 description: Upload a VNF package by providing the content of the VNF package
633 operationId: uploadVnfPkgContent
634 security:
635 - bearerAuth: []
636 requestBody:
637 $ref: '#/components/requestBodies/VnfPackage'
638 responses:
639 '202':
640 description: Accepted
641 #'204':
642 # description: No Content
643 '400':
644 $ref: '#/components/responses/BadRequest'
645 '401':
646 $ref: '#/components/responses/Unauthorized'
647 '403':
648 $ref: '#/components/responses/Forbidden'
649 '404':
650 $ref: '#/components/responses/NotFound'
651 '405':
652 $ref: '#/components/responses/MethodNotAllowed'
653 '406':
654 $ref: '#/components/responses/NotAcceptable'
655 '409':
656 $ref: '#/components/responses/Conflict'
657 '422':
658 $ref: '#/components/responses/UnprocessableEntity'
659 '500':
660 $ref: '#/components/responses/InternalServerError'
661 '503':
662 $ref: '#/components/responses/ServiceUnavailable'
663 '5XX':
664 $ref: '#/components/responses/UnexpectedError'
665 default:
666 $ref: '#/components/responses/UnexpectedError'
667 '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content/upload_from_uri':
668 post:
669 tags:
670 - "VNF packages"
671 summary: Upload a VNF package by providing the URI of the VNF package
672 description: Upload a VNF package by providing the URI of the VNF package
673 operationId: uploadVnfPkgContentFromURI
674 security:
675 - bearerAuth: []
676 requestBody:
677 $ref: '#/components/requestBodies/UploadVnfPackageFromUriRequest'
678 responses:
679 '202':
680 description: Accepted
681 #'204':
682 # description: No Content
683 '400':
684 $ref: '#/components/responses/BadRequest'
685 '401':
686 $ref: '#/components/responses/Unauthorized'
687 '403':
688 $ref: '#/components/responses/Forbidden'
689 '404':
690 $ref: '#/components/responses/NotFound'
691 '405':
692 $ref: '#/components/responses/MethodNotAllowed'
693 '406':
694 $ref: '#/components/responses/NotAcceptable'
695 '409':
696 $ref: '#/components/responses/Conflict'
697 '422':
698 $ref: '#/components/responses/UnprocessableEntity'
699 '500':
700 $ref: '#/components/responses/InternalServerError'
701 '503':
702 $ref: '#/components/responses/ServiceUnavailable'
703 '5XX':
704 $ref: '#/components/responses/UnexpectedError'
705 default:
706 $ref: '#/components/responses/UnexpectedError'
707 '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}':
708 get:
709 tags:
710 - "VNF packages"
711 summary: Fetch individual VNF package artifact
712 description: Fetch individual VNF package artifact
713 operationId: getVnfPkgArtifact
714 security:
715 - bearerAuth: []
716 responses:
717 '200':
718 description: OK
719 content:
720 application/octet-stream:
721 schema:
722 type: string
723 format: binary
724 '206':
725 description: Partial Content
726 headers:
727 Content-Range:
728 schema:
729 type: string
730 content:
731 application/octet-stream:
732 schema:
733 type: string
734 format: binary
735 '400':
736 $ref: '#/components/responses/BadRequest'
737 '401':
738 $ref: '#/components/responses/Unauthorized'
739 '403':
740 $ref: '#/components/responses/Forbidden'
741 '404':
742 $ref: '#/components/responses/NotFound'
743 '405':
744 $ref: '#/components/responses/MethodNotAllowed'
745 '406':
746 $ref: '#/components/responses/NotAcceptable'
747 '409':
748 $ref: '#/components/responses/Conflict'
749 '422':
750 $ref: '#/components/responses/UnprocessableEntity'
751 '500':
752 $ref: '#/components/responses/InternalServerError'
753 '503':
754 $ref: '#/components/responses/ServiceUnavailable'
755 '5XX':
756 $ref: '#/components/responses/UnexpectedError'
757 default:
758 $ref: '#/components/responses/UnexpectedError'
garciadeblas60e2ee92018-02-27 19:09:51 +0100759externalDocs:
760 description: Find out more OSM
761 url: 'http://osm.etsi.org/wikipub'
762components:
763 responses:
764 BadRequest:
765 description: Bad request. The server cannot process the request due to a client error.
766 content:
767 application/json:
768 schema:
769 $ref: '#/components/schemas/ProblemDetails'
770 Unauthorized:
771 description: Authorization information is missing or invalid.
772 content:
773 application/json:
774 schema:
775 $ref: '#/components/schemas/ProblemDetails'
776 Forbidden:
777 description: Not enough permissions to do this operation.
778 content:
779 application/json:
780 schema:
781 $ref: '#/components/schemas/ProblemDetails'
782 NotFound:
783 description: The specified resource was not found.
784 content:
785 application/json:
786 schema:
787 $ref: '#/components/schemas/ProblemDetails'
788 MethodNotAllowed:
789 description: This method is not supported for the requested resource.
790 content:
791 application/json:
792 schema:
793 $ref: '#/components/schemas/ProblemDetails'
794 NotAcceptable:
795 description: The requested resource content cannot match the Accept headers sent in the request.
796 content:
797 application/json:
798 schema:
799 $ref: '#/components/schemas/ProblemDetails'
800 Conflict:
801 description: The operation cannot be executed currently, due to a conflict with the state of the resource.
802 content:
803 application/json:
804 schema:
805 $ref: '#/components/schemas/ProblemDetails'
806 UnprocessableEntity:
807 description: The request was well-formed but was unable to be followed due to semantic errors.
808 content:
809 application/json:
810 schema:
811 $ref: '#/components/schemas/ProblemDetails'
812 InternalServerError:
813 description: Internal server error.
814 content:
815 application/json:
816 schema:
817 $ref: '#/components/schemas/ProblemDetails'
818 ServiceUnavailable:
819 description: Service temporarily unavailable.
820 content:
821 application/json:
822 schema:
823 $ref: '#/components/schemas/ProblemDetails'
824 UnexpectedError:
825 description: Unexpected error.
826 content:
827 application/json:
828 schema:
829 $ref: '#/components/schemas/ProblemDetails'
830 schemas:
831 NsDescriptor:
832 type: string
833 NsPackage:
834 type: string
835 format: binary
garciadeblas63fe88c2018-02-28 19:32:41 +0100836 KeyValuePairs:
garciadeblas60e2ee92018-02-27 19:09:51 +0100837 type: object
838 additionalProperties:
839 type: string
840 CreateNsdInfoRequest:
841 type: object
842 properties:
843 userDefinedData:
garciadeblas63fe88c2018-02-28 19:32:41 +0100844 $ref: '#/components/schemas/KeyValuePairs'
garciadeblas60e2ee92018-02-27 19:09:51 +0100845 NsdOnboardingStateType:
846 type: string
847 enum: [CREATED, UPLAODING, PROCESSING, ONBOARDED]
848 description: |
849 NSD onboarding state:
850 * `CREATED` - The NSD information object is created.
851 * `UPLOADING` - The associated NSD content is being uploaded.
852 * `PROCESSING` - The associated NSD content is being processed, e.g. validation.
853 * `ONBOARDED` - The associated NSD content is on-boarded.
854 NsdOperationalStateType:
855 type: string
856 enum: [ENABLED, DISABLED]
857 description: |
858 NSD operational state:
859 * `ENABLED` - The NSD is enabled.
garciadeblas63fe88c2018-02-28 19:32:41 +0100860 * `DISABLED` - The NSD is disabled.
garciadeblas60e2ee92018-02-27 19:09:51 +0100861 NsdUsageStateType:
862 type: string
863 enum: [IN_USE, NOT_IN_USE]
864 description: |
garciadeblas63fe88c2018-02-28 19:32:41 +0100865 NSD usage state:
garciadeblas60e2ee92018-02-27 19:09:51 +0100866 * `IN_USE` - The NSD is in use.
867 * `NOT_IN_USE` - The NSD is not in use.
868 NsdInfoModifications:
869 type: object
870 properties:
871 nsdOperationalState:
872 $ref: '#/components/schemas/NsdOperationalStateType'
873 userDefinedData:
garciadeblas63fe88c2018-02-28 19:32:41 +0100874 $ref: '#/components/schemas/KeyValuePairs'
garciadeblas60e2ee92018-02-27 19:09:51 +0100875 NsdInfo:
876 type: object
877 properties:
878 id:
879 description: |
880 Identifier of the onboarded individual NS descriptor
881 resource. This identifier is allocated by the NFVO.
882 type: string
883 format: uuid
884 nsdId:
885 description: |
886 This identifier, which is allocated by the NSD
887 designer, identifies the NSD in a globally unique
888 way. It is copied from the NSD content and shall be
889 present after the NSD content is on-boarded.
890 type: string
891 format: uuid
892 nsdName:
893 description: |
894 Name of the onboarded NSD. This information is
895 copied from the NSD content and shall be present
896 after the NSD content is on-boarded.
897 type: string
898 nsdVersion:
899 description: |
900 Version of the on-boarded NSD. This information is
901 copied from the NSD content and shall be present
902 after the NSD content is on-boarded.
903 type: string
904 nsdDesigner:
905 description: |
906 Designer of the on-boarded NSD. This information is
907 copied from the NSD content and shall be present
908 after the NSD content is on-boarded.
909 type: string
910 nsdInvariantId:
911 description: |
912 This identifier, which is allocated by the NSD designer,
913 identifies an NSD in a version independent manner. This
914 information is copied from the NSD content and shall be
915 present after the NSD content is on-boarded.
916 type: string
garciadeblas63fe88c2018-02-28 19:32:41 +0100917 format: uuid
garciadeblas60e2ee92018-02-27 19:09:51 +0100918 vnfPkgIds:
919 description: |
920 List of VNF package identifiers referenced by the on-boarded
921 NS descriptor resource.
922 type: array
923 items:
924 type: string
925 format: uuid
926 pnfdInfoIds:
927 description: |
928 List of PNFD identifiers referenced by the on-boarded NS
929 descriptor resource.
930 type: array
931 items:
932 type: string
933 format: uuid
934 nestedNsdInfoIds:
935 description: |
936 List of NSD identifiers referenced by the on-boarded NS
937 descriptor resource.
938 type: array
939 items:
940 type: string
941 format: uuid
942 nsdOnboardingState:
garciadeblas63fe88c2018-02-28 19:32:41 +0100943 description: |
944 Onboarding state of the individual NS descriptor resource.
garciadeblas60e2ee92018-02-27 19:09:51 +0100945 $ref: '#components/schemas/NsdOnboardingStateType'
946 onboardingFailureDetails:
garciadeblas63fe88c2018-02-28 19:32:41 +0100947 description: |
948 Failure details of current onboarding procedure. It follows
949 the "ProblemDetails" structure. It shall be present when the
950 "nsdOnboardingState" attribute is CREATED and the uploading or
951 processing fails in NFVO.
garciadeblas60e2ee92018-02-27 19:09:51 +0100952 $ref: '#/components/schemas/ProblemDetails'
953 nsdOperationalState:
garciadeblas63fe88c2018-02-28 19:32:41 +0100954 description: |
955 Operational state of the individual NS descriptor resource. This
956 attribute can be modified with the PATCH method. If the value of
957 the nsdOnboardingState attribute is not equal to "ONBOARDED", the
958 value of the nsdOperationalState attribute shall be equal to
959 "DISABLED".
garciadeblas60e2ee92018-02-27 19:09:51 +0100960 $ref: '#components/schemas/NsdOperationalStateType'
961 nsdUsagestate:
garciadeblas63fe88c2018-02-28 19:32:41 +0100962 description: |
963 Usage state of the individual NS descriptor resource. If the value
964 of the nsdOnboardingState attribute is not equal to "ONBOARDED",
965 the value of the nsdUsageState attribute shall be equal to
966 "NOT_IN_USE".
garciadeblas60e2ee92018-02-27 19:09:51 +0100967 $ref: '#components/schemas/NsdUsageStateType'
968 userDefinedData:
garciadeblas63fe88c2018-02-28 19:32:41 +0100969 $ref: '#/components/schemas/KeyValuePairs'
970 _links:
971 description: |
972 Links to resources related to this resource
973 type: string
garciadeblas60e2ee92018-02-27 19:09:51 +0100974 self:
garciadeblas63fe88c2018-02-28 19:32:41 +0100975 description: |
976 URI of this resource
garciadeblas60e2ee92018-02-27 19:09:51 +0100977 type: string
978 format: uri
979 nsd_content:
garciadeblas63fe88c2018-02-28 19:32:41 +0100980 description: |
981 Link to the NSD content resource.
garciadeblas60e2ee92018-02-27 19:09:51 +0100982 type: string
983 format: uri
984 required:
985 - id
garciadeblas63fe88c2018-02-28 19:32:41 +0100986 - nsdOnboardingState
987 - nsdOperationalState
988 - nsdUsageState
989 - _links
990 - self
991 - nsd_content
garciadeblas60e2ee92018-02-27 19:09:51 +0100992 ArrayOfNsdInfo:
993 type: array
994 items:
995 $ref: '#/components/schemas/NsdInfo'
garciadeblas60e2ee92018-02-27 19:09:51 +0100996 ProblemDetails:
997 type: object
998 properties:
999 type:
1000 type: string
1001 format: uri
1002 title:
1003 type: string
1004 status:
1005 type: integer
1006 detail:
1007 type: string
1008 instance:
1009 type: string
1010 format: uri
1011 additionalProperties: true
1012 required:
1013 - status
1014 - detail
garciadeblas63fe88c2018-02-28 19:32:41 +01001015 VnfDescriptor:
1016 type: string
1017 VnfPackage:
1018 type: string
1019 format: binary
1020 CreateVnfPkgInfoRequest:
1021 type: object
1022 properties:
1023 userDefinedData:
1024 $ref: '#/components/schemas/KeyValuePairs'
1025 VnfPackageOnboardingStateType:
1026 type: string
1027 enum: [CREATED, UPLAODING, PROCESSING, ONBOARDED]
1028 description: |
1029 VNF Package onboarding state:
1030 * `CREATED` - The VNF Package information object is created.
1031 * `UPLOADING` - The VNF Package is being uploaded.
1032 * `PROCESSING` - The VNF Package is being processed, e.g. validation.
1033 * `ONBOARDED` - The VNF Package is successfully on-boarded.
1034 VnfPackageOperationalStateType:
1035 type: string
1036 enum: [ENABLED, DISABLED]
1037 description: |
1038 VNF Package operational state:
1039 * `ENABLED` - The VNF Package is enabled.
1040 * `DISABLED` - The VNF Package is disabled.
1041 VnfPackageUsageStateType:
1042 type: string
1043 enum: [IN_USE, NOT_IN_USE]
1044 description: |
1045 VNF Package usage state:
1046 * `IN_USE` - The VNF Package is in use.
1047 * `NOT_IN_USE` - The VNF Package is not in use.
1048 #SoftwareImageFormatType:
1049 # type: string
1050 # enum: [AKI, AMI, ARI, BARE, DOCKER, OVA, OVF]
1051 # description: |
1052 # Software image format. Permitted values:
1053 # * `AKI`: a kernel image format
1054 # * `AMI`: a machine image format
1055 # * `ARI`: a ramdisk image format
1056 # * `BARE`: the image does not have a container or metadata envelope
1057 # * `DOCKER`: docker container format
1058 # * `OVA`: OVF package in a tarfile
1059 # * `OVF`: OVF container format
1060 VnfPackageSoftwareImageInfo:
1061 type: object
1062 additionalProperties: true
1063 #properties:
1064 #id:
1065 # description: |
1066 # Identifier of the software image, unique in the scope of a VNFD.
1067 # type: string
1068 #name:
1069 # description: |
1070 # Name of the software image.
1071 # type: string
1072 #provider:
1073 # description: |
1074 # Provider of the software image.
1075 # type: string
1076 #version:
1077 # description: |
1078 # Version of the software image.
1079 # type: string
1080 #checksum:
1081 # description: |
1082 # Checksum of the software image file.
1083 # type: string
1084 #containerFormat:
1085 # description: |
1086 # Container format indicates whether the software image is in a
1087 # file format that also contains metadata about the actual
1088 # software.
1089 # $ref: '#/components/schemas/SoftwareImageFormatType'
1090 #diskFormat:
1091 # description: |
1092 # Disk format of a software image is the format of the underlying
1093 # disk image.
1094 # $ref: '#/components/schemas/DiskFormatType'
1095 # ...
1096 VnfPackageArtifactInfo:
1097 type: object
1098 additionalProperties: true
1099 VnfPkgInfoModifications:
1100 type: object
1101 properties:
1102 operationalState:
1103 $ref: '#/components/schemas/VnfPackageOperationalStateType'
1104 userDefinedData:
1105 $ref: '#/components/schemas/KeyValuePairs'
1106 VnfPkgInfo:
1107 type: object
1108 properties:
1109 id:
1110 description: |
1111 Identifier of the VNF package. This identifier is allocated by the NFVO.
1112 type: string
1113 format: uuid
1114 vnfdId:
1115 description: |
1116 This identifier, which is managed by the VNF provider, identifies
1117 the VNF package and the VNFD in a globally unique way. It's
1118 copied from the VNFD of the on-boarded VNF package. It shall be
1119 present after the VNF package content has been on-boarded and
1120 absent otherwise.
1121 type: string
1122 format: uuid
1123 vnfProvider:
1124 description: |
1125 Deovider of the VNF pacakge and the VNFD. This information is
1126 copied from the VNFD. It shall be present after the VNF package
1127 content has been on-boarded and absent otherwise.
1128 type: string
1129 vnfProductName:
1130 description: |
1131 Name to identify the VNF product. Invariant for the VNF product
1132 ligetime. This information is copied from the VNFD. It shall be
1133 present after the VNF package content has been on-boarded and
1134 absent otherwise.
1135 type: string
1136 vnfSoftwareVersion:
1137 description: |
1138 Software version of the VNF. This is changed when there is any
1139 change to the software included in the VNF package. This
1140 information is copied from the VNFD. It shall be present after the
1141 VNF package content has been on-boarded and absent otherwise.
1142 type: string
1143 vnfdVersion:
1144 description: |
1145 The version of the VNFD. TSof information is copied from the VNFD.
1146 It shall be present after the VNF package content has been
1147 on-boarded and absent otherwise.
1148 type: string
1149 checksum:
1150 description: |
1151 Checksum of the on-boarded VNF package. It shall be present after
1152 the VNF package content has been on-boarded and absent otherwise.
1153 type: string
1154 softwareImages:
1155 description: |
1156 Information about VNF package artifacts that are software images.
1157 This attribute shall not be present before the VNF package content
1158 is on-boarded. Otherwise, this attribute shall be present unless
1159 it has been requested to be excluded per attribute selector.
1160 type: array
1161 items:
1162 $ref: '#/components/schemas/VnfPackageSoftwareImageInfo'
1163 additionalArtifacts:
1164 description: |
1165 Information about VNF package artifacts contained in the VNF
1166 package that are not software images. This attribute shall not be
1167 present before the VNF package content is on-boarded. Otherwise,
1168 this attribute shall be present if the VNF package contains
1169 additional artifacts.
1170 type: array
1171 items:
1172 $ref: '#/components/schemas/VnfPackageArtifactInfo'
1173 onboardingState:
1174 description: |
1175 On-boarding state of the VNF package.
1176 $ref: '#components/schemas/VnfPackageOnboardingStateType'
1177 operationalState:
1178 description: |
1179 Operational state of the VNF package. If the value of the
1180 onboardingState attribute is not equal to "ONBOARDED", the value
1181 of the operationalState attribute shall be equal to "DISABLED".
1182 $ref: '#components/schemas/VnfPackageOperationalStateType'
1183 usageState:
1184 description: |
1185 Usage state of the VNF package. If the value of the
1186 onboardingState attribute is not equal to "ONBOARDED", the value
1187 of the usageState attribute shall be equal to "NOT_IN_USE".
1188 $ref: '#components/schemas/VnfPackageUsageStateType'
1189 userDefinedData:
1190 description: |
1191 User defined data for the VNF package
1192 $ref: '#/components/schemas/KeyValuePairs'
1193 _links:
1194 description: |
1195 Links to resources related to this resource
1196 type: string
1197 self:
1198 description: |
1199 URI of this resource
1200 type: string
1201 format: uri
1202 vnfd:
1203 description: |
1204 Link to the VNFD resource. This link shall be present after the VNF
1205 package content is on-boarded.
1206 type: string
1207 format: uri
1208 package_content:
1209 description: |
1210 Link to the "VNF package content" resource.
1211 type: string
1212 format: uri
1213 required:
1214 - id
1215 - onboardingState
1216 - operationalState
1217 - usageState
1218 - _links
1219 - self
1220 - package_content
1221 ArrayOfVnfPkgInfo:
1222 type: array
1223 items:
1224 $ref: '#/components/schemas/VnfPkgInfo'
1225 UploadVnfPackageFromUriRequest:
1226 type: object
1227 properties:
1228 addressInformation:
1229 description: |
1230 Address information of the VNF package content. The NFVO can use
1231 this address to obtain the VNF package.
1232 type: string
1233 format: uri
1234 userName:
1235 description: |
1236 User name to be used for authentication. Shall be present if user
1237 name is needed but has not been provisioned out of band.
1238 type: string
1239 password:
1240 description: |
1241 Password to be used for authentication. Shall be present if password
1242 is needed but has not been provisioned out of band.
1243 type: string
1244 required:
1245 - addressInformation
garciadeblas60e2ee92018-02-27 19:09:51 +01001246 requestBodies:
1247 CreateNsdInfoRequest:
1248 content:
1249 application/json:
1250 schema:
1251 $ref: '#/components/schemas/CreateNsdInfoRequest'
1252 application/yaml:
1253 schema:
1254 $ref: '#/components/schemas/CreateNsdInfoRequest'
1255 NsdInfoModifications:
1256 content:
1257 application/json:
1258 schema:
1259 $ref: '#/components/schemas/NsdInfoModifications'
1260 application/yaml:
1261 schema:
1262 $ref: '#/components/schemas/NsdInfoModifications'
1263 NsdContent:
1264 content:
1265 text/plain:
1266 schema:
1267 $ref: '#/components/schemas/NsDescriptor'
1268 application/zip:
1269 schema:
1270 $ref: '#/components/schemas/NsPackage'
garciadeblas63fe88c2018-02-28 19:32:41 +01001271 CreateVnfPkgInfoRequest:
1272 content:
1273 application/json:
1274 schema:
1275 $ref: '#/components/schemas/CreateVnfPkgInfoRequest'
1276 application/yaml:
1277 schema:
1278 $ref: '#/components/schemas/CreateVnfPkgInfoRequest'
1279 VnfPkgInfoModifications:
1280 content:
1281 application/json:
1282 schema:
1283 $ref: '#/components/schemas/VnfPkgInfoModifications'
1284 application/yaml:
1285 schema:
1286 $ref: '#/components/schemas/VnfPkgInfoModifications'
1287 VnfPackage:
1288 content:
1289 application/zip:
1290 schema:
1291 $ref: '#/components/schemas/VnfPackage'
1292 UploadVnfPackageFromUriRequest:
1293 content:
1294 application/json:
1295 schema:
1296 $ref: '#/components/schemas/UploadVnfPackageFromUriRequest'
1297 application/yaml:
1298 schema:
1299 $ref: '#/components/schemas/UploadVnfPackageFromUriRequest'
garciadeblas60e2ee92018-02-27 19:09:51 +01001300 securitySchemes:
1301 bearerAuth:
1302 type: http
1303 scheme: bearer
1304