blob: 5e00a2a935b02dac9d7e3b1d05adb88a6524a446 [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:
garciadeblas12fcc4b2018-03-02 16:12:02 +010027 '/nsd/v1/ns_descriptors':
garciadeblas60e2ee92018-02-27 19:09:51 +010028 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'
garciadeblas12fcc4b2018-03-02 16:12:02 +0100324 '/vnfpkgm/v1/vnf_packages':
garciadeblas63fe88c2018-02-28 19:32:41 +0100325 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'
garciadeblas12fcc4b2018-03-02 16:12:02 +0100759 '/nslcm/v1/ns_instances':
760 get:
761 tags:
762 - "NS instances"
763 summary: Query information about multiple NS instances
764 description: Query information about multiple NS isntances
765 operationId: getNSinstances
766 security:
767 - bearerAuth: []
768 responses:
769 '200':
770 description: OK
771 content:
772 application/json:
773 schema:
774 $ref: '#/components/schemas/ArrayOfNsInstance'
775 application/yaml:
776 schema:
777 $ref: '#/components/schemas/ArrayOfNsInstance'
778 '400':
779 $ref: '#/components/responses/BadRequest'
780 '401':
781 $ref: '#/components/responses/Unauthorized'
782 '403':
783 $ref: '#/components/responses/Forbidden'
784 '404':
785 $ref: '#/components/responses/NotFound'
786 '405':
787 $ref: '#/components/responses/MethodNotAllowed'
788 '406':
789 $ref: '#/components/responses/NotAcceptable'
790 '409':
791 $ref: '#/components/responses/Conflict'
792 '422':
793 $ref: '#/components/responses/UnprocessableEntity'
794 '500':
795 $ref: '#/components/responses/InternalServerError'
796 '503':
797 $ref: '#/components/responses/ServiceUnavailable'
798 '5XX':
799 $ref: '#/components/responses/UnexpectedError'
800 default:
801 $ref: '#/components/responses/UnexpectedError'
802 post:
803 tags:
804 - "NS instances"
805 summary: Create a new NS instance resource
806 description: Create a new NS instance resource
807 operationId: addNSinstance
808 security:
809 - bearerAuth: []
810 requestBody:
811 $ref: '#/components/requestBodies/CreateNsRequest'
812 responses:
813 '201':
814 description: Created
815 headers:
816 Location:
817 schema:
818 type: string
819 format: uri
820 content:
821 application/json:
822 schema:
823 $ref: '#/components/schemas/NsInstance'
824 application/yaml:
825 schema:
826 $ref: '#/components/schemas/NsInstance'
827 '400':
828 $ref: '#/components/responses/BadRequest'
829 '401':
830 $ref: '#/components/responses/Unauthorized'
831 '403':
832 $ref: '#/components/responses/Forbidden'
833 '404':
834 $ref: '#/components/responses/NotFound'
835 '405':
836 $ref: '#/components/responses/MethodNotAllowed'
837 '406':
838 $ref: '#/components/responses/NotAcceptable'
839 '409':
840 $ref: '#/components/responses/Conflict'
841 '422':
842 $ref: '#/components/responses/UnprocessableEntity'
843 '500':
844 $ref: '#/components/responses/InternalServerError'
845 '503':
846 $ref: '#/components/responses/ServiceUnavailable'
847 '5XX':
848 $ref: '#/components/responses/UnexpectedError'
849 default:
850 $ref: '#/components/responses/UnexpectedError'
851 '/nslcm/v1/ns_instances/{nsInstanceId}':
852 get:
853 tags:
854 - "NS instances"
855 summary: Read an individual NS instance resource
856 description: Read an individual NS instance resource
857 operationId: getNSinstance
858 security:
859 - bearerAuth: []
860 responses:
861 '200':
862 description: OK
863 content:
864 application/json:
865 schema:
866 $ref: '#/components/schemas/NsInstance'
867 application/yaml:
868 schema:
869 $ref: '#/components/schemas/NsInstance'
870 '400':
871 $ref: '#/components/responses/BadRequest'
872 '401':
873 $ref: '#/components/responses/Unauthorized'
874 '403':
875 $ref: '#/components/responses/Forbidden'
876 '404':
877 $ref: '#/components/responses/NotFound'
878 '405':
879 $ref: '#/components/responses/MethodNotAllowed'
880 '406':
881 $ref: '#/components/responses/NotAcceptable'
882 '409':
883 $ref: '#/components/responses/Conflict'
884 '422':
885 $ref: '#/components/responses/UnprocessableEntity'
886 '500':
887 $ref: '#/components/responses/InternalServerError'
888 '503':
889 $ref: '#/components/responses/ServiceUnavailable'
890 '5XX':
891 $ref: '#/components/responses/UnexpectedError'
892 default:
893 $ref: '#/components/responses/UnexpectedError'
894 delete:
895 tags:
896 - "NS instances"
897 summary: Delete an individual NS instance resource
898 description: Delete an individual NS instance resource
899 operationId: deleteNSinstance
900 security:
901 - bearerAuth: []
902 responses:
903 '204':
904 description: No Content
905 '400':
906 $ref: '#/components/responses/BadRequest'
907 '401':
908 $ref: '#/components/responses/Unauthorized'
909 '403':
910 $ref: '#/components/responses/Forbidden'
911 '404':
912 $ref: '#/components/responses/NotFound'
913 '405':
914 $ref: '#/components/responses/MethodNotAllowed'
915 '406':
916 $ref: '#/components/responses/NotAcceptable'
917 '409':
918 $ref: '#/components/responses/Conflict'
919 '422':
920 $ref: '#/components/responses/UnprocessableEntity'
921 '500':
922 $ref: '#/components/responses/InternalServerError'
923 '503':
924 $ref: '#/components/responses/ServiceUnavailable'
925 '5XX':
926 $ref: '#/components/responses/UnexpectedError'
927 default:
928 $ref: '#/components/responses/UnexpectedError'
929 '/nslcm/v1/ns_instances/{nsInstanceId}/instantiate':
930 post:
931 tags:
932 - "NS instances"
933 summary: Instantiate a NS
934 description: |
935 Instantiate a NS. The precondition is that the NS instance must have
936 been created and must be in NOT_INSTANTIATED state. As a result of the
937 success of this operation, the NFVO creates a "NS Lifecycle Operation
938 Occurrence" resource for the request, and the NS instance state becomes
939 INSTANTIATED.
940 operationId: instantiateNSinstance
941 security:
942 - bearerAuth: []
943 requestBody:
944 $ref: '#/components/requestBodies/InstantiateNsRequest'
945 responses:
946 '202':
947 description: Accepted
948 headers:
949 Location:
950 description: |
951 It must point to the new "NS Lifecycle Operation Occurrence"
952 resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
953 schema:
954 type: string
955 format: uri
956 '400':
957 $ref: '#/components/responses/BadRequest'
958 '401':
959 $ref: '#/components/responses/Unauthorized'
960 '403':
961 $ref: '#/components/responses/Forbidden'
962 '404':
963 $ref: '#/components/responses/NotFound'
964 '405':
965 $ref: '#/components/responses/MethodNotAllowed'
966 '406':
967 $ref: '#/components/responses/NotAcceptable'
968 '409':
969 $ref: '#/components/responses/Conflict'
970 '422':
971 $ref: '#/components/responses/UnprocessableEntity'
972 '500':
973 $ref: '#/components/responses/InternalServerError'
974 '503':
975 $ref: '#/components/responses/ServiceUnavailable'
976 '5XX':
977 $ref: '#/components/responses/UnexpectedError'
978 default:
979 $ref: '#/components/responses/UnexpectedError'
980 '/nslcm/v1/ns_instances/{nsInstanceId}/scale':
981 post:
982 tags:
983 - "NS instances"
984 summary: Scale a NS instance
985 description: |
986 Scale a NS instance. The precondition is that the NS instance must have
987 been created and must be in INSTANTIATED state. As a result of the
988 success of this operation, the NFVO creates a "NS Lifecycle Operation
989 Occurrence" resource for the request, and the NS instance state remains
990 INSTANTIATED.
991 operationId: scaleNSinstance
992 security:
993 - bearerAuth: []
994 requestBody:
995 $ref: '#/components/requestBodies/ScaleNsRequest'
996 responses:
997 '202':
998 description: Accepted
999 headers:
1000 Location:
1001 description: |
1002 It must point to the new "NS Lifecycle Operation Occurrence"
1003 resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
1004 schema:
1005 type: string
1006 format: uri
1007 '400':
1008 $ref: '#/components/responses/BadRequest'
1009 '401':
1010 $ref: '#/components/responses/Unauthorized'
1011 '403':
1012 $ref: '#/components/responses/Forbidden'
1013 '404':
1014 $ref: '#/components/responses/NotFound'
1015 '405':
1016 $ref: '#/components/responses/MethodNotAllowed'
1017 '406':
1018 $ref: '#/components/responses/NotAcceptable'
1019 '409':
1020 $ref: '#/components/responses/Conflict'
1021 '422':
1022 $ref: '#/components/responses/UnprocessableEntity'
1023 '500':
1024 $ref: '#/components/responses/InternalServerError'
1025 '503':
1026 $ref: '#/components/responses/ServiceUnavailable'
1027 '5XX':
1028 $ref: '#/components/responses/UnexpectedError'
1029 default:
1030 $ref: '#/components/responses/UnexpectedError'
1031 '/nslcm/v1/ns_instances/{nsInstanceId}/update':
1032 post:
1033 tags:
1034 - "NS instances"
1035 summary: Update a NS instance
1036 description: |
1037 Update a NS instance. The precondition is that the NS instance must have
1038 been created and must be in INSTANTIATED state. As a result of the
1039 success of this operation, the NFVO creates a "NS Lifecycle Operation
1040 Occurrence" resource for the request, and the NS instance state remains
1041 INSTANTIATED.
1042 operationId: updateNSinstance
1043 security:
1044 - bearerAuth: []
1045 requestBody:
1046 $ref: '#/components/requestBodies/UpdateNsRequest'
1047 responses:
1048 '202':
1049 description: Accepted
1050 headers:
1051 Location:
1052 description: |
1053 It must point to the new "NS Lifecycle Operation Occurrence"
1054 resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
1055 schema:
1056 type: string
1057 format: uri
1058 '400':
1059 $ref: '#/components/responses/BadRequest'
1060 '401':
1061 $ref: '#/components/responses/Unauthorized'
1062 '403':
1063 $ref: '#/components/responses/Forbidden'
1064 '404':
1065 $ref: '#/components/responses/NotFound'
1066 '405':
1067 $ref: '#/components/responses/MethodNotAllowed'
1068 '406':
1069 $ref: '#/components/responses/NotAcceptable'
1070 '409':
1071 $ref: '#/components/responses/Conflict'
1072 '422':
1073 $ref: '#/components/responses/UnprocessableEntity'
1074 '500':
1075 $ref: '#/components/responses/InternalServerError'
1076 '503':
1077 $ref: '#/components/responses/ServiceUnavailable'
1078 '5XX':
1079 $ref: '#/components/responses/UnexpectedError'
1080 default:
1081 $ref: '#/components/responses/UnexpectedError'
1082 '/nslcm/v1/ns_instances/{nsInstanceId}/heal':
1083 post:
1084 tags:
1085 - "NS instances"
1086 summary: Heal a NS instance
1087 description: |
1088 Heal a NS instance. The precondition is that the NS instance must have
1089 been created and must be in INSTANTIATED state. As a result of the
1090 success of this operation, the NFVO creates a "NS Lifecycle Operation
1091 Occurrence" resource for the request, and the NS instance state remains
1092 INSTANTIATED.
1093 operationId: healNSinstance
1094 security:
1095 - bearerAuth: []
1096 requestBody:
1097 $ref: '#/components/requestBodies/HealNsRequest'
1098 responses:
1099 '202':
1100 description: Accepted
1101 headers:
1102 Location:
1103 description: |
1104 It must point to the new "NS Lifecycle Operation Occurrence"
1105 resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
1106 schema:
1107 type: string
1108 format: uri
1109 '400':
1110 $ref: '#/components/responses/BadRequest'
1111 '401':
1112 $ref: '#/components/responses/Unauthorized'
1113 '403':
1114 $ref: '#/components/responses/Forbidden'
1115 '404':
1116 $ref: '#/components/responses/NotFound'
1117 '405':
1118 $ref: '#/components/responses/MethodNotAllowed'
1119 '406':
1120 $ref: '#/components/responses/NotAcceptable'
1121 '409':
1122 $ref: '#/components/responses/Conflict'
1123 '422':
1124 $ref: '#/components/responses/UnprocessableEntity'
1125 '500':
1126 $ref: '#/components/responses/InternalServerError'
1127 '503':
1128 $ref: '#/components/responses/ServiceUnavailable'
1129 '5XX':
1130 $ref: '#/components/responses/UnexpectedError'
1131 default:
1132 $ref: '#/components/responses/UnexpectedError'
1133 '/nslcm/v1/ns_instances/{nsInstanceId}/terminate':
1134 post:
1135 tags:
1136 - "NS instances"
1137 summary: Terminate a NS instance
1138 description: |
1139 Terminate a NS instance. The precondition is that the NS instance must have
1140 been created and must be in INSTANTIATED state. As a result of the
1141 success of this operation, the NFVO creates a "NS Lifecycle Operation
1142 Occurrence" resource for the request, and the NS instance state becomes
1143 NOT_INSTANTIATED.
1144 operationId: terminateNSinstance
1145 security:
1146 - bearerAuth: []
1147 requestBody:
1148 $ref: '#/components/requestBodies/TerminateNsRequest'
1149 responses:
1150 '202':
1151 description: Accepted
1152 headers:
1153 Location:
1154 description: |
1155 It must point to the new "NS Lifecycle Operation Occurrence"
1156 resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
1157 schema:
1158 type: string
1159 format: uri
1160 '400':
1161 $ref: '#/components/responses/BadRequest'
1162 '401':
1163 $ref: '#/components/responses/Unauthorized'
1164 '403':
1165 $ref: '#/components/responses/Forbidden'
1166 '404':
1167 $ref: '#/components/responses/NotFound'
1168 '405':
1169 $ref: '#/components/responses/MethodNotAllowed'
1170 '406':
1171 $ref: '#/components/responses/NotAcceptable'
1172 '409':
1173 $ref: '#/components/responses/Conflict'
1174 '422':
1175 $ref: '#/components/responses/UnprocessableEntity'
1176 '500':
1177 $ref: '#/components/responses/InternalServerError'
1178 '503':
1179 $ref: '#/components/responses/ServiceUnavailable'
1180 '5XX':
1181 $ref: '#/components/responses/UnexpectedError'
1182 default:
1183 $ref: '#/components/responses/UnexpectedError'
garciadeblas60e2ee92018-02-27 19:09:51 +01001184externalDocs:
1185 description: Find out more OSM
1186 url: 'http://osm.etsi.org/wikipub'
1187components:
1188 responses:
1189 BadRequest:
1190 description: Bad request. The server cannot process the request due to a client error.
1191 content:
1192 application/json:
1193 schema:
1194 $ref: '#/components/schemas/ProblemDetails'
1195 Unauthorized:
1196 description: Authorization information is missing or invalid.
1197 content:
1198 application/json:
1199 schema:
1200 $ref: '#/components/schemas/ProblemDetails'
1201 Forbidden:
1202 description: Not enough permissions to do this operation.
1203 content:
1204 application/json:
1205 schema:
1206 $ref: '#/components/schemas/ProblemDetails'
1207 NotFound:
1208 description: The specified resource was not found.
1209 content:
1210 application/json:
1211 schema:
1212 $ref: '#/components/schemas/ProblemDetails'
1213 MethodNotAllowed:
1214 description: This method is not supported for the requested resource.
1215 content:
1216 application/json:
1217 schema:
1218 $ref: '#/components/schemas/ProblemDetails'
1219 NotAcceptable:
1220 description: The requested resource content cannot match the Accept headers sent in the request.
1221 content:
1222 application/json:
1223 schema:
1224 $ref: '#/components/schemas/ProblemDetails'
1225 Conflict:
1226 description: The operation cannot be executed currently, due to a conflict with the state of the resource.
1227 content:
1228 application/json:
1229 schema:
1230 $ref: '#/components/schemas/ProblemDetails'
1231 UnprocessableEntity:
1232 description: The request was well-formed but was unable to be followed due to semantic errors.
1233 content:
1234 application/json:
1235 schema:
1236 $ref: '#/components/schemas/ProblemDetails'
1237 InternalServerError:
1238 description: Internal server error.
1239 content:
1240 application/json:
1241 schema:
1242 $ref: '#/components/schemas/ProblemDetails'
1243 ServiceUnavailable:
1244 description: Service temporarily unavailable.
1245 content:
1246 application/json:
1247 schema:
1248 $ref: '#/components/schemas/ProblemDetails'
1249 UnexpectedError:
1250 description: Unexpected error.
1251 content:
1252 application/json:
1253 schema:
1254 $ref: '#/components/schemas/ProblemDetails'
1255 schemas:
1256 NsDescriptor:
1257 type: string
1258 NsPackage:
1259 type: string
1260 format: binary
garciadeblas63fe88c2018-02-28 19:32:41 +01001261 KeyValuePairs:
garciadeblas60e2ee92018-02-27 19:09:51 +01001262 type: object
1263 additionalProperties:
1264 type: string
1265 CreateNsdInfoRequest:
1266 type: object
1267 properties:
1268 userDefinedData:
garciadeblas63fe88c2018-02-28 19:32:41 +01001269 $ref: '#/components/schemas/KeyValuePairs'
garciadeblas60e2ee92018-02-27 19:09:51 +01001270 NsdOnboardingStateType:
1271 type: string
1272 enum: [CREATED, UPLAODING, PROCESSING, ONBOARDED]
1273 description: |
1274 NSD onboarding state:
1275 * `CREATED` - The NSD information object is created.
1276 * `UPLOADING` - The associated NSD content is being uploaded.
1277 * `PROCESSING` - The associated NSD content is being processed, e.g. validation.
1278 * `ONBOARDED` - The associated NSD content is on-boarded.
1279 NsdOperationalStateType:
1280 type: string
1281 enum: [ENABLED, DISABLED]
1282 description: |
1283 NSD operational state:
1284 * `ENABLED` - The NSD is enabled.
garciadeblas63fe88c2018-02-28 19:32:41 +01001285 * `DISABLED` - The NSD is disabled.
garciadeblas60e2ee92018-02-27 19:09:51 +01001286 NsdUsageStateType:
1287 type: string
1288 enum: [IN_USE, NOT_IN_USE]
1289 description: |
garciadeblas63fe88c2018-02-28 19:32:41 +01001290 NSD usage state:
garciadeblas60e2ee92018-02-27 19:09:51 +01001291 * `IN_USE` - The NSD is in use.
1292 * `NOT_IN_USE` - The NSD is not in use.
1293 NsdInfoModifications:
1294 type: object
1295 properties:
1296 nsdOperationalState:
1297 $ref: '#/components/schemas/NsdOperationalStateType'
1298 userDefinedData:
garciadeblas63fe88c2018-02-28 19:32:41 +01001299 $ref: '#/components/schemas/KeyValuePairs'
garciadeblas60e2ee92018-02-27 19:09:51 +01001300 NsdInfo:
1301 type: object
1302 properties:
1303 id:
1304 description: |
garciadeblas12fcc4b2018-03-02 16:12:02 +01001305 Identifier of the onboarded individual NS descriptor
1306 resource. This identifier is allocated by the NFVO.
garciadeblas60e2ee92018-02-27 19:09:51 +01001307 type: string
1308 format: uuid
1309 nsdId:
1310 description: |
1311 This identifier, which is allocated by the NSD
1312 designer, identifies the NSD in a globally unique
1313 way. It is copied from the NSD content and shall be
1314 present after the NSD content is on-boarded.
1315 type: string
1316 format: uuid
1317 nsdName:
1318 description: |
1319 Name of the onboarded NSD. This information is
1320 copied from the NSD content and shall be present
1321 after the NSD content is on-boarded.
1322 type: string
1323 nsdVersion:
1324 description: |
1325 Version of the on-boarded NSD. This information is
1326 copied from the NSD content and shall be present
1327 after the NSD content is on-boarded.
1328 type: string
1329 nsdDesigner:
1330 description: |
1331 Designer of the on-boarded NSD. This information is
1332 copied from the NSD content and shall be present
1333 after the NSD content is on-boarded.
1334 type: string
1335 nsdInvariantId:
1336 description: |
1337 This identifier, which is allocated by the NSD designer,
1338 identifies an NSD in a version independent manner. This
1339 information is copied from the NSD content and shall be
1340 present after the NSD content is on-boarded.
1341 type: string
garciadeblas63fe88c2018-02-28 19:32:41 +01001342 format: uuid
garciadeblas60e2ee92018-02-27 19:09:51 +01001343 vnfPkgIds:
1344 description: |
1345 List of VNF package identifiers referenced by the on-boarded
1346 NS descriptor resource.
1347 type: array
1348 items:
1349 type: string
1350 format: uuid
1351 pnfdInfoIds:
1352 description: |
1353 List of PNFD identifiers referenced by the on-boarded NS
1354 descriptor resource.
1355 type: array
1356 items:
1357 type: string
1358 format: uuid
1359 nestedNsdInfoIds:
1360 description: |
1361 List of NSD identifiers referenced by the on-boarded NS
1362 descriptor resource.
1363 type: array
1364 items:
1365 type: string
1366 format: uuid
1367 nsdOnboardingState:
garciadeblas63fe88c2018-02-28 19:32:41 +01001368 description: |
1369 Onboarding state of the individual NS descriptor resource.
garciadeblas60e2ee92018-02-27 19:09:51 +01001370 $ref: '#components/schemas/NsdOnboardingStateType'
1371 onboardingFailureDetails:
garciadeblas63fe88c2018-02-28 19:32:41 +01001372 description: |
1373 Failure details of current onboarding procedure. It follows
1374 the "ProblemDetails" structure. It shall be present when the
1375 "nsdOnboardingState" attribute is CREATED and the uploading or
1376 processing fails in NFVO.
garciadeblas60e2ee92018-02-27 19:09:51 +01001377 $ref: '#/components/schemas/ProblemDetails'
1378 nsdOperationalState:
garciadeblas63fe88c2018-02-28 19:32:41 +01001379 description: |
1380 Operational state of the individual NS descriptor resource. This
1381 attribute can be modified with the PATCH method. If the value of
1382 the nsdOnboardingState attribute is not equal to "ONBOARDED", the
1383 value of the nsdOperationalState attribute shall be equal to
1384 "DISABLED".
garciadeblas60e2ee92018-02-27 19:09:51 +01001385 $ref: '#components/schemas/NsdOperationalStateType'
1386 nsdUsagestate:
garciadeblas63fe88c2018-02-28 19:32:41 +01001387 description: |
1388 Usage state of the individual NS descriptor resource. If the value
1389 of the nsdOnboardingState attribute is not equal to "ONBOARDED",
1390 the value of the nsdUsageState attribute shall be equal to
1391 "NOT_IN_USE".
garciadeblas60e2ee92018-02-27 19:09:51 +01001392 $ref: '#components/schemas/NsdUsageStateType'
1393 userDefinedData:
garciadeblas63fe88c2018-02-28 19:32:41 +01001394 $ref: '#/components/schemas/KeyValuePairs'
1395 _links:
1396 description: |
1397 Links to resources related to this resource
1398 type: string
garciadeblas60e2ee92018-02-27 19:09:51 +01001399 self:
garciadeblas63fe88c2018-02-28 19:32:41 +01001400 description: |
1401 URI of this resource
garciadeblas60e2ee92018-02-27 19:09:51 +01001402 type: string
1403 format: uri
1404 nsd_content:
garciadeblas63fe88c2018-02-28 19:32:41 +01001405 description: |
1406 Link to the NSD content resource.
garciadeblas60e2ee92018-02-27 19:09:51 +01001407 type: string
1408 format: uri
1409 required:
1410 - id
garciadeblas63fe88c2018-02-28 19:32:41 +01001411 - nsdOnboardingState
1412 - nsdOperationalState
1413 - nsdUsageState
1414 - _links
1415 - self
1416 - nsd_content
garciadeblas60e2ee92018-02-27 19:09:51 +01001417 ArrayOfNsdInfo:
1418 type: array
1419 items:
1420 $ref: '#/components/schemas/NsdInfo'
garciadeblas60e2ee92018-02-27 19:09:51 +01001421 ProblemDetails:
1422 type: object
1423 properties:
1424 type:
1425 type: string
1426 format: uri
1427 title:
1428 type: string
1429 status:
1430 type: integer
1431 detail:
1432 type: string
1433 instance:
1434 type: string
1435 format: uri
1436 additionalProperties: true
1437 required:
1438 - status
1439 - detail
garciadeblas63fe88c2018-02-28 19:32:41 +01001440 VnfDescriptor:
1441 type: string
1442 VnfPackage:
1443 type: string
1444 format: binary
1445 CreateVnfPkgInfoRequest:
1446 type: object
1447 properties:
1448 userDefinedData:
1449 $ref: '#/components/schemas/KeyValuePairs'
1450 VnfPackageOnboardingStateType:
1451 type: string
1452 enum: [CREATED, UPLAODING, PROCESSING, ONBOARDED]
1453 description: |
1454 VNF Package onboarding state:
1455 * `CREATED` - The VNF Package information object is created.
1456 * `UPLOADING` - The VNF Package is being uploaded.
1457 * `PROCESSING` - The VNF Package is being processed, e.g. validation.
1458 * `ONBOARDED` - The VNF Package is successfully on-boarded.
1459 VnfPackageOperationalStateType:
1460 type: string
1461 enum: [ENABLED, DISABLED]
1462 description: |
1463 VNF Package operational state:
1464 * `ENABLED` - The VNF Package is enabled.
1465 * `DISABLED` - The VNF Package is disabled.
1466 VnfPackageUsageStateType:
1467 type: string
1468 enum: [IN_USE, NOT_IN_USE]
1469 description: |
1470 VNF Package usage state:
1471 * `IN_USE` - The VNF Package is in use.
1472 * `NOT_IN_USE` - The VNF Package is not in use.
1473 #SoftwareImageFormatType:
1474 # type: string
1475 # enum: [AKI, AMI, ARI, BARE, DOCKER, OVA, OVF]
1476 # description: |
1477 # Software image format. Permitted values:
1478 # * `AKI`: a kernel image format
1479 # * `AMI`: a machine image format
1480 # * `ARI`: a ramdisk image format
1481 # * `BARE`: the image does not have a container or metadata envelope
1482 # * `DOCKER`: docker container format
1483 # * `OVA`: OVF package in a tarfile
1484 # * `OVF`: OVF container format
1485 VnfPackageSoftwareImageInfo:
1486 type: object
1487 additionalProperties: true
1488 #properties:
1489 #id:
1490 # description: |
1491 # Identifier of the software image, unique in the scope of a VNFD.
1492 # type: string
1493 #name:
1494 # description: |
1495 # Name of the software image.
1496 # type: string
1497 #provider:
1498 # description: |
1499 # Provider of the software image.
1500 # type: string
1501 #version:
1502 # description: |
1503 # Version of the software image.
1504 # type: string
1505 #checksum:
1506 # description: |
1507 # Checksum of the software image file.
1508 # type: string
1509 #containerFormat:
1510 # description: |
1511 # Container format indicates whether the software image is in a
1512 # file format that also contains metadata about the actual
1513 # software.
1514 # $ref: '#/components/schemas/SoftwareImageFormatType'
1515 #diskFormat:
1516 # description: |
1517 # Disk format of a software image is the format of the underlying
1518 # disk image.
1519 # $ref: '#/components/schemas/DiskFormatType'
1520 # ...
1521 VnfPackageArtifactInfo:
1522 type: object
1523 additionalProperties: true
1524 VnfPkgInfoModifications:
1525 type: object
1526 properties:
1527 operationalState:
1528 $ref: '#/components/schemas/VnfPackageOperationalStateType'
1529 userDefinedData:
1530 $ref: '#/components/schemas/KeyValuePairs'
1531 VnfPkgInfo:
1532 type: object
1533 properties:
1534 id:
1535 description: |
garciadeblas12fcc4b2018-03-02 16:12:02 +01001536 Identifier of the VNF package. This identifier is allocated by the NFVO.
garciadeblas63fe88c2018-02-28 19:32:41 +01001537 type: string
1538 format: uuid
1539 vnfdId:
1540 description: |
1541 This identifier, which is managed by the VNF provider, identifies
1542 the VNF package and the VNFD in a globally unique way. It's
1543 copied from the VNFD of the on-boarded VNF package. It shall be
1544 present after the VNF package content has been on-boarded and
1545 absent otherwise.
1546 type: string
1547 format: uuid
1548 vnfProvider:
1549 description: |
1550 Deovider of the VNF pacakge and the VNFD. This information is
1551 copied from the VNFD. It shall be present after the VNF package
1552 content has been on-boarded and absent otherwise.
1553 type: string
1554 vnfProductName:
1555 description: |
1556 Name to identify the VNF product. Invariant for the VNF product
1557 ligetime. This information is copied from the VNFD. It shall be
1558 present after the VNF package content has been on-boarded and
1559 absent otherwise.
1560 type: string
1561 vnfSoftwareVersion:
1562 description: |
1563 Software version of the VNF. This is changed when there is any
1564 change to the software included in the VNF package. This
1565 information is copied from the VNFD. It shall be present after the
1566 VNF package content has been on-boarded and absent otherwise.
1567 type: string
1568 vnfdVersion:
1569 description: |
1570 The version of the VNFD. TSof information is copied from the VNFD.
1571 It shall be present after the VNF package content has been
1572 on-boarded and absent otherwise.
1573 type: string
1574 checksum:
1575 description: |
1576 Checksum of the on-boarded VNF package. It shall be present after
1577 the VNF package content has been on-boarded and absent otherwise.
1578 type: string
1579 softwareImages:
1580 description: |
1581 Information about VNF package artifacts that are software images.
1582 This attribute shall not be present before the VNF package content
1583 is on-boarded. Otherwise, this attribute shall be present unless
1584 it has been requested to be excluded per attribute selector.
1585 type: array
1586 items:
1587 $ref: '#/components/schemas/VnfPackageSoftwareImageInfo'
1588 additionalArtifacts:
1589 description: |
1590 Information about VNF package artifacts contained in the VNF
1591 package that are not software images. This attribute shall not be
1592 present before the VNF package content is on-boarded. Otherwise,
1593 this attribute shall be present if the VNF package contains
1594 additional artifacts.
1595 type: array
1596 items:
1597 $ref: '#/components/schemas/VnfPackageArtifactInfo'
1598 onboardingState:
1599 description: |
1600 On-boarding state of the VNF package.
1601 $ref: '#components/schemas/VnfPackageOnboardingStateType'
1602 operationalState:
1603 description: |
1604 Operational state of the VNF package. If the value of the
1605 onboardingState attribute is not equal to "ONBOARDED", the value
1606 of the operationalState attribute shall be equal to "DISABLED".
1607 $ref: '#components/schemas/VnfPackageOperationalStateType'
1608 usageState:
1609 description: |
1610 Usage state of the VNF package. If the value of the
1611 onboardingState attribute is not equal to "ONBOARDED", the value
1612 of the usageState attribute shall be equal to "NOT_IN_USE".
1613 $ref: '#components/schemas/VnfPackageUsageStateType'
1614 userDefinedData:
1615 description: |
1616 User defined data for the VNF package
1617 $ref: '#/components/schemas/KeyValuePairs'
1618 _links:
1619 description: |
1620 Links to resources related to this resource
1621 type: string
1622 self:
1623 description: |
1624 URI of this resource
1625 type: string
1626 format: uri
1627 vnfd:
1628 description: |
1629 Link to the VNFD resource. This link shall be present after the VNF
1630 package content is on-boarded.
1631 type: string
1632 format: uri
1633 package_content:
1634 description: |
1635 Link to the "VNF package content" resource.
1636 type: string
1637 format: uri
1638 required:
1639 - id
1640 - onboardingState
1641 - operationalState
1642 - usageState
1643 - _links
1644 - self
1645 - package_content
1646 ArrayOfVnfPkgInfo:
1647 type: array
1648 items:
1649 $ref: '#/components/schemas/VnfPkgInfo'
1650 UploadVnfPackageFromUriRequest:
1651 type: object
1652 properties:
1653 addressInformation:
1654 description: |
1655 Address information of the VNF package content. The NFVO can use
1656 this address to obtain the VNF package.
1657 type: string
1658 format: uri
1659 userName:
1660 description: |
1661 User name to be used for authentication. Shall be present if user
1662 name is needed but has not been provisioned out of band.
1663 type: string
1664 password:
1665 description: |
1666 Password to be used for authentication. Shall be present if password
1667 is needed but has not been provisioned out of band.
1668 type: string
1669 required:
1670 - addressInformation
garciadeblas12fcc4b2018-03-02 16:12:02 +01001671 CreateNsRequest:
1672 type: object
1673 properties:
1674 nsdId:
1675 description: |
1676 Identifier of the NSD that defines the NS instance to be created.
1677 type: string
1678 format: uuid
1679 nsName:
1680 description: |
1681 Human-readable name of the NS instance to be created.
1682 type: string
1683 nsDescription:
1684 description: |
1685 Human-readable description of the NS instance to be created.
1686 type: string
1687 required:
1688 - nsdId
1689 - nsName
1690 - nsDescription
1691 NsStateType:
1692 type: string
1693 enum: [NOT_INSTANTIATED, INSTANTIATED]
1694 description: |
1695 State of the NS instance. Permitted values:
1696 * `NOT_INSTANTIATED`: The NS instance is terminated or not instantiated.
1697 * `INSTANTIATED`: The NS instance is instantiated.
1698 NsInstance:
1699 type: object
1700 properties:
1701 id:
1702 description: Identifier of the NS instance.
1703 type: string
1704 format: uuid
1705 nsInstanceName:
1706 description: Human readable name of the NS instance.
1707 type: string
1708 nsInstanceDescription:
1709 description: Human readable description of the NS instance.
1710 type: string
1711 nsdId:
1712 description: Identifier of the NSD on which the NS instance is based.
1713 type: string
1714 format: uuid
1715 flavourId:
1716 description: |
1717 Identifier of the NS deployment flavour applied to the NS instance.
1718 This attribute shall be present if the nsState attribute value is
1719 INSTANTIATED.
1720 type: string
1721 vnfInstance:
1722 description: |
1723 Information on constituent VNF(s) of the NS instance. If the
1724 "nsState" attribute is INSTANTIATED, at least either one
1725 "vnfInstance" attribute or one "nestedNsInstanceId" attribute shall
1726 be present.
1727 type: array
1728 items:
1729 $ref: '#/components/schemas/VnfInstance'
1730 pnfInfo:
1731 description: |
1732 Information on the PNF(s) that are part of the NS instance.
1733 type: array
1734 items:
1735 $ref: '#/components/schemas/PnfInfo'
1736 virtualLinkInfo:
1737 description: |
1738 Information on the VL(s) of the NS instance. This attribute shall
1739 be present if the nsState attribute value is INSTANTIATED and if
1740 the NS instance has specified connectivity.
1741 type: array
1742 items:
1743 $ref: '#/components/schemas/NsVirtualLinkInfo'
1744 vnffgInfo:
1745 description: |
1746 Information on the VNFFG(s) of the NS instance.
1747 type: array
1748 items:
1749 $ref: '#/components/schemas/VnffgInfo'
1750 sapInfo:
1751 description: |
1752 Information on the SAP(s) of the NS instance.
1753 type: array
1754 items:
1755 $ref: '#/components/schemas/SapInfo'
1756 nestedNsInstanceId:
1757 description: |
1758 Identifier of the nested NS(s) of the NS instance. If the "nsState"
1759 attribute is INSTANTIATED, at least either one "vnfInstance"
1760 attribute or one "nestedNsInstanceId" attribute shall be present.
1761 type: array
1762 items:
1763 type: string
1764 format: uuid
1765 nsState:
1766 description: |
1767 The state of the NS instance.
1768 $ref: '#components/schemas/NsStateType'
1769 nsScaleStatus:
1770 description: |
1771 Status of each NS scaling aspect declared in the applicable DF,
1772 how "big" the NS instance has been scaled w.r.t. that aspect. This
1773 attribute shall be present if the nsState attribute value is
1774 INSTANTIATED.
1775 type: array
1776 items:
1777 $ref: '#/components/schemas/NsScaleInfo'
1778 additionalAffinityOrAntiAffinityRule:
1779 description: |
1780 Information on the additional affinity or anti-affinity rule from
1781 NS instantiation operation. Shall not conflict with rules already
1782 specified in the NSD.
1783 type: array
1784 items:
1785 $ref: '#/components/schemas/AffinityOrAntiAffinityRule'
1786 _links:
1787 description: |
1788 Links to resources related to this resource
1789 type: string
1790 self:
1791 description: |
1792 URI of this resource
1793 type: string
1794 format: uri
1795 nestedNsInstances:
1796 description: |
1797 Links to the nested NS instances of the present NS instance.
1798 type: array
1799 items:
1800 type: string
1801 format: uri
1802 instantiate:
1803 description: |
1804 Link to the "instantiate" task resource, if the related operation
1805 is possible based on the current status of this NS instance
1806 resource (i.e. NS instance in NOT_INSTANTIATED state).
1807 type: string
1808 format: uri
1809 terminate:
1810 description: |
1811 Link to the "terminate" task resource, if the related operation is
1812 possible based on the current status of this NS instance resource
1813 (i.e. NS instance is in INSTANTIATED state).
1814 type: string
1815 format: uri
1816 update:
1817 description: |
1818 Link to the "update" task resource, if the related operation is
1819 possible based on the current status of this NS instance resource
1820 (i.e. NS instance is in INSTANTIATED state).
1821 type: string
1822 format: uri
1823 scale:
1824 description: |
1825 Link to the "scale" task resource, if the related operation is
1826 supported for this NS instance, and is possible based on the
1827 current status of this NS instance resource (i.e. NS instance is in
1828 INSTANTIATED state).
1829 type: string
1830 format: uri
1831 heal:
1832 description: |
1833 Link to the "heal" task resource, if the related operation is
1834 supported for this NS instance, and is possible based on the
1835 current status of this NS instance resource (i.e. NS instance is in
1836 INSTANTIATED state).
1837 type: string
1838 format: uri
1839 required:
1840 - id
1841 - nsInstanceName
1842 - nsInstanceDescription
1843 - nsdId
1844 - nsdInfoId
1845 - nsState
1846 - _links
1847 - self
1848 VnfInstance:
1849 type: object
1850 additionalProperties: true
1851 PnfInfo:
1852 type: object
1853 additionalProperties: true
1854 NsVirtualLinkInfo:
1855 type: object
1856 additionalProperties: true
1857 VnffgInfo:
1858 type: object
1859 additionalProperties: true
1860 SapInfo:
1861 type: object
1862 additionalProperties: true
1863 NsScaleInfo:
1864 type: object
1865 additionalProperties: true
1866 AffinityOrAntiAffinityRule:
1867 type: object
1868 additionalProperties: true
1869 SapData:
1870 type: object
1871 additionalProperties: true
1872 AddPnfData:
1873 type: object
1874 additionalProperties: true
1875 VnfInstanceData:
1876 type: object
1877 additionalProperties: true
1878 VnfLocationConstraint:
1879 type: object
1880 additionalProperties: true
1881 ParamsForVnf:
1882 type: object
1883 additionalProperties: true
1884 InstantiateNsRequest:
1885 type: object
1886 properties:
1887 nsFlavourId:
1888 description: Identifier of the NS deployment flavour to be instantiated.
1889 type: string
1890 sapData:
1891 description: Create data concerning the SAPs of this NS.
1892 type: array
1893 items:
1894 $ref: '#/components/schemas/SapData'
1895 addpnfData:
1896 description: Information on the PNF(s) that are part of this NS.
1897 type: array
1898 items:
1899 $ref: '#/components/schemas/AddPnfData'
1900 vnfInstanceData:
1901 description: |
1902 Specify an existing VNF instance to be used in the NS. If needed,
1903 the VNF Profile to be used for this VNF instance is also provided.
1904 type: array
1905 items:
1906 $ref: '#/components/schemas/VnfInstanceData'
1907 nestedNsInstanceId:
1908 description: |
1909 Specify an existing NS instance to be used as a nested NS within the NS.
1910 type: array
1911 items:
1912 type: string
1913 format: uuid
1914 localizationLanguage:
1915 description: |
1916 Defines the location constraints for the VNF to be instantiated as part of
1917 the NS instantiation. An example can be a constraint for the VNF to be in a
1918 specific geographic location.
1919 type: array
1920 items:
1921 $ref: '#/components/schemas/VnfLocationConstraint'
1922 additionalParamsForNs:
1923 description: |
1924 Allows the OSS/BSS to provide additional parameter(s) at the NS level
1925 (as opposed to the VNF level, which is covered in additionalParamsForVnf).
1926 $ref: '#/components/schemas/KeyValuePairs'
1927 additionalParamsForVnf:
1928 description: |
1929 Allows the OSS/BSS to provide additional parameter(s) per VNF instance
1930 (as opposed to the NS level, which is covered in additionalParamsForNs).
1931 This is for VNFs that are to be created by the NFVO as part of the NS
1932 instantiation and not for existing VNF that are referenced for reuse.
1933 type: array
1934 items:
1935 $ref: '#/components/schemas/ParamsForVnf'
1936 startTime:
1937 description: |
1938 Timestamp indicating the earliest time to instantiate the NS.
1939 Cardinality "0" indicates the NS instantiation takes place immediately.
1940 type: string
1941 format: date-time
1942 nsInstantiationLevelId:
1943 description: |
1944 Identifies one of the NS instantiation levels declared in the DF applicable
1945 to this NS instance. If not present, the default NS instantiation level as
1946 declared in the NSD shall be used.
1947 type: string
1948 additionalAffinityOrAntiAffiniityRule:
1949 description: |
1950 Specifies additional affinity or anti-affinity constraint for the VNF instances
1951 to be instantiated as part of the NS instantiation. Shall not conflict with rules
1952 already specified in the NSD.
1953 type: array
1954 items:
1955 $ref: '#/components/schemas/AffinityOrAntiAffinityRule'
1956 required:
1957 - nsFlavourId
1958 UpdateNsRequest:
1959 type: object
1960 properties:
1961 updateType:
1962 type: string
1963 enum: [ ADD_VNF, REMOVE_VNF, INSTANTIATE_VNF, CHANGE_VNF_DF,
1964 OPERATE_VNF, MODIFY_VNF_INFORMATION, CHANGE_EXTERNAL_VNF_CONNECTIVITY,
1965 REMOVE_SAP, ADD_NESTED_NS, REMOVE_NESTED_NS, ASSOC_NEW_NSD_VERSION,
1966 MOVE_VNF, ADD_VNFFG, REMOVE_VNFFG, UPDATE_VNFFG, CHANGE_NS_DF, ADD_PNF,
1967 MODIFY_PNF, REMOVE_PNF ]
1968 description: |
1969 The type of update. It determines also which one of the following parameters
1970 is present in the operation. Possible values include:
1971 * `ADD_VNF`: Adding existing VNF instance(s)
1972 * `REMOVE_VNF`: Removing VNF instance(s)
1973 * `INSTANTIATE_VNF`: Instantiating new VNF(s)
1974 * `CHANGE_VNF_DF`: Changing VNF DF
1975 * `OPERATE_VNF`: Changing VNF state,
1976 * `MODIFY_VNF_INFORMATION`: Modifying VNF information and/or the configurable
1977 properties of VNF instance(s)
1978 * `CHANGE_EXTERNAL_VNF_CONNECTIVITY`: Changing the external connectivity of VNF
1979 instance(s)
1980 * `ADD_SAP`: Adding SAP(s)
1981 * `REMOVE_SAP`: Removing SAP(s)
1982 * `ADD_NESTED_NS`: Adding existing NS instance(s) as nested NS(s)
1983 * `REMOVE_NESTED_NS`: Removing existing nested NS instance(s)
1984 * `ASSOC_NEW_NSD_VERSION`: Associating a new NSD version to the NS instance
1985 * `MOVE_VNF`: Moving VNF instance(s) from one origin NS instance to another target NS
1986 instance
1987 * `ADD_VNFFG`: Adding VNFFG(s)
1988 * `REMOVE_VNFFG`: Removing VNFFG(s)
1989 * `UPDATE_VNFFG`: Updating VNFFG(s)
1990 * `CHANGE_NS_DF`: Changing NS DF
1991 * `ADD_PNF`: Adding PNF
1992 * `MODIFY_PNF`: Modifying PNF
1993 * `REMOVE_PNF`: Removing PNF
1994 # Specific properties are required for each updateType. Pending to be added.
1995 additionalProperties: true
1996 required:
1997 - updateType
1998 ScaleNsRequest:
1999 type: object
2000 additionalProperties: true
2001 HealNsData:
2002 type: object
2003 additionalProperties: true
2004 HealVnfData:
2005 type: object
2006 additionalProperties: true
2007 HealNsRequest:
2008 type: object
2009 properties:
2010 healNsData:
2011 description: |
2012 Provides the information needed to heal an NS. Either the parameter healNsData
2013 or the parameter healVnfData, but not both shall be provided.
2014 $ref: '#/components/schemas/HealNsData'
2015 healVnfData:
2016 description: |
2017 Provides the information needed to heal a VNF. Either the parameter healNsData
2018 or the parameter healVnfData, but not both shall be provided.
2019 type: array
2020 items:
2021 $ref: '#/components/schemas/HealVnfData'
2022 TerminateNsRequest:
2023 type: object
2024 properties:
2025 terminationTime:
2026 description: |
2027 Timestamp indicating the end time of the NS, i.e. the NS will be terminated
2028 automatically at this timestamp. Cardinality "0" indicates the NS termination
2029 takes place immediately.
2030 type: string
2031 format: date-time
2032 ArrayOfNsInstance:
2033 type: array
2034 items:
2035 $ref: '#/components/schemas/NsInstance'
garciadeblas60e2ee92018-02-27 19:09:51 +01002036 requestBodies:
2037 CreateNsdInfoRequest:
2038 content:
2039 application/json:
2040 schema:
2041 $ref: '#/components/schemas/CreateNsdInfoRequest'
2042 application/yaml:
2043 schema:
2044 $ref: '#/components/schemas/CreateNsdInfoRequest'
2045 NsdInfoModifications:
2046 content:
2047 application/json:
2048 schema:
2049 $ref: '#/components/schemas/NsdInfoModifications'
2050 application/yaml:
2051 schema:
2052 $ref: '#/components/schemas/NsdInfoModifications'
2053 NsdContent:
2054 content:
2055 text/plain:
2056 schema:
2057 $ref: '#/components/schemas/NsDescriptor'
2058 application/zip:
2059 schema:
2060 $ref: '#/components/schemas/NsPackage'
garciadeblas63fe88c2018-02-28 19:32:41 +01002061 CreateVnfPkgInfoRequest:
2062 content:
2063 application/json:
2064 schema:
2065 $ref: '#/components/schemas/CreateVnfPkgInfoRequest'
2066 application/yaml:
2067 schema:
2068 $ref: '#/components/schemas/CreateVnfPkgInfoRequest'
2069 VnfPkgInfoModifications:
2070 content:
2071 application/json:
2072 schema:
2073 $ref: '#/components/schemas/VnfPkgInfoModifications'
2074 application/yaml:
2075 schema:
2076 $ref: '#/components/schemas/VnfPkgInfoModifications'
2077 VnfPackage:
2078 content:
2079 application/zip:
2080 schema:
2081 $ref: '#/components/schemas/VnfPackage'
2082 UploadVnfPackageFromUriRequest:
2083 content:
2084 application/json:
2085 schema:
2086 $ref: '#/components/schemas/UploadVnfPackageFromUriRequest'
2087 application/yaml:
2088 schema:
2089 $ref: '#/components/schemas/UploadVnfPackageFromUriRequest'
garciadeblas12fcc4b2018-03-02 16:12:02 +01002090 CreateNsRequest:
2091 content:
2092 application/json:
2093 schema:
2094 $ref: '#/components/schemas/CreateNsRequest'
2095 application/yaml:
2096 schema:
2097 $ref: '#/components/schemas/CreateNsRequest'
2098 InstantiateNsRequest:
2099 content:
2100 application/json:
2101 schema:
2102 $ref: '#/components/schemas/InstantiateNsRequest'
2103 application/yaml:
2104 schema:
2105 $ref: '#/components/schemas/InstantiateNsRequest'
2106 ScaleNsRequest:
2107 content:
2108 application/json:
2109 schema:
2110 $ref: '#/components/schemas/ScaleNsRequest'
2111 application/yaml:
2112 schema:
2113 $ref: '#/components/schemas/ScaleNsRequest'
2114 UpdateNsRequest:
2115 content:
2116 application/json:
2117 schema:
2118 $ref: '#/components/schemas/UpdateNsRequest'
2119 application/yaml:
2120 schema:
2121 $ref: '#/components/schemas/UpdateNsRequest'
2122 HealNsRequest:
2123 content:
2124 application/json:
2125 schema:
2126 $ref: '#/components/schemas/HealNsRequest'
2127 application/yaml:
2128 schema:
2129 $ref: '#/components/schemas/HealNsRequest'
2130 TerminateNsRequest:
2131 content:
2132 application/json:
2133 schema:
2134 $ref: '#/components/schemas/TerminateNsRequest'
2135 application/yaml:
2136 schema:
2137 $ref: '#/components/schemas/TerminateNsRequest'
garciadeblas60e2ee92018-02-27 19:09:51 +01002138 securitySchemes:
2139 bearerAuth:
2140 type: http
2141 scheme: bearer
2142
garciadeblas12fcc4b2018-03-02 16:12:02 +01002143