Update NBI OpenAPI description
[osm/SOL005.git] / osm-openapi.yaml
1 openapi: 3.0.0
2
3 servers:
4   - description: OSM NB API
5     url: https://osm.etsi.org/nbapi/v1.0.0
6
7 info:
8   description: |
9     This is Open Source MANO Northbound API featuring ETSI NFV SOL005.
10     For more information on OSM, you can visit [http://osm.etsi.org](http://osm.etsi.org).
11     You can send us your comments and questions to OSM_TECH@list.etsi.org
12     or join the [OpenSourceMANO Slack Workplace](https://join.slack.com/t/opensourcemano/shared_invite/enQtMzQ3MzYzNTQ0NDIyLWVkNTE4ZjZjNWI0ZTQyN2VhOTI1MjViMzU1NWYwMWM3ODI4NTQyY2VlODA2ZjczMWIyYTFkZWNiZmFkM2M2ZDk)
13   version: "1.0.0"
14   title: OSM NB API featuring ETSI NFV SOL005
15   contact:
16     email: OSM_TECH@list.etsi.org
17   license:
18     name: Apache 2.0
19     url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
20
21 tags:
22   - name: 'VNF packages'
23     description: Management operations of VNF descriptors and packages
24   - name: 'NS packages'
25     description: Management operations of NS descriptors and packages
26   - name: 'NS instances'
27     description: Management operations of NS instances
28   - name: 'NetSlice templates'
29     description: Management operations of NetSlice Templates
30   - name: 'NetSlice instances'
31     description: Management operations of NetSlice Instances
32 # - name: 'NSPM'
33 #   description: Management operations of NSPMs
34 # - name: 'PDU'
35 #   description: Management operations of PDUs
36 # - name: 'Admin'
37 #   description: Management operations of Administration items
38
39 security:
40   - bearerAuth: []
41
42 paths:
43
44 # BEGIN NS Packages
45   '/nsd/v1/ns_descriptors':
46     get:
47       tags:
48         - "NS packages"
49       summary: Query information about multiple NS descriptor resources
50       description: Query information about multiple NS descriptor resources
51       operationId: getNSDs
52       responses:
53         '200':
54           description: OK
55           content:
56             application/json:
57               schema:
58                 $ref: '#/components/schemas/ArrayOfNsdInfo'
59             application/yaml:
60               schema:
61                 $ref: '#/components/schemas/ArrayOfNsdInfo'
62         '400':
63           $ref: '#/components/responses/BadRequest'
64         '401':
65           $ref: '#/components/responses/Unauthorized'
66         '403':
67           $ref: '#/components/responses/Forbidden'
68         '404':
69           $ref: '#/components/responses/NotFound'
70         '405':
71           $ref: '#/components/responses/MethodNotAllowed'
72         '406':
73           $ref: '#/components/responses/NotAcceptable'
74         '409':
75           $ref: '#/components/responses/Conflict'
76         '422':
77           $ref: '#/components/responses/UnprocessableEntity'
78         '500':
79           $ref: '#/components/responses/InternalServerError'
80         '503':
81           $ref: '#/components/responses/ServiceUnavailable'
82         '5XX':
83           $ref: '#/components/responses/UnexpectedError'
84         default:
85           $ref: '#/components/responses/UnexpectedError'
86     post:
87       tags:
88         - "NS packages"
89       summary: Create a new NS descriptor resource
90       description: Create a new NS descriptor resource
91       operationId: addNSD
92       requestBody:
93         $ref: '#/components/requestBodies/CreateNsdInfoRequest'
94       responses:
95         '201':
96           description: Created
97           headers:
98             Location:
99               schema:
100                 type: string
101                 format: uri
102           content:
103             application/json:
104               schema:
105                 $ref: '#/components/schemas/ObjectId'
106             application/yaml:
107               schema:
108                 $ref: '#/components/schemas/ObjectId'
109         '400':
110           $ref: '#/components/responses/BadRequest'
111         '401':
112           $ref: '#/components/responses/Unauthorized'
113         '403':
114           $ref: '#/components/responses/Forbidden'
115         '404':
116           $ref: '#/components/responses/NotFound'
117         '405':
118           $ref: '#/components/responses/MethodNotAllowed'
119         '406':
120           $ref: '#/components/responses/NotAcceptable'
121         '409':
122           $ref: '#/components/responses/Conflict'
123         '422':
124           $ref: '#/components/responses/UnprocessableEntity'
125         '500':
126           $ref: '#/components/responses/InternalServerError'
127         '503':
128           $ref: '#/components/responses/ServiceUnavailable'
129         '5XX':
130           $ref: '#/components/responses/UnexpectedError'
131         default:
132           $ref: '#/components/responses/UnexpectedError'
133   '/nsd/v1/ns_descriptors/{nsdInfoId}':
134     parameters:
135       - name: nsdInfoId
136         in: path
137         required: true
138         description: NSD Info ID
139         schema:
140           type : string
141     get:
142       tags:
143         - "NS packages"
144       summary: Read information about an individual NS descriptor resource
145       description: Read information about an individual NS descriptor resource
146       operationId: getNSD
147       responses:
148         '200':
149           description: OK
150           content:
151             application/json:
152               schema:
153                 $ref: '#/components/schemas/NsdInfo'
154             application/yaml:
155               schema:
156                 $ref: '#/components/schemas/NsdInfo'
157         '400':
158           $ref: '#/components/responses/BadRequest'
159         '401':
160           $ref: '#/components/responses/Unauthorized'
161         '403':
162           $ref: '#/components/responses/Forbidden'
163         '404':
164           $ref: '#/components/responses/NotFound'
165         '405':
166           $ref: '#/components/responses/MethodNotAllowed'
167         '406':
168           $ref: '#/components/responses/NotAcceptable'
169         '409':
170           $ref: '#/components/responses/Conflict'
171         '422':
172           $ref: '#/components/responses/UnprocessableEntity'
173         '500':
174           $ref: '#/components/responses/InternalServerError'
175         '503':
176           $ref: '#/components/responses/ServiceUnavailable'
177         '5XX':
178           $ref: '#/components/responses/UnexpectedError'
179         default:
180           $ref: '#/components/responses/UnexpectedError'
181     delete:
182       tags:
183         - "NS packages"
184       summary: Delete an individual NS descriptor resource
185       description: Delete an individual NS descriptor resource
186       operationId: deleteNSD
187       responses:
188         '204':
189           description: No Content
190         '400':
191           $ref: '#/components/responses/BadRequest'
192         '401':
193           $ref: '#/components/responses/Unauthorized'
194         '403':
195           $ref: '#/components/responses/Forbidden'
196         '404':
197           $ref: '#/components/responses/NotFound'
198         '405':
199           $ref: '#/components/responses/MethodNotAllowed'
200         '406':
201           $ref: '#/components/responses/NotAcceptable'
202         '409':
203           $ref: '#/components/responses/Conflict'
204         '422':
205           $ref: '#/components/responses/UnprocessableEntity'
206         '500':
207           $ref: '#/components/responses/InternalServerError'
208         '503':
209           $ref: '#/components/responses/ServiceUnavailable'
210         '5XX':
211           $ref: '#/components/responses/UnexpectedError'
212         default:
213           $ref: '#/components/responses/UnexpectedError'
214     patch:
215       tags:
216         - "NS packages"
217       summary: Modify the data of an  individual NS descriptor resource
218       description: Modify the data of an  individual NS descriptor resource
219       operationId: updateNSD
220       requestBody:
221         $ref: '#/components/requestBodies/NsdInfoModifications'
222       responses:
223         '204':
224           description: No Content
225         '400':
226           $ref: '#/components/responses/BadRequest'
227         '401':
228           $ref: '#/components/responses/Unauthorized'
229         '403':
230           $ref: '#/components/responses/Forbidden'
231         '404':
232           $ref: '#/components/responses/NotFound'
233         '405':
234           $ref: '#/components/responses/MethodNotAllowed'
235         '406':
236           $ref: '#/components/responses/NotAcceptable'
237         '409':
238           $ref: '#/components/responses/Conflict'
239         '422':
240           $ref: '#/components/responses/UnprocessableEntity'
241         '500':
242           $ref: '#/components/responses/InternalServerError'
243         '503':
244           $ref: '#/components/responses/ServiceUnavailable'
245         '5XX':
246           $ref: '#/components/responses/UnexpectedError'
247         default:
248           $ref: '#/components/responses/UnexpectedError'
249   '/nsd/v1/ns_descriptors/{nsdInfoId}/nsd_content':
250     parameters:
251       - name: nsdInfoId
252         in: path
253         required: true
254         description: NSD Info ID
255         schema:
256           type : string
257     get:
258       tags:
259         - "NS packages"
260       summary: Fetch the content of a NSD
261       description: Fetch the content of a NSD
262       operationId: getNSDcontent
263       responses:
264         '200':
265           description: OK
266           content:
267             application/zip:
268               schema:
269                 $ref: '#/components/schemas/NsPackage'
270         '206':
271           description: Partial Content
272           headers:
273             Content-Range:
274               schema:
275                 type: string
276           content:
277             application/zip:
278               schema:
279                 $ref: '#/components/schemas/NsPackage'
280         '400':
281           $ref: '#/components/responses/BadRequest'
282         '401':
283           $ref: '#/components/responses/Unauthorized'
284         '403':
285           $ref: '#/components/responses/Forbidden'
286         '404':
287           $ref: '#/components/responses/NotFound'
288         '405':
289           $ref: '#/components/responses/MethodNotAllowed'
290         '406':
291           $ref: '#/components/responses/NotAcceptable'
292         '409':
293           $ref: '#/components/responses/Conflict'
294         '422':
295           $ref: '#/components/responses/UnprocessableEntity'
296         '500':
297           $ref: '#/components/responses/InternalServerError'
298         '503':
299           $ref: '#/components/responses/ServiceUnavailable'
300         '5XX':
301           $ref: '#/components/responses/UnexpectedError'
302         default:
303           $ref: '#/components/responses/UnexpectedError'
304     put:
305       tags:
306         - "NS packages"
307       summary: Upload the content of a NSD
308       description: Upload the content of a NSD
309       operationId: updateNSDcontent
310       requestBody:
311         $ref: '#/components/requestBodies/NsPackage'
312       responses:
313         '202':
314           description: Accepted
315         '204':
316           description: No Content
317         '400':
318           $ref: '#/components/responses/BadRequest'
319         '401':
320           $ref: '#/components/responses/Unauthorized'
321         '403':
322           $ref: '#/components/responses/Forbidden'
323         '404':
324           $ref: '#/components/responses/NotFound'
325         '405':
326           $ref: '#/components/responses/MethodNotAllowed'
327         '406':
328           $ref: '#/components/responses/NotAcceptable'
329         '409':
330           $ref: '#/components/responses/Conflict'
331         '422':
332           $ref: '#/components/responses/UnprocessableEntity'
333         '500':
334           $ref: '#/components/responses/InternalServerError'
335         '503':
336           $ref: '#/components/responses/ServiceUnavailable'
337         '5XX':
338           $ref: '#/components/responses/UnexpectedError'
339         default:
340           $ref: '#/components/responses/UnexpectedError'
341   '/nsd/v1/ns_descriptors/{nsdInfoId}/artifacts/{artifactPath}':
342     parameters:
343       - name: nsdInfoId
344         in: path
345         required: true
346         description: NS Package ID
347         schema:
348           type : string
349       - name: artifactPath
350         in: path
351         required: true
352         description: Artifact Path
353         schema:
354           type : string
355     get:
356       tags:
357         - "NS packages"
358       summary: Fetch individual NS package artifact
359       description: Fetch individual NS package artifact
360       operationId: getNsPkgArtifact
361       responses:
362         '200':
363           description: OK
364           content:
365             application/octet-stream:
366               schema:
367                 type: string
368                 format: binary
369         '206':
370           description: Partial Content
371           headers:
372             Content-Range:
373               schema:
374                 type: string
375           content:
376             application/octet-stream:
377               schema:
378                 type: string
379                 format: binary
380         '400':
381           $ref: '#/components/responses/BadRequest'
382         '401':
383           $ref: '#/components/responses/Unauthorized'
384         '403':
385           $ref: '#/components/responses/Forbidden'
386         '404':
387           $ref: '#/components/responses/NotFound'
388         '405':
389           $ref: '#/components/responses/MethodNotAllowed'
390         '406':
391           $ref: '#/components/responses/NotAcceptable'
392         '409':
393           $ref: '#/components/responses/Conflict'
394         '422':
395           $ref: '#/components/responses/UnprocessableEntity'
396         '500':
397           $ref: '#/components/responses/InternalServerError'
398         '503':
399           $ref: '#/components/responses/ServiceUnavailable'
400         '5XX':
401           $ref: '#/components/responses/UnexpectedError'
402         default:
403           $ref: '#/components/responses/UnexpectedError'
404   '/nsd/v1/ns_descriptors/{nsdInfoId}/nsd':
405     parameters:
406       - name: nsdInfoId
407         in: path
408         required: true
409         description: NS Package ID
410         schema:
411           type : string
412     get:
413       tags:
414         - "NS packages"
415       summary: Read NSD of an on-boarded NS package
416       description: Read NSD of an on-boarded NS package
417       operationId: getNsPkgNsd
418       responses:
419         '200':
420           description: OK
421           content:
422             text/plain:
423               schema:
424                 $ref: '#/components/schemas/NsDescriptor'
425         '400':
426           $ref: '#/components/responses/BadRequest'
427         '401':
428           $ref: '#/components/responses/Unauthorized'
429         '403':
430           $ref: '#/components/responses/Forbidden'
431         '404':
432           $ref: '#/components/responses/NotFound'
433         '405':
434           $ref: '#/components/responses/MethodNotAllowed'
435         '406':
436           $ref: '#/components/responses/NotAcceptable'
437         '409':
438           $ref: '#/components/responses/Conflict'
439         '422':
440           $ref: '#/components/responses/UnprocessableEntity'
441         '500':
442           $ref: '#/components/responses/InternalServerError'
443         '503':
444           $ref: '#/components/responses/ServiceUnavailable'
445         '5XX':
446           $ref: '#/components/responses/UnexpectedError'
447         default:
448           $ref: '#/components/responses/UnexpectedError'
449   '/nsd/v1/ns_descriptors_content':
450     post:
451       tags:
452         - "NS packages"
453       summary: Upload a NS package by providing the content of the NS package
454       description: Upload a NS package by providing the content of the NS package
455       operationId: uploadNsPkgsContent
456       requestBody:
457         content:
458           application/zip:
459             schema:
460               $ref: '#/components/schemas/NsPackage'
461       responses:
462         '201':
463           description: Created
464           headers:
465             Location:
466               schema:
467                 type: string
468                 format: uri
469           content:
470             application/json:
471               schema:
472                 $ref: '#/components/schemas/ObjectId'
473             application/yaml:
474               schema:
475                 $ref: '#/components/schemas/ObjectId'
476         '202':
477           description: Accepted
478         '204':
479           description: No Content
480         '400':
481           $ref: '#/components/responses/BadRequest'
482         '401':
483           $ref: '#/components/responses/Unauthorized'
484         '403':
485           $ref: '#/components/responses/Forbidden'
486         '404':
487           $ref: '#/components/responses/NotFound'
488         '405':
489           $ref: '#/components/responses/MethodNotAllowed'
490         '406':
491           $ref: '#/components/responses/NotAcceptable'
492         '409':
493           $ref: '#/components/responses/Conflict'
494         '422':
495           $ref: '#/components/responses/UnprocessableEntity'
496         '500':
497           $ref: '#/components/responses/InternalServerError'
498         '503':
499           $ref: '#/components/responses/ServiceUnavailable'
500         '5XX':
501           $ref: '#/components/responses/UnexpectedError'
502         default:
503           $ref: '#/components/responses/UnexpectedError'
504     get:
505       tags:
506         - "NS packages"
507       summary: Query information about multiple NS package resources
508       description: Query information about multiple NS package resources
509       operationId: getNsPkgsContent
510       responses:
511         '200':
512           description: OK
513           content:
514             application/json:
515               schema:
516                 $ref: '#/components/schemas/ArrayOfNsdInfo'
517             application/yaml:
518               schema:
519                 $ref: '#/components/schemas/ArrayOfNsdInfo'
520         '206':
521           description: Partial Content
522           headers:
523             Content-Range:
524               schema:
525                 type: string
526           content:
527             application/octet-stream:
528               schema:
529                 type: string
530                 format: binary
531         '400':
532           $ref: '#/components/responses/BadRequest'
533         '401':
534           $ref: '#/components/responses/Unauthorized'
535         '403':
536           $ref: '#/components/responses/Forbidden'
537         '404':
538           $ref: '#/components/responses/NotFound'
539         '405':
540           $ref: '#/components/responses/MethodNotAllowed'
541         '406':
542           $ref: '#/components/responses/NotAcceptable'
543         '409':
544           $ref: '#/components/responses/Conflict'
545         '422':
546           $ref: '#/components/responses/UnprocessableEntity'
547         '500':
548           $ref: '#/components/responses/InternalServerError'
549         '503':
550           $ref: '#/components/responses/ServiceUnavailable'
551         '5XX':
552           $ref: '#/components/responses/UnexpectedError'
553         default:
554           $ref: '#/components/responses/UnexpectedError'
555   '/nsd/v1/ns_descriptors_content/{nsdInfoId}':
556     parameters:
557       - name: nsdInfoId
558         in: path
559         required: true
560         description: NS Package ID
561         schema:
562           type : string
563     get:
564       tags:
565         - "NS packages"
566       summary: Read information about an individual NS package resource
567       description: Read information about an individual NS package resource
568       operationId: getNsPkgsIdContent
569       responses:
570         '200':
571           description: OK
572           content:
573             application/json:
574               schema:
575                 $ref: '#/components/schemas/NsdInfo'
576             application/yaml:
577               schema:
578                 $ref: '#/components/schemas/NsdInfo'
579         '400':
580           $ref: '#/components/responses/BadRequest'
581         '401':
582           $ref: '#/components/responses/Unauthorized'
583         '403':
584           $ref: '#/components/responses/Forbidden'
585         '404':
586           $ref: '#/components/responses/NotFound'
587         '405':
588           $ref: '#/components/responses/MethodNotAllowed'
589         '406':
590           $ref: '#/components/responses/NotAcceptable'
591         '409':
592           $ref: '#/components/responses/Conflict'
593         '422':
594           $ref: '#/components/responses/UnprocessableEntity'
595         '500':
596           $ref: '#/components/responses/InternalServerError'
597         '503':
598           $ref: '#/components/responses/ServiceUnavailable'
599         '5XX':
600           $ref: '#/components/responses/UnexpectedError'
601         default:
602           $ref: '#/components/responses/UnexpectedError'
603     put:
604       tags:
605         - "NS packages"
606       summary: Modify an individual NS package resource
607       description: Modify an individual NS package resource
608       operationId: updateNsPkgsIdContent
609       requestBody:
610         $ref: '#/components/requestBodies/NsdInfoModifications'
611       responses:
612         '204':
613           description: No Content
614         '400':
615           $ref: '#/components/responses/BadRequest'
616         '401':
617           $ref: '#/components/responses/Unauthorized'
618         '403':
619           $ref: '#/components/responses/Forbidden'
620         '404':
621           $ref: '#/components/responses/NotFound'
622         '405':
623           $ref: '#/components/responses/MethodNotAllowed'
624         '406':
625           $ref: '#/components/responses/NotAcceptable'
626         '409':
627           $ref: '#/components/responses/Conflict'
628         '422':
629           $ref: '#/components/responses/UnprocessableEntity'
630         '500':
631           $ref: '#/components/responses/InternalServerError'
632         '503':
633           $ref: '#/components/responses/ServiceUnavailable'
634         '5XX':
635           $ref: '#/components/responses/UnexpectedError'
636         default:
637           $ref: '#/components/responses/UnexpectedError'
638     delete:
639       tags:
640         - "NS packages"
641       summary: Delete an individual NS package resource
642       description: Delete an individual NS package resource
643       operationId: deleteNSPkgsIdContent
644       responses:
645         '204':
646           description: No Content
647         '400':
648           $ref: '#/components/responses/BadRequest'
649         '401':
650           $ref: '#/components/responses/Unauthorized'
651         '403':
652           $ref: '#/components/responses/Forbidden'
653         '404':
654           $ref: '#/components/responses/NotFound'
655         '405':
656           $ref: '#/components/responses/MethodNotAllowed'
657         '406':
658           $ref: '#/components/responses/NotAcceptable'
659         '409':
660           $ref: '#/components/responses/Conflict'
661         '422':
662           $ref: '#/components/responses/UnprocessableEntity'
663         '500':
664           $ref: '#/components/responses/InternalServerError'
665         '503':
666           $ref: '#/components/responses/ServiceUnavailable'
667         '5XX':
668           $ref: '#/components/responses/UnexpectedError'
669         default:
670           $ref: '#/components/responses/UnexpectedError'
671 # END NS Packages
672
673 # BEGIN VNF Packages
674   '/vnfpkgm/v1/vnf_packages':
675     get:
676       tags:
677         - "VNF packages"
678       summary: Query information about multiple VNF package resources
679       description: Query information about multiple VNF package resources
680       operationId: getVnfPkgs
681       responses:
682         '200':
683           description: OK
684           content:
685             application/json:
686               schema:
687                 $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
688             application/yaml:
689               schema:
690                 $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
691         '400':
692           $ref: '#/components/responses/BadRequest'
693         '401':
694           $ref: '#/components/responses/Unauthorized'
695         '403':
696           $ref: '#/components/responses/Forbidden'
697         '404':
698           $ref: '#/components/responses/NotFound'
699         '405':
700           $ref: '#/components/responses/MethodNotAllowed'
701         '406':
702           $ref: '#/components/responses/NotAcceptable'
703         '409':
704           $ref: '#/components/responses/Conflict'
705         '422':
706           $ref: '#/components/responses/UnprocessableEntity'
707         '500':
708           $ref: '#/components/responses/InternalServerError'
709         '503':
710           $ref: '#/components/responses/ServiceUnavailable'
711         '5XX':
712           $ref: '#/components/responses/UnexpectedError'
713         default:
714           $ref: '#/components/responses/UnexpectedError'
715     post:
716       tags:
717         - "VNF packages"
718       summary: Create a new VNF package resource
719       description: Create a new VNF package resource
720       operationId: addVnfPkg
721       requestBody:
722         $ref: '#/components/requestBodies/CreateVnfPkgInfoRequest'
723       responses:
724         '201':
725           description: Created
726           headers:
727             Location:
728               schema:
729                 type: string
730                 format: uri
731           content:
732             application/json:
733               schema:
734                 $ref: '#/components/schemas/ObjectId'
735             application/yaml:
736               schema:
737                 $ref: '#/components/schemas/ObjectId'
738         '400':
739           $ref: '#/components/responses/BadRequest'
740         '401':
741           $ref: '#/components/responses/Unauthorized'
742         '403':
743           $ref: '#/components/responses/Forbidden'
744         '404':
745           $ref: '#/components/responses/NotFound'
746         '405':
747           $ref: '#/components/responses/MethodNotAllowed'
748         '406':
749           $ref: '#/components/responses/NotAcceptable'
750         '409':
751           $ref: '#/components/responses/Conflict'
752         '422':
753           $ref: '#/components/responses/UnprocessableEntity'
754         '500':
755           $ref: '#/components/responses/InternalServerError'
756         '503':
757           $ref: '#/components/responses/ServiceUnavailable'
758         '5XX':
759           $ref: '#/components/responses/UnexpectedError'
760         default:
761           $ref: '#/components/responses/UnexpectedError'
762   '/vnfpkgm/v1/vnf_packages/{vnfPkgId}':
763     parameters:
764       - name: vnfPkgId
765         in: path
766         required: true
767         description: VNF Package ID
768         schema:
769           type : string
770     get:
771       tags:
772         - "VNF packages"
773       summary: Read information about an individual VNF package resource
774       description: Read information about an individual VNF package resource
775       operationId: getVnfPkg
776       responses:
777         '200':
778           description: OK
779           content:
780             application/json:
781               schema:
782                 $ref: '#/components/schemas/VnfPkgInfo'
783             application/yaml:
784               schema:
785                 $ref: '#/components/schemas/VnfPkgInfo'
786         '400':
787           $ref: '#/components/responses/BadRequest'
788         '401':
789           $ref: '#/components/responses/Unauthorized'
790         '403':
791           $ref: '#/components/responses/Forbidden'
792         '404':
793           $ref: '#/components/responses/NotFound'
794         '405':
795           $ref: '#/components/responses/MethodNotAllowed'
796         '406':
797           $ref: '#/components/responses/NotAcceptable'
798         '409':
799           $ref: '#/components/responses/Conflict'
800         '422':
801           $ref: '#/components/responses/UnprocessableEntity'
802         '500':
803           $ref: '#/components/responses/InternalServerError'
804         '503':
805           $ref: '#/components/responses/ServiceUnavailable'
806         '5XX':
807           $ref: '#/components/responses/UnexpectedError'
808         default:
809           $ref: '#/components/responses/UnexpectedError'
810     delete:
811       tags:
812         - "VNF packages"
813       summary: Delete an individual VNF package resource
814       description: Delete an individual VNF package resource
815       operationId: deleteVnfPkg
816       responses:
817         '204':
818           description: No Content
819         '400':
820           $ref: '#/components/responses/BadRequest'
821         '401':
822           $ref: '#/components/responses/Unauthorized'
823         '403':
824           $ref: '#/components/responses/Forbidden'
825         '404':
826           $ref: '#/components/responses/NotFound'
827         '405':
828           $ref: '#/components/responses/MethodNotAllowed'
829         '406':
830           $ref: '#/components/responses/NotAcceptable'
831         '409':
832           $ref: '#/components/responses/Conflict'
833         '422':
834           $ref: '#/components/responses/UnprocessableEntity'
835         '500':
836           $ref: '#/components/responses/InternalServerError'
837         '503':
838           $ref: '#/components/responses/ServiceUnavailable'
839         '5XX':
840           $ref: '#/components/responses/UnexpectedError'
841         default:
842           $ref: '#/components/responses/UnexpectedError'
843     patch:
844       tags:
845         - "VNF packages"
846       summary: Modify an individual VNF package resource
847       description: Modify an individual VNF package resource
848       operationId: updateVnfPkg
849       requestBody:
850         $ref: '#/components/requestBodies/VnfPkgInfoModifications'
851       responses:
852         '204':
853           description: No Content
854         '400':
855           $ref: '#/components/responses/BadRequest'
856         '401':
857           $ref: '#/components/responses/Unauthorized'
858         '403':
859           $ref: '#/components/responses/Forbidden'
860         '404':
861           $ref: '#/components/responses/NotFound'
862         '405':
863           $ref: '#/components/responses/MethodNotAllowed'
864         '406':
865           $ref: '#/components/responses/NotAcceptable'
866         '409':
867           $ref: '#/components/responses/Conflict'
868         '422':
869           $ref: '#/components/responses/UnprocessableEntity'
870         '500':
871           $ref: '#/components/responses/InternalServerError'
872         '503':
873           $ref: '#/components/responses/ServiceUnavailable'
874         '5XX':
875           $ref: '#/components/responses/UnexpectedError'
876         default:
877           $ref: '#/components/responses/UnexpectedError'
878   '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/vnfd':
879     parameters:
880       - name: vnfPkgId
881         in: path
882         required: true
883         description: VNF Package ID
884         schema:
885           type : string
886     get:
887       tags:
888         - "VNF packages"
889       summary: Read VNFD of an on-boarded VNF package
890       description: Read VNFD of an on-boarded VNF package
891       operationId: getVnfPkgVnfd
892       responses:
893         '200':
894           description: OK
895           content:
896             text/plain:
897               schema:
898                 $ref: '#/components/schemas/VnfDescriptor'
899         '400':
900           $ref: '#/components/responses/BadRequest'
901         '401':
902           $ref: '#/components/responses/Unauthorized'
903         '403':
904           $ref: '#/components/responses/Forbidden'
905         '404':
906           $ref: '#/components/responses/NotFound'
907         '405':
908           $ref: '#/components/responses/MethodNotAllowed'
909         '406':
910           $ref: '#/components/responses/NotAcceptable'
911         '409':
912           $ref: '#/components/responses/Conflict'
913         '422':
914           $ref: '#/components/responses/UnprocessableEntity'
915         '500':
916           $ref: '#/components/responses/InternalServerError'
917         '503':
918           $ref: '#/components/responses/ServiceUnavailable'
919         '5XX':
920           $ref: '#/components/responses/UnexpectedError'
921         default:
922           $ref: '#/components/responses/UnexpectedError'
923   '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content':
924     parameters:
925       - name: vnfPkgId
926         in: path
927         required: true
928         description: VNF Package ID
929         schema:
930           type : string
931     get:
932       tags:
933         - "VNF packages"
934       summary: Fetch an on-boarded VNF package
935       description: Fetch an on-boarded VNF package
936       operationId: getVnfPkgContent
937       responses:
938         '200':
939           description: OK
940           content:
941             application/zip:
942               schema:
943                 $ref: '#/components/schemas/VnfPackage'
944         '206':
945           description: Partial Content
946           headers:
947             Content-Range:
948               schema:
949                 type: string
950           content:
951             application/zip:
952               schema:
953                 $ref: '#/components/schemas/VnfPackage'
954         '400':
955           $ref: '#/components/responses/BadRequest'
956         '401':
957           $ref: '#/components/responses/Unauthorized'
958         '403':
959           $ref: '#/components/responses/Forbidden'
960         '404':
961           $ref: '#/components/responses/NotFound'
962         '405':
963           $ref: '#/components/responses/MethodNotAllowed'
964         '406':
965           $ref: '#/components/responses/NotAcceptable'
966         '409':
967           $ref: '#/components/responses/Conflict'
968         '422':
969           $ref: '#/components/responses/UnprocessableEntity'
970         '500':
971           $ref: '#/components/responses/InternalServerError'
972         '503':
973           $ref: '#/components/responses/ServiceUnavailable'
974         '5XX':
975           $ref: '#/components/responses/UnexpectedError'
976         default:
977           $ref: '#/components/responses/UnexpectedError'
978     put:
979       tags:
980         - "VNF packages"
981       summary: Upload a VNF package by providing the content of the VNF package
982       description: Upload a VNF package by providing the content of the VNF package
983       operationId: uploadVnfPkgContent
984       requestBody:
985         content:
986           application/zip:
987             schema:
988               $ref: '#/components/schemas/VnfPackage'
989       responses:
990         '202':
991           description: Accepted
992         '204':
993           description: No Content
994         '400':
995           $ref: '#/components/responses/BadRequest'
996         '401':
997           $ref: '#/components/responses/Unauthorized'
998         '403':
999           $ref: '#/components/responses/Forbidden'
1000         '404':
1001           $ref: '#/components/responses/NotFound'
1002         '405':
1003           $ref: '#/components/responses/MethodNotAllowed'
1004         '406':
1005           $ref: '#/components/responses/NotAcceptable'
1006         '409':
1007           $ref: '#/components/responses/Conflict'
1008         '422':
1009           $ref: '#/components/responses/UnprocessableEntity'
1010         '500':
1011           $ref: '#/components/responses/InternalServerError'
1012         '503':
1013           $ref: '#/components/responses/ServiceUnavailable'
1014         '5XX':
1015           $ref: '#/components/responses/UnexpectedError'
1016         default:
1017           $ref: '#/components/responses/UnexpectedError'
1018   '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}':
1019     parameters:
1020       - name: vnfPkgId
1021         in: path
1022         required: true
1023         description: VNF Package ID
1024         schema:
1025           type : string
1026       - name: artifactPath
1027         in: path
1028         required: true
1029         description: Artifact Path
1030         schema:
1031           type : string
1032     get:
1033       tags:
1034         - "VNF packages"
1035       summary: Fetch individual VNF package artifact
1036       description: Fetch individual VNF package artifact
1037       operationId: getVnfPkgArtifact
1038       responses:
1039         '200':
1040           description: OK
1041           content:
1042             application/octet-stream:
1043               schema:
1044                 type: string
1045                 format: binary
1046         '206':
1047           description: Partial Content
1048           headers:
1049             Content-Range:
1050               schema:
1051                 type: string
1052           content:
1053             application/octet-stream:
1054               schema:
1055                 type: string
1056                 format: binary
1057         '400':
1058           $ref: '#/components/responses/BadRequest'
1059         '401':
1060           $ref: '#/components/responses/Unauthorized'
1061         '403':
1062           $ref: '#/components/responses/Forbidden'
1063         '404':
1064           $ref: '#/components/responses/NotFound'
1065         '405':
1066           $ref: '#/components/responses/MethodNotAllowed'
1067         '406':
1068           $ref: '#/components/responses/NotAcceptable'
1069         '409':
1070           $ref: '#/components/responses/Conflict'
1071         '422':
1072           $ref: '#/components/responses/UnprocessableEntity'
1073         '500':
1074           $ref: '#/components/responses/InternalServerError'
1075         '503':
1076           $ref: '#/components/responses/ServiceUnavailable'
1077         '5XX':
1078           $ref: '#/components/responses/UnexpectedError'
1079         default:
1080           $ref: '#/components/responses/UnexpectedError'
1081   '/vnfpkgm/v1/vnf_packages_content':
1082     post:
1083       tags:
1084         - "VNF packages"
1085       summary: Upload a VNF package by providing the content of the VNF package
1086       description: Upload a VNF package by providing the content of the VNF package
1087       operationId: uploadVnfPkgsContent
1088       requestBody:
1089         content:
1090           application/zip:
1091             schema:
1092               $ref: '#/components/schemas/VnfPackage'
1093       responses:
1094         '201':
1095           description: Created
1096           headers:
1097             Location:
1098               schema:
1099                 type: string
1100                 format: uri
1101           content:
1102             application/json:
1103               schema:
1104                 $ref: '#/components/schemas/ObjectId'
1105             application/yaml:
1106               schema:
1107                 $ref: '#/components/schemas/ObjectId'
1108         '202':
1109           description: Accepted
1110         '204':
1111           description: No Content
1112         '400':
1113           $ref: '#/components/responses/BadRequest'
1114         '401':
1115           $ref: '#/components/responses/Unauthorized'
1116         '403':
1117           $ref: '#/components/responses/Forbidden'
1118         '404':
1119           $ref: '#/components/responses/NotFound'
1120         '405':
1121           $ref: '#/components/responses/MethodNotAllowed'
1122         '406':
1123           $ref: '#/components/responses/NotAcceptable'
1124         '409':
1125           $ref: '#/components/responses/Conflict'
1126         '422':
1127           $ref: '#/components/responses/UnprocessableEntity'
1128         '500':
1129           $ref: '#/components/responses/InternalServerError'
1130         '503':
1131           $ref: '#/components/responses/ServiceUnavailable'
1132         '5XX':
1133           $ref: '#/components/responses/UnexpectedError'
1134         default:
1135           $ref: '#/components/responses/UnexpectedError'
1136     get:
1137       tags:
1138         - "VNF packages"
1139       summary: Query information about multiple VNF package resources
1140       description: Query information about multiple VNF package resources
1141       operationId: getVnfPkgsContent
1142       responses:
1143         '200':
1144           description: OK
1145           content:
1146             application/json:
1147               schema:
1148                 $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
1149             application/yaml:
1150               schema:
1151                 $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
1152         '206':
1153           description: Partial Content
1154           headers:
1155             Content-Range:
1156               schema:
1157                 type: string
1158           content:
1159             application/octet-stream:
1160               schema:
1161                 type: string
1162                 format: binary
1163         '400':
1164           $ref: '#/components/responses/BadRequest'
1165         '401':
1166           $ref: '#/components/responses/Unauthorized'
1167         '403':
1168           $ref: '#/components/responses/Forbidden'
1169         '404':
1170           $ref: '#/components/responses/NotFound'
1171         '405':
1172           $ref: '#/components/responses/MethodNotAllowed'
1173         '406':
1174           $ref: '#/components/responses/NotAcceptable'
1175         '409':
1176           $ref: '#/components/responses/Conflict'
1177         '422':
1178           $ref: '#/components/responses/UnprocessableEntity'
1179         '500':
1180           $ref: '#/components/responses/InternalServerError'
1181         '503':
1182           $ref: '#/components/responses/ServiceUnavailable'
1183         '5XX':
1184           $ref: '#/components/responses/UnexpectedError'
1185         default:
1186           $ref: '#/components/responses/UnexpectedError'
1187   '/vnfpkgm/v1/vnf_packages_content/{packageContentId}':
1188     parameters:
1189       - name: packageContentId
1190         in: path
1191         required: true
1192         description: VNF Package Content ID
1193         schema:
1194           type : string
1195     get:
1196       tags:
1197         - "VNF packages"
1198       summary: Read information about an individual VNF package resource
1199       description: Read information about an individual VNF package resource
1200       operationId: getVnfPkgsIdContent
1201       responses:
1202         '200':
1203           description: OK
1204           content:
1205             application/json:
1206               schema:
1207                 $ref: '#/components/schemas/VnfPkgInfo'
1208             application/yaml:
1209               schema:
1210                 $ref: '#/components/schemas/VnfPkgInfo'
1211         '400':
1212           $ref: '#/components/responses/BadRequest'
1213         '401':
1214           $ref: '#/components/responses/Unauthorized'
1215         '403':
1216           $ref: '#/components/responses/Forbidden'
1217         '404':
1218           $ref: '#/components/responses/NotFound'
1219         '405':
1220           $ref: '#/components/responses/MethodNotAllowed'
1221         '406':
1222           $ref: '#/components/responses/NotAcceptable'
1223         '409':
1224           $ref: '#/components/responses/Conflict'
1225         '422':
1226           $ref: '#/components/responses/UnprocessableEntity'
1227         '500':
1228           $ref: '#/components/responses/InternalServerError'
1229         '503':
1230           $ref: '#/components/responses/ServiceUnavailable'
1231         '5XX':
1232           $ref: '#/components/responses/UnexpectedError'
1233         default:
1234           $ref: '#/components/responses/UnexpectedError'
1235     put:
1236       tags:
1237         - "VNF packages"
1238       summary: Modify an individual VNF package resource
1239       description: Modify an individual VNF package resource
1240       operationId: updateVnfPkgsIdContent
1241       requestBody:
1242         $ref: '#/components/requestBodies/VnfPkgInfoModifications'
1243       responses:
1244         '204':
1245           description: No Content
1246         '400':
1247           $ref: '#/components/responses/BadRequest'
1248         '401':
1249           $ref: '#/components/responses/Unauthorized'
1250         '403':
1251           $ref: '#/components/responses/Forbidden'
1252         '404':
1253           $ref: '#/components/responses/NotFound'
1254         '405':
1255           $ref: '#/components/responses/MethodNotAllowed'
1256         '406':
1257           $ref: '#/components/responses/NotAcceptable'
1258         '409':
1259           $ref: '#/components/responses/Conflict'
1260         '422':
1261           $ref: '#/components/responses/UnprocessableEntity'
1262         '500':
1263           $ref: '#/components/responses/InternalServerError'
1264         '503':
1265           $ref: '#/components/responses/ServiceUnavailable'
1266         '5XX':
1267           $ref: '#/components/responses/UnexpectedError'
1268         default:
1269           $ref: '#/components/responses/UnexpectedError'
1270     delete:
1271       tags:
1272         - "VNF packages"
1273       summary: Delete an individual VNF package resource
1274       description: Delete an individual VNF package resource
1275       operationId: deleteVnfPkgsIdContent
1276       responses:
1277         '204':
1278           description: No Content
1279         '400':
1280           $ref: '#/components/responses/BadRequest'
1281         '401':
1282           $ref: '#/components/responses/Unauthorized'
1283         '403':
1284           $ref: '#/components/responses/Forbidden'
1285         '404':
1286           $ref: '#/components/responses/NotFound'
1287         '405':
1288           $ref: '#/components/responses/MethodNotAllowed'
1289         '406':
1290           $ref: '#/components/responses/NotAcceptable'
1291         '409':
1292           $ref: '#/components/responses/Conflict'
1293         '422':
1294           $ref: '#/components/responses/UnprocessableEntity'
1295         '500':
1296           $ref: '#/components/responses/InternalServerError'
1297         '503':
1298           $ref: '#/components/responses/ServiceUnavailable'
1299         '5XX':
1300           $ref: '#/components/responses/UnexpectedError'
1301         default:
1302           $ref: '#/components/responses/UnexpectedError'
1303 # END VNF Packages
1304
1305 # BEGIN NS Instances
1306   '/nslcm/v1/ns_instances':
1307     get:
1308       tags:
1309         - "NS instances"
1310       summary: Query information about multiple NS instances
1311       description: Query information about multiple NS isntances
1312       operationId: getNSinstances
1313       responses:
1314         '200':
1315           description: OK
1316           content:
1317             application/json:
1318               schema:
1319                 $ref: '#/components/schemas/ArrayOfNsInstance'
1320             application/yaml:
1321               schema:
1322                 $ref: '#/components/schemas/ArrayOfNsInstance'
1323         '400':
1324           $ref: '#/components/responses/BadRequest'
1325         '401':
1326           $ref: '#/components/responses/Unauthorized'
1327         '403':
1328           $ref: '#/components/responses/Forbidden'
1329         '404':
1330           $ref: '#/components/responses/NotFound'
1331         '405':
1332           $ref: '#/components/responses/MethodNotAllowed'
1333         '406':
1334           $ref: '#/components/responses/NotAcceptable'
1335         '409':
1336           $ref: '#/components/responses/Conflict'
1337         '422':
1338           $ref: '#/components/responses/UnprocessableEntity'
1339         '500':
1340           $ref: '#/components/responses/InternalServerError'
1341         '503':
1342           $ref: '#/components/responses/ServiceUnavailable'
1343         '5XX':
1344           $ref: '#/components/responses/UnexpectedError'
1345         default:
1346           $ref: '#/components/responses/UnexpectedError'
1347     post:
1348       tags:
1349         - "NS instances"
1350       summary: Create a new NS instance resource
1351       description: Create a new NS instance resource
1352       operationId: addNSinstance
1353       requestBody:
1354         $ref: '#/components/requestBodies/CreateNsRequest'
1355       responses:
1356         '201':
1357           description: Created
1358           headers:
1359             Location:
1360               schema:
1361                 type: string
1362                 format: uri
1363           content:
1364             application/json:
1365               schema:
1366                 $ref: '#/components/schemas/ObjectId'
1367             application/yaml:
1368               schema:
1369                 $ref: '#/components/schemas/ObjectId'
1370         '400':
1371           $ref: '#/components/responses/BadRequest'
1372         '401':
1373           $ref: '#/components/responses/Unauthorized'
1374         '403':
1375           $ref: '#/components/responses/Forbidden'
1376         '404':
1377           $ref: '#/components/responses/NotFound'
1378         '405':
1379           $ref: '#/components/responses/MethodNotAllowed'
1380         '406':
1381           $ref: '#/components/responses/NotAcceptable'
1382         '409':
1383           $ref: '#/components/responses/Conflict'
1384         '422':
1385           $ref: '#/components/responses/UnprocessableEntity'
1386         '500':
1387           $ref: '#/components/responses/InternalServerError'
1388         '503':
1389           $ref: '#/components/responses/ServiceUnavailable'
1390         '5XX':
1391           $ref: '#/components/responses/UnexpectedError'
1392         default:
1393           $ref: '#/components/responses/UnexpectedError'
1394   '/nslcm/v1/ns_instances/{nsInstanceId}':
1395     parameters:
1396       - name: nsInstanceId
1397         in: path
1398         required: true
1399         description: NS Instance ID
1400         schema:
1401           type : string
1402     get:
1403       tags:
1404         - "NS instances"
1405       summary: Read an individual NS instance resource
1406       description: Read an individual NS instance resource
1407       operationId: getNSinstance
1408       responses:
1409         '200':
1410           description: OK
1411           content:
1412             application/json:
1413               schema:
1414                 $ref: '#/components/schemas/NsInstance'
1415             application/yaml:
1416               schema:
1417                 $ref: '#/components/schemas/NsInstance'
1418         '400':
1419           $ref: '#/components/responses/BadRequest'
1420         '401':
1421           $ref: '#/components/responses/Unauthorized'
1422         '403':
1423           $ref: '#/components/responses/Forbidden'
1424         '404':
1425           $ref: '#/components/responses/NotFound'
1426         '405':
1427           $ref: '#/components/responses/MethodNotAllowed'
1428         '406':
1429           $ref: '#/components/responses/NotAcceptable'
1430         '409':
1431           $ref: '#/components/responses/Conflict'
1432         '422':
1433           $ref: '#/components/responses/UnprocessableEntity'
1434         '500':
1435           $ref: '#/components/responses/InternalServerError'
1436         '503':
1437           $ref: '#/components/responses/ServiceUnavailable'
1438         '5XX':
1439           $ref: '#/components/responses/UnexpectedError'
1440         default:
1441           $ref: '#/components/responses/UnexpectedError'
1442     delete:
1443       tags:
1444         - "NS instances"
1445       summary: Delete an individual NS instance resource
1446       description: Delete an individual NS instance resource
1447       operationId: deleteNSinstance
1448       responses:
1449         '204':
1450           description: No Content
1451         '400':
1452           $ref: '#/components/responses/BadRequest'
1453         '401':
1454           $ref: '#/components/responses/Unauthorized'
1455         '403':
1456           $ref: '#/components/responses/Forbidden'
1457         '404':
1458           $ref: '#/components/responses/NotFound'
1459         '405':
1460           $ref: '#/components/responses/MethodNotAllowed'
1461         '406':
1462           $ref: '#/components/responses/NotAcceptable'
1463         '409':
1464           $ref: '#/components/responses/Conflict'
1465         '422':
1466           $ref: '#/components/responses/UnprocessableEntity'
1467         '500':
1468           $ref: '#/components/responses/InternalServerError'
1469         '503':
1470           $ref: '#/components/responses/ServiceUnavailable'
1471         '5XX':
1472           $ref: '#/components/responses/UnexpectedError'
1473         default:
1474           $ref: '#/components/responses/UnexpectedError'
1475   '/nslcm/v1/ns_instances/{nsInstanceId}/instantiate':
1476     parameters:
1477       - name: nsInstanceId
1478         in: path
1479         required: true
1480         description: NS Instance ID
1481         schema:
1482           type : string
1483     post:
1484       tags:
1485         - "NS instances"
1486       summary: Instantiate a NS
1487       description: |
1488         Instantiate a NS. The precondition is that the NS instance must have
1489         been created and must be in NOT_INSTANTIATED state. As a result of the
1490         success of this operation, the NFVO creates a "NS Lifecycle Operation
1491         Occurrence" resource for the request, and the NS instance state becomes
1492         INSTANTIATED.
1493       operationId: instantiateNSinstance
1494       requestBody:
1495         $ref: '#/components/requestBodies/InstantiateNsRequest'
1496       responses:
1497         '202':
1498           description: Accepted
1499           headers:
1500             Location:
1501               description: |
1502                 It must point to the new "NS Lifecycle Operation Occurrence"
1503                 resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
1504               schema:
1505                 type: string
1506                 format: uri
1507           content:
1508             application/json:
1509               schema:
1510                 $ref: '#/components/schemas/ObjectId'
1511             application/yaml:
1512               schema:
1513                 $ref: '#/components/schemas/ObjectId'
1514         '400':
1515           $ref: '#/components/responses/BadRequest'
1516         '401':
1517           $ref: '#/components/responses/Unauthorized'
1518         '403':
1519           $ref: '#/components/responses/Forbidden'
1520         '404':
1521           $ref: '#/components/responses/NotFound'
1522         '405':
1523           $ref: '#/components/responses/MethodNotAllowed'
1524         '406':
1525           $ref: '#/components/responses/NotAcceptable'
1526         '409':
1527           $ref: '#/components/responses/Conflict'
1528         '422':
1529           $ref: '#/components/responses/UnprocessableEntity'
1530         '500':
1531           $ref: '#/components/responses/InternalServerError'
1532         '503':
1533           $ref: '#/components/responses/ServiceUnavailable'
1534         '5XX':
1535           $ref: '#/components/responses/UnexpectedError'
1536         default:
1537           $ref: '#/components/responses/UnexpectedError'
1538   '/nslcm/v1/ns_instances/{nsInstanceId}/scale':
1539     parameters:
1540       - name: nsInstanceId
1541         in: path
1542         required: true
1543         description: NS Instance ID
1544         schema:
1545           type : string
1546     post:
1547       tags:
1548         - "NS instances"
1549       summary: Scale a NS instance
1550       description: |
1551         Scale a NS instance. The precondition is that the NS instance must have
1552         been created and must be in INSTANTIATED state. As a result of the
1553         success of this operation, the NFVO creates a "NS Lifecycle Operation
1554         Occurrence" resource for the request, and the NS instance state remains
1555         INSTANTIATED.
1556       operationId: scaleNSinstance
1557       requestBody:
1558         $ref: '#/components/requestBodies/ScaleNsRequest'
1559       responses:
1560         '202':
1561           description: Accepted
1562           headers:
1563             Location:
1564               description: |
1565                 It must point to the new "NS Lifecycle Operation Occurrence"
1566                 resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
1567               schema:
1568                 type: string
1569                 format: uri
1570         '400':
1571           $ref: '#/components/responses/BadRequest'
1572         '401':
1573           $ref: '#/components/responses/Unauthorized'
1574         '403':
1575           $ref: '#/components/responses/Forbidden'
1576         '404':
1577           $ref: '#/components/responses/NotFound'
1578         '405':
1579           $ref: '#/components/responses/MethodNotAllowed'
1580         '406':
1581           $ref: '#/components/responses/NotAcceptable'
1582         '409':
1583           $ref: '#/components/responses/Conflict'
1584         '422':
1585           $ref: '#/components/responses/UnprocessableEntity'
1586         '500':
1587           $ref: '#/components/responses/InternalServerError'
1588         '503':
1589           $ref: '#/components/responses/ServiceUnavailable'
1590         '5XX':
1591           $ref: '#/components/responses/UnexpectedError'
1592         default:
1593           $ref: '#/components/responses/UnexpectedError'
1594   '/nslcm/v1/ns_instances/{nsInstanceId}/terminate':
1595     parameters:
1596       - name: nsInstanceId
1597         in: path
1598         required: true
1599         description: NS Instance ID
1600         schema:
1601           type : string
1602     post:
1603       tags:
1604         - "NS instances"
1605       summary: Terminate a NS instance
1606       description: |
1607         Terminate a NS instance. The precondition is that the NS instance must have
1608         been created and must be in INSTANTIATED state. As a result of the
1609         success of this operation, the NFVO creates a "NS Lifecycle Operation
1610         Occurrence" resource for the request, and the NS instance state becomes
1611         NOT_INSTANTIATED.
1612       operationId: terminateNSinstance
1613       requestBody:
1614         # Request data is not required
1615         $ref: '#/components/requestBodies/TerminateNsRequest'
1616       responses:
1617         '202':
1618           description: Accepted
1619           headers:
1620             Location:
1621               description: |
1622                 It must point to the new "NS Lifecycle Operation Occurrence"
1623                 resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
1624               schema:
1625                 type: string
1626                 format: uri
1627           content:
1628             application/json:
1629               schema:
1630                 $ref: '#/components/schemas/ObjectId'
1631             application/yaml:
1632               schema:
1633                 $ref: '#/components/schemas/ObjectId'
1634         '400':
1635           $ref: '#/components/responses/BadRequest'
1636         '401':
1637           $ref: '#/components/responses/Unauthorized'
1638         '403':
1639           $ref: '#/components/responses/Forbidden'
1640         '404':
1641           $ref: '#/components/responses/NotFound'
1642         '405':
1643           $ref: '#/components/responses/MethodNotAllowed'
1644         '406':
1645           $ref: '#/components/responses/NotAcceptable'
1646         '409':
1647           $ref: '#/components/responses/Conflict'
1648         '422':
1649           $ref: '#/components/responses/UnprocessableEntity'
1650         '500':
1651           $ref: '#/components/responses/InternalServerError'
1652         '503':
1653           $ref: '#/components/responses/ServiceUnavailable'
1654         '5XX':
1655           $ref: '#/components/responses/UnexpectedError'
1656         default:
1657           $ref: '#/components/responses/UnexpectedError'
1658   '/nslcm/v1/ns_instances/{nsInstanceId}/action':
1659     parameters:
1660       - name: nsInstanceId
1661         in: path
1662         required: true
1663         description: NS Instance ID
1664         schema:
1665           type : string
1666     post:
1667       tags:
1668         - "NS instances"
1669       summary: Execute an action on a NS instance
1670       description: |
1671         Execute an action on a NS instance.
1672         The NS instance must have been created and must be in INSTANTIATED state.
1673       operationId: actionOnNSinstance
1674       requestBody:
1675         content:
1676           application/json:
1677             schema:
1678               $ref: '#/components/schemas/NSinstanceActionRequest'
1679           application/yaml:
1680             schema:
1681               $ref: '#/components/schemas/NSinstanceActionRequest'
1682       responses:
1683         '202':
1684           description: Accepted
1685           headers:
1686             Location:
1687               description: |
1688                 It must point to the new "NS Lifecycle Operation Occurrence"
1689                 resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
1690               schema:
1691                 type: string
1692                 format: uri
1693           content:
1694             application/json:
1695               schema:
1696                 $ref: '#/components/schemas/ObjectId'
1697             application/yaml:
1698               schema:
1699                 $ref: '#/components/schemas/ObjectId'
1700         '400':
1701           $ref: '#/components/responses/BadRequest'
1702         '401':
1703           $ref: '#/components/responses/Unauthorized'
1704         '403':
1705           $ref: '#/components/responses/Forbidden'
1706         '404':
1707           $ref: '#/components/responses/NotFound'
1708         '405':
1709           $ref: '#/components/responses/MethodNotAllowed'
1710         '406':
1711           $ref: '#/components/responses/NotAcceptable'
1712         '409':
1713           $ref: '#/components/responses/Conflict'
1714         '422':
1715           $ref: '#/components/responses/UnprocessableEntity'
1716         '500':
1717           $ref: '#/components/responses/InternalServerError'
1718         '503':
1719           $ref: '#/components/responses/ServiceUnavailable'
1720         '5XX':
1721           $ref: '#/components/responses/UnexpectedError'
1722         default:
1723           $ref: '#/components/responses/UnexpectedError'
1724   '/nslcm/v1/ns_instances_content':
1725     get:
1726       tags:
1727         - "NS instances"
1728       summary: Query information about multiple NS instances
1729       description: Query information about multiple NS isntances
1730       operationId: getNSinstancesContent
1731       responses:
1732         '200':
1733           description: OK
1734           content:
1735             application/json:
1736               schema:
1737                 $ref: '#/components/schemas/ArrayOfNsInstance'
1738             application/yaml:
1739               schema:
1740                 $ref: '#/components/schemas/ArrayOfNsInstance'
1741         '400':
1742           $ref: '#/components/responses/BadRequest'
1743         '401':
1744           $ref: '#/components/responses/Unauthorized'
1745         '403':
1746           $ref: '#/components/responses/Forbidden'
1747         '404':
1748           $ref: '#/components/responses/NotFound'
1749         '405':
1750           $ref: '#/components/responses/MethodNotAllowed'
1751         '406':
1752           $ref: '#/components/responses/NotAcceptable'
1753         '409':
1754           $ref: '#/components/responses/Conflict'
1755         '422':
1756           $ref: '#/components/responses/UnprocessableEntity'
1757         '500':
1758           $ref: '#/components/responses/InternalServerError'
1759         '503':
1760           $ref: '#/components/responses/ServiceUnavailable'
1761         '5XX':
1762           $ref: '#/components/responses/UnexpectedError'
1763         default:
1764           $ref: '#/components/responses/UnexpectedError'
1765     post:
1766       tags:
1767         - "NS instances"
1768       summary: Create a new NS instance
1769       description: Create a new NS instance
1770       operationId: createNSinstanceContent
1771       requestBody:
1772         $ref: '#/components/requestBodies/CreateNSinstanceContentRequest'
1773       responses:
1774         '201':
1775           description: Created
1776           headers:
1777             Location:
1778               schema:
1779                 type: string
1780                 format: uri
1781           content:
1782             application/json:
1783               schema:
1784                 $ref: '#/components/schemas/CreateNSinstanceContentResponse'
1785             application/yaml:
1786               schema:
1787                 $ref: '#/components/schemas/CreateNSinstanceContentResponse'
1788         '400':
1789           $ref: '#/components/responses/BadRequest'
1790         '401':
1791           $ref: '#/components/responses/Unauthorized'
1792         '403':
1793           $ref: '#/components/responses/Forbidden'
1794         '404':
1795           $ref: '#/components/responses/NotFound'
1796         '405':
1797           $ref: '#/components/responses/MethodNotAllowed'
1798         '406':
1799           $ref: '#/components/responses/NotAcceptable'
1800         '409':
1801           $ref: '#/components/responses/Conflict'
1802         '422':
1803           $ref: '#/components/responses/UnprocessableEntity'
1804         '500':
1805           $ref: '#/components/responses/InternalServerError'
1806         '503':
1807           $ref: '#/components/responses/ServiceUnavailable'
1808         '5XX':
1809           $ref: '#/components/responses/UnexpectedError'
1810         default:
1811           $ref: '#/components/responses/UnexpectedError'
1812   '/nslcm/v1/ns_instances_content/{nsInstanceContentId}':
1813     parameters:
1814       - name: nsInstanceContentId
1815         in: path
1816         required: true
1817         description: NS Instance Content ID
1818         schema:
1819           type : string
1820     get:
1821       tags:
1822         - "NS instances"
1823       summary: Read an individual NS instance resource
1824       description: Read an individual NS instance resource
1825       operationId: getNSinstanceContent
1826       responses:
1827         '200':
1828           description: OK
1829           content:
1830             application/json:
1831               schema:
1832                 $ref: '#/components/schemas/NsInstance'
1833             application/yaml:
1834               schema:
1835                 $ref: '#/components/schemas/NsInstance'
1836         '400':
1837           $ref: '#/components/responses/BadRequest'
1838         '401':
1839           $ref: '#/components/responses/Unauthorized'
1840         '403':
1841           $ref: '#/components/responses/Forbidden'
1842         '404':
1843           $ref: '#/components/responses/NotFound'
1844         '405':
1845           $ref: '#/components/responses/MethodNotAllowed'
1846         '406':
1847           $ref: '#/components/responses/NotAcceptable'
1848         '409':
1849           $ref: '#/components/responses/Conflict'
1850         '422':
1851           $ref: '#/components/responses/UnprocessableEntity'
1852         '500':
1853           $ref: '#/components/responses/InternalServerError'
1854         '503':
1855           $ref: '#/components/responses/ServiceUnavailable'
1856         '5XX':
1857           $ref: '#/components/responses/UnexpectedError'
1858         default:
1859           $ref: '#/components/responses/UnexpectedError'
1860     delete:
1861       tags:
1862         - "NS instances"
1863       summary: Delete an individual NS instance resource
1864       description: Delete an individual NS instance resource
1865       operationId: deleteNSinstanceContent
1866       responses:
1867         '202':
1868           description: Accepted
1869           content:
1870             application/json:
1871               schema:
1872                 $ref: '#/components/schemas/ObjectId'
1873             application/yaml:
1874               schema:
1875                 $ref: '#/components/schemas/ObjectId'
1876         '204':
1877           description: No Content
1878         '400':
1879           $ref: '#/components/responses/BadRequest'
1880         '401':
1881           $ref: '#/components/responses/Unauthorized'
1882         '403':
1883           $ref: '#/components/responses/Forbidden'
1884         '404':
1885           $ref: '#/components/responses/NotFound'
1886         '405':
1887           $ref: '#/components/responses/MethodNotAllowed'
1888         '406':
1889           $ref: '#/components/responses/NotAcceptable'
1890         '409':
1891           $ref: '#/components/responses/Conflict'
1892         '422':
1893           $ref: '#/components/responses/UnprocessableEntity'
1894         '500':
1895           $ref: '#/components/responses/InternalServerError'
1896         '503':
1897           $ref: '#/components/responses/ServiceUnavailable'
1898         '5XX':
1899           $ref: '#/components/responses/UnexpectedError'
1900         default:
1901           $ref: '#/components/responses/UnexpectedError'
1902   '/nslcm/v1/ns_lcm_op_occs':
1903     get:
1904       tags:
1905         - "NS instances"
1906       summary: Query information about multiple NS LCM Operation Occurrences
1907       description: Query information about multiple NS LCM Operation Occurrences
1908       operationId: getNSLCMOpOccs
1909       responses:
1910         '200':
1911           description: OK
1912           content:
1913             application/json:
1914               schema:
1915                 $ref: '#/components/schemas/ArrayOfNsLcmOpOcc'
1916             application/yaml:
1917               schema:
1918                 $ref: '#/components/schemas/ArrayOfNsLcmOpOcc'
1919         '400':
1920           $ref: '#/components/responses/BadRequest'
1921         '401':
1922           $ref: '#/components/responses/Unauthorized'
1923         '403':
1924           $ref: '#/components/responses/Forbidden'
1925         '404':
1926           $ref: '#/components/responses/NotFound'
1927         '405':
1928           $ref: '#/components/responses/MethodNotAllowed'
1929         '406':
1930           $ref: '#/components/responses/NotAcceptable'
1931         '409':
1932           $ref: '#/components/responses/Conflict'
1933         '422':
1934           $ref: '#/components/responses/UnprocessableEntity'
1935         '500':
1936           $ref: '#/components/responses/InternalServerError'
1937         '503':
1938           $ref: '#/components/responses/ServiceUnavailable'
1939         '5XX':
1940           $ref: '#/components/responses/UnexpectedError'
1941         default:
1942           $ref: '#/components/responses/UnexpectedError'
1943   '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}':
1944     parameters:
1945       - name: nsLcmOpOccId
1946         in: path
1947         required: true
1948         description: NS LCM Operation Occurrence ID
1949         schema:
1950           type : string
1951     get:
1952       tags:
1953         - "NS instances"
1954       summary: Query information about an individual NS LCM Operation Occurrence
1955       description: Query information about an individual NS LCM Operation Occurrence
1956       operationId: getNSLCMOpOcc
1957       responses:
1958         '200':
1959           description: OK
1960           content:
1961             application/json:
1962               schema:
1963                 $ref: '#/components/schemas/NsLcmOpOcc'
1964             application/yaml:
1965               schema:
1966                 $ref: '#/components/schemas/NsLcmOpOcc'
1967         '400':
1968           $ref: '#/components/responses/BadRequest'
1969         '401':
1970           $ref: '#/components/responses/Unauthorized'
1971         '403':
1972           $ref: '#/components/responses/Forbidden'
1973         '404':
1974           $ref: '#/components/responses/NotFound'
1975         '405':
1976           $ref: '#/components/responses/MethodNotAllowed'
1977         '406':
1978           $ref: '#/components/responses/NotAcceptable'
1979         '409':
1980           $ref: '#/components/responses/Conflict'
1981         '422':
1982           $ref: '#/components/responses/UnprocessableEntity'
1983         '500':
1984           $ref: '#/components/responses/InternalServerError'
1985         '503':
1986           $ref: '#/components/responses/ServiceUnavailable'
1987         '5XX':
1988           $ref: '#/components/responses/UnexpectedError'
1989         default:
1990           $ref: '#/components/responses/UnexpectedError'
1991   '/nslcm/v1/vnf_instances':
1992     get:
1993       tags:
1994         - "NS instances"
1995       summary: Query information about multiple VNF Instances
1996       description: Query information about multiple VNF Instances
1997       operationId: getVnfInstances
1998       responses:
1999         '200':
2000           description: OK
2001           content:
2002             application/json:
2003               schema:
2004                 $ref: '#/components/schemas/ArrayOfVnfInstanceInfo'
2005             application/yaml:
2006               schema:
2007                 $ref: '#/components/schemas/ArrayOfVnfInstanceInfo'
2008         '400':
2009           $ref: '#/components/responses/BadRequest'
2010         '401':
2011           $ref: '#/components/responses/Unauthorized'
2012         '403':
2013           $ref: '#/components/responses/Forbidden'
2014         '404':
2015           $ref: '#/components/responses/NotFound'
2016         '405':
2017           $ref: '#/components/responses/MethodNotAllowed'
2018         '406':
2019           $ref: '#/components/responses/NotAcceptable'
2020         '409':
2021           $ref: '#/components/responses/Conflict'
2022         '422':
2023           $ref: '#/components/responses/UnprocessableEntity'
2024         '500':
2025           $ref: '#/components/responses/InternalServerError'
2026         '503':
2027           $ref: '#/components/responses/ServiceUnavailable'
2028         '5XX':
2029           $ref: '#/components/responses/UnexpectedError'
2030         default:
2031           $ref: '#/components/responses/UnexpectedError'
2032   '/nslcm/v1/vnf_instances/{vnfInstanceId}':
2033     parameters:
2034       - name: vnfInstanceId
2035         in: path
2036         required: true
2037         description: VNF Instance ID
2038         schema:
2039           type : string
2040     get:
2041       tags:
2042         - "NS instances"
2043       summary: Query information about an individual VNF Instance
2044       description: Query information about an individual VNF Instance
2045       operationId: getVnfInstance
2046       responses:
2047         '200':
2048           description: OK
2049           content:
2050             application/json:
2051               schema:
2052                 $ref: '#/components/schemas/VnfInstanceInfo'
2053             application/yaml:
2054               schema:
2055                 $ref: '#/components/schemas/VnfInstanceInfo'
2056         '400':
2057           $ref: '#/components/responses/BadRequest'
2058         '401':
2059           $ref: '#/components/responses/Unauthorized'
2060         '403':
2061           $ref: '#/components/responses/Forbidden'
2062         '404':
2063           $ref: '#/components/responses/NotFound'
2064         '405':
2065           $ref: '#/components/responses/MethodNotAllowed'
2066         '406':
2067           $ref: '#/components/responses/NotAcceptable'
2068         '409':
2069           $ref: '#/components/responses/Conflict'
2070         '422':
2071           $ref: '#/components/responses/UnprocessableEntity'
2072         '500':
2073           $ref: '#/components/responses/InternalServerError'
2074         '503':
2075           $ref: '#/components/responses/ServiceUnavailable'
2076         '5XX':
2077           $ref: '#/components/responses/UnexpectedError'
2078         default:
2079           $ref: '#/components/responses/UnexpectedError'
2080 # END NS Instances
2081
2082 # BEGIN NetSlice Templates
2083   '/nst/v1/netslice_templates':
2084     get:
2085       tags:
2086         - "NetSlice templates"
2087       summary: Query information about multiple NetSlice template resources
2088       description: Query information about multiple NetSlice template resources
2089       operationId: getNSTs
2090       responses:
2091         '200':
2092           description: OK
2093           content:
2094             application/json:
2095               schema:
2096                 $ref: '#/components/schemas/ArrayOfNstInfo'
2097             application/yaml:
2098               schema:
2099                 $ref: '#/components/schemas/ArrayOfNstInfo'
2100         '400':
2101           $ref: '#/components/responses/BadRequest'
2102         '401':
2103           $ref: '#/components/responses/Unauthorized'
2104         '403':
2105           $ref: '#/components/responses/Forbidden'
2106         '404':
2107           $ref: '#/components/responses/NotFound'
2108         '405':
2109           $ref: '#/components/responses/MethodNotAllowed'
2110         '406':
2111           $ref: '#/components/responses/NotAcceptable'
2112         '409':
2113           $ref: '#/components/responses/Conflict'
2114         '422':
2115           $ref: '#/components/responses/UnprocessableEntity'
2116         '500':
2117           $ref: '#/components/responses/InternalServerError'
2118         '503':
2119           $ref: '#/components/responses/ServiceUnavailable'
2120         '5XX':
2121           $ref: '#/components/responses/UnexpectedError'
2122         default:
2123           $ref: '#/components/responses/UnexpectedError'
2124     post:
2125       tags:
2126         - "NetSlice templates"
2127       summary: Create a new NetSlice template resource
2128       description: Create a new NetSlice template resource
2129       operationId: addNST
2130       requestBody:
2131         $ref: '#/components/requestBodies/CreateNstInfoRequest'
2132       responses:
2133         '201':
2134           description: Created
2135           headers:
2136             Location:
2137               schema:
2138                 type: string
2139                 format: uri
2140           content:
2141             application/json:
2142               schema:
2143                 $ref: '#/components/schemas/ObjectId'
2144             application/yaml:
2145               schema:
2146                 $ref: '#/components/schemas/ObjectId'
2147         '400':
2148           $ref: '#/components/responses/BadRequest'
2149         '401':
2150           $ref: '#/components/responses/Unauthorized'
2151         '403':
2152           $ref: '#/components/responses/Forbidden'
2153         '404':
2154           $ref: '#/components/responses/NotFound'
2155         '405':
2156           $ref: '#/components/responses/MethodNotAllowed'
2157         '406':
2158           $ref: '#/components/responses/NotAcceptable'
2159         '409':
2160           $ref: '#/components/responses/Conflict'
2161         '422':
2162           $ref: '#/components/responses/UnprocessableEntity'
2163         '500':
2164           $ref: '#/components/responses/InternalServerError'
2165         '503':
2166           $ref: '#/components/responses/ServiceUnavailable'
2167         '5XX':
2168           $ref: '#/components/responses/UnexpectedError'
2169         default:
2170           $ref: '#/components/responses/UnexpectedError'
2171   '/nst/v1/netslice_templates/{netsliceTemplateId}':
2172     parameters:
2173       - name: netsliceTemplateId
2174         in: path
2175         required: true
2176         description: NetSlice Template ID
2177         schema:
2178           type : string
2179     get:
2180       tags:
2181         - "NetSlice templates"
2182       summary: Read information about an individual NetSlice template resource
2183       description: Read information about an individual NetSlice template resource
2184       operationId: getNST
2185       responses:
2186         '200':
2187           description: OK
2188           content:
2189             application/json:
2190               schema:
2191                 $ref: '#/components/schemas/NstInfo'
2192             application/yaml:
2193               schema:
2194                 $ref: '#/components/schemas/NstInfo'
2195         '400':
2196           $ref: '#/components/responses/BadRequest'
2197         '401':
2198           $ref: '#/components/responses/Unauthorized'
2199         '403':
2200           $ref: '#/components/responses/Forbidden'
2201         '404':
2202           $ref: '#/components/responses/NotFound'
2203         '405':
2204           $ref: '#/components/responses/MethodNotAllowed'
2205         '406':
2206           $ref: '#/components/responses/NotAcceptable'
2207         '409':
2208           $ref: '#/components/responses/Conflict'
2209         '422':
2210           $ref: '#/components/responses/UnprocessableEntity'
2211         '500':
2212           $ref: '#/components/responses/InternalServerError'
2213         '503':
2214           $ref: '#/components/responses/ServiceUnavailable'
2215         '5XX':
2216           $ref: '#/components/responses/UnexpectedError'
2217         default:
2218           $ref: '#/components/responses/UnexpectedError'
2219     delete:
2220       tags:
2221         - "NetSlice templates"
2222       summary: Delete an individual NetSlice template resource
2223       description: Delete an individual NetSlice template resource
2224       operationId: deleteNST
2225       responses:
2226         '204':
2227           description: No Content
2228         '400':
2229           $ref: '#/components/responses/BadRequest'
2230         '401':
2231           $ref: '#/components/responses/Unauthorized'
2232         '403':
2233           $ref: '#/components/responses/Forbidden'
2234         '404':
2235           $ref: '#/components/responses/NotFound'
2236         '405':
2237           $ref: '#/components/responses/MethodNotAllowed'
2238         '406':
2239           $ref: '#/components/responses/NotAcceptable'
2240         '409':
2241           $ref: '#/components/responses/Conflict'
2242         '422':
2243           $ref: '#/components/responses/UnprocessableEntity'
2244         '500':
2245           $ref: '#/components/responses/InternalServerError'
2246         '503':
2247           $ref: '#/components/responses/ServiceUnavailable'
2248         '5XX':
2249           $ref: '#/components/responses/UnexpectedError'
2250         default:
2251           $ref: '#/components/responses/UnexpectedError'
2252   '/nst/v1/netslice_templates/{netsliceTemplateId}/artifacts/{artifactPath}':
2253     parameters:
2254       - name: netsliceTemplateId
2255         in: path
2256         required: true
2257         description: NetSlice Template ID
2258         schema:
2259           type : string
2260       - name: artifactPath
2261         in: path
2262         required: true
2263         description: Artifact Path
2264         schema:
2265           type : string
2266     get:
2267       tags:
2268         - "NetSlice templates"
2269       summary: Fetch individual NetSlice Template artifact
2270       description: Fetch individual NetSlice Template artifact
2271       operationId: getNstArtifact
2272       responses:
2273         '200':
2274           description: OK
2275           content:
2276             application/octet-stream:
2277               schema:
2278                 type: string
2279                 format: binary
2280         '206':
2281           description: Partial Content
2282           headers:
2283             Content-Range:
2284               schema:
2285                 type: string
2286           content:
2287             application/octet-stream:
2288               schema:
2289                 type: string
2290                 format: binary
2291         '400':
2292           $ref: '#/components/responses/BadRequest'
2293         '401':
2294           $ref: '#/components/responses/Unauthorized'
2295         '403':
2296           $ref: '#/components/responses/Forbidden'
2297         '404':
2298           $ref: '#/components/responses/NotFound'
2299         '405':
2300           $ref: '#/components/responses/MethodNotAllowed'
2301         '406':
2302           $ref: '#/components/responses/NotAcceptable'
2303         '409':
2304           $ref: '#/components/responses/Conflict'
2305         '422':
2306           $ref: '#/components/responses/UnprocessableEntity'
2307         '500':
2308           $ref: '#/components/responses/InternalServerError'
2309         '503':
2310           $ref: '#/components/responses/ServiceUnavailable'
2311         '5XX':
2312           $ref: '#/components/responses/UnexpectedError'
2313         default:
2314           $ref: '#/components/responses/UnexpectedError'
2315   '/nst/v1/netslice_templates/{netsliceTemplateId}/nst':
2316     parameters:
2317       - name: netsliceTemplateId
2318         in: path
2319         required: true
2320         description: NetSlice Template ID
2321         schema:
2322           type : string
2323     get:
2324       tags:
2325         - "NetSlice templates"
2326       summary: Read NST of an on-boarded NetSlice Template
2327       description: Read NST of an on-boarded NetSlice Template
2328       operationId: getNstNst
2329       responses:
2330         '200':
2331           description: OK
2332           content:
2333             text/plain:
2334               schema:
2335                 $ref: '#/components/schemas/NetSliceTemplate'
2336         '400':
2337           $ref: '#/components/responses/BadRequest'
2338         '401':
2339           $ref: '#/components/responses/Unauthorized'
2340         '403':
2341           $ref: '#/components/responses/Forbidden'
2342         '404':
2343           $ref: '#/components/responses/NotFound'
2344         '405':
2345           $ref: '#/components/responses/MethodNotAllowed'
2346         '406':
2347           $ref: '#/components/responses/NotAcceptable'
2348         '409':
2349           $ref: '#/components/responses/Conflict'
2350         '422':
2351           $ref: '#/components/responses/UnprocessableEntity'
2352         '500':
2353           $ref: '#/components/responses/InternalServerError'
2354         '503':
2355           $ref: '#/components/responses/ServiceUnavailable'
2356         '5XX':
2357           $ref: '#/components/responses/UnexpectedError'
2358         default:
2359           $ref: '#/components/responses/UnexpectedError'
2360   '/nst/v1/netslice_templates/{netsliceTemplateId}/nst_content':
2361     parameters:
2362       - name: netsliceTemplateId
2363         in: path
2364         required: true
2365         description: NetSlice Template ID
2366         schema:
2367           type : string
2368     get:
2369       tags:
2370         - "NetSlice templates"
2371       summary: Fetch the content of a NST
2372       description: Fetch the content of a NST
2373       operationId: getNSTcontent
2374       responses:
2375         '200':
2376           description: OK
2377           content:
2378             application/zip:
2379               schema:
2380                 $ref: '#/components/schemas/NetSlicePackage'
2381         '206':
2382           description: Partial Content
2383           headers:
2384             Content-Range:
2385               schema:
2386                 type: string
2387           content:
2388             application/zip:
2389               schema:
2390                 $ref: '#/components/schemas/NetSlicePackage'
2391         '400':
2392           $ref: '#/components/responses/BadRequest'
2393         '401':
2394           $ref: '#/components/responses/Unauthorized'
2395         '403':
2396           $ref: '#/components/responses/Forbidden'
2397         '404':
2398           $ref: '#/components/responses/NotFound'
2399         '405':
2400           $ref: '#/components/responses/MethodNotAllowed'
2401         '406':
2402           $ref: '#/components/responses/NotAcceptable'
2403         '409':
2404           $ref: '#/components/responses/Conflict'
2405         '422':
2406           $ref: '#/components/responses/UnprocessableEntity'
2407         '500':
2408           $ref: '#/components/responses/InternalServerError'
2409         '503':
2410           $ref: '#/components/responses/ServiceUnavailable'
2411         '5XX':
2412           $ref: '#/components/responses/UnexpectedError'
2413         default:
2414           $ref: '#/components/responses/UnexpectedError'
2415     put:
2416       tags:
2417         - "NetSlice templates"
2418       summary: Upload the content of a NST
2419       description: Upload the content of a NST
2420       operationId: updateNSTcontent
2421       requestBody:
2422         $ref: '#/components/requestBodies/NetSlicePackage'
2423       responses:
2424         '202':
2425           description: Accepted
2426         '204':
2427           description: No Content
2428         '400':
2429           $ref: '#/components/responses/BadRequest'
2430         '401':
2431           $ref: '#/components/responses/Unauthorized'
2432         '403':
2433           $ref: '#/components/responses/Forbidden'
2434         '404':
2435           $ref: '#/components/responses/NotFound'
2436         '405':
2437           $ref: '#/components/responses/MethodNotAllowed'
2438         '406':
2439           $ref: '#/components/responses/NotAcceptable'
2440         '409':
2441           $ref: '#/components/responses/Conflict'
2442         '422':
2443           $ref: '#/components/responses/UnprocessableEntity'
2444         '500':
2445           $ref: '#/components/responses/InternalServerError'
2446         '503':
2447           $ref: '#/components/responses/ServiceUnavailable'
2448         '5XX':
2449           $ref: '#/components/responses/UnexpectedError'
2450         default:
2451           $ref: '#/components/responses/UnexpectedError'
2452   '/nst/v1/netslice_templates_content':
2453     post:
2454       tags:
2455         - "NetSlice templates"
2456       summary: Upload a NetSlice package by providing the content of the NetSlice package
2457       description: Upload a NetSlice package by providing the content of the NetSlice package
2458       operationId: uploadNstContent
2459       requestBody:
2460         content:
2461           application/zip:
2462             schema:
2463               $ref: '#/components/schemas/NetSlicePackage'
2464       responses:
2465         '201':
2466           description: Created
2467           headers:
2468             Location:
2469               schema:
2470                 type: string
2471                 format: uri
2472           content:
2473             application/json:
2474               schema:
2475                 $ref: '#/components/schemas/ObjectId'
2476             application/yaml:
2477               schema:
2478                 $ref: '#/components/schemas/ObjectId'
2479         '202':
2480           description: Accepted
2481         '204':
2482           description: No Content
2483         '400':
2484           $ref: '#/components/responses/BadRequest'
2485         '401':
2486           $ref: '#/components/responses/Unauthorized'
2487         '403':
2488           $ref: '#/components/responses/Forbidden'
2489         '404':
2490           $ref: '#/components/responses/NotFound'
2491         '405':
2492           $ref: '#/components/responses/MethodNotAllowed'
2493         '406':
2494           $ref: '#/components/responses/NotAcceptable'
2495         '409':
2496           $ref: '#/components/responses/Conflict'
2497         '422':
2498           $ref: '#/components/responses/UnprocessableEntity'
2499         '500':
2500           $ref: '#/components/responses/InternalServerError'
2501         '503':
2502           $ref: '#/components/responses/ServiceUnavailable'
2503         '5XX':
2504           $ref: '#/components/responses/UnexpectedError'
2505         default:
2506           $ref: '#/components/responses/UnexpectedError'
2507     get:
2508       tags:
2509         - "NetSlice templates"
2510       summary: Query information about multiple NetSlice Template resources
2511       description: Query information about multiple NetSlice Template resources
2512       operationId: getNstContent
2513       responses:
2514         '200':
2515           description: OK
2516           content:
2517             application/json:
2518               schema:
2519                 $ref: '#/components/schemas/ArrayOfNstInfo'
2520             application/yaml:
2521               schema:
2522                 $ref: '#/components/schemas/ArrayOfNstInfo'
2523         '206':
2524           description: Partial Content
2525           headers:
2526             Content-Range:
2527               schema:
2528                 type: string
2529           content:
2530             application/octet-stream:
2531               schema:
2532                 type: string
2533                 format: binary
2534         '400':
2535           $ref: '#/components/responses/BadRequest'
2536         '401':
2537           $ref: '#/components/responses/Unauthorized'
2538         '403':
2539           $ref: '#/components/responses/Forbidden'
2540         '404':
2541           $ref: '#/components/responses/NotFound'
2542         '405':
2543           $ref: '#/components/responses/MethodNotAllowed'
2544         '406':
2545           $ref: '#/components/responses/NotAcceptable'
2546         '409':
2547           $ref: '#/components/responses/Conflict'
2548         '422':
2549           $ref: '#/components/responses/UnprocessableEntity'
2550         '500':
2551           $ref: '#/components/responses/InternalServerError'
2552         '503':
2553           $ref: '#/components/responses/ServiceUnavailable'
2554         '5XX':
2555           $ref: '#/components/responses/UnexpectedError'
2556         default:
2557           $ref: '#/components/responses/UnexpectedError'
2558   '/nst/v1/netslice_templates_content/{netsliceTemplateContentId}':
2559     parameters:
2560       - name: netsliceTemplateContentId
2561         in: path
2562         required: true
2563         description: NetSlice Template ID
2564         schema:
2565           type : string
2566     get:
2567       tags:
2568         - "NetSlice templates"
2569       summary: Read information about an individual NetSlice Template resource
2570       description: Read information about an individual NetSlice Template resource
2571       operationId: getNstIdContent
2572       responses:
2573         '200':
2574           description: OK
2575           content:
2576             application/json:
2577               schema:
2578                 $ref: '#/components/schemas/NstInfo'
2579             application/yaml:
2580               schema:
2581                 $ref: '#/components/schemas/NstInfo'
2582         '400':
2583           $ref: '#/components/responses/BadRequest'
2584         '401':
2585           $ref: '#/components/responses/Unauthorized'
2586         '403':
2587           $ref: '#/components/responses/Forbidden'
2588         '404':
2589           $ref: '#/components/responses/NotFound'
2590         '405':
2591           $ref: '#/components/responses/MethodNotAllowed'
2592         '406':
2593           $ref: '#/components/responses/NotAcceptable'
2594         '409':
2595           $ref: '#/components/responses/Conflict'
2596         '422':
2597           $ref: '#/components/responses/UnprocessableEntity'
2598         '500':
2599           $ref: '#/components/responses/InternalServerError'
2600         '503':
2601           $ref: '#/components/responses/ServiceUnavailable'
2602         '5XX':
2603           $ref: '#/components/responses/UnexpectedError'
2604         default:
2605           $ref: '#/components/responses/UnexpectedError'
2606     put:
2607       tags:
2608         - "NetSlice templates"
2609       summary: Modify an individual NetSlice Template resource
2610       description: Modify an individual NetSlice Template resource
2611       operationId: updateNstIdContent
2612       requestBody:
2613         $ref: '#/components/requestBodies/NstInfoModifications'
2614       responses:
2615         '204':
2616           description: No Content
2617         '400':
2618           $ref: '#/components/responses/BadRequest'
2619         '401':
2620           $ref: '#/components/responses/Unauthorized'
2621         '403':
2622           $ref: '#/components/responses/Forbidden'
2623         '404':
2624           $ref: '#/components/responses/NotFound'
2625         '405':
2626           $ref: '#/components/responses/MethodNotAllowed'
2627         '406':
2628           $ref: '#/components/responses/NotAcceptable'
2629         '409':
2630           $ref: '#/components/responses/Conflict'
2631         '422':
2632           $ref: '#/components/responses/UnprocessableEntity'
2633         '500':
2634           $ref: '#/components/responses/InternalServerError'
2635         '503':
2636           $ref: '#/components/responses/ServiceUnavailable'
2637         '5XX':
2638           $ref: '#/components/responses/UnexpectedError'
2639         default:
2640           $ref: '#/components/responses/UnexpectedError'
2641     delete:
2642       tags:
2643         - "NetSlice templates"
2644       summary: Delete an individual NetSlice Template resource
2645       description: Delete an individual NetSlice Template resource
2646       operationId: deleteNstIdContent
2647       responses:
2648         '204':
2649           description: No Content
2650         '400':
2651           $ref: '#/components/responses/BadRequest'
2652         '401':
2653           $ref: '#/components/responses/Unauthorized'
2654         '403':
2655           $ref: '#/components/responses/Forbidden'
2656         '404':
2657           $ref: '#/components/responses/NotFound'
2658         '405':
2659           $ref: '#/components/responses/MethodNotAllowed'
2660         '406':
2661           $ref: '#/components/responses/NotAcceptable'
2662         '409':
2663           $ref: '#/components/responses/Conflict'
2664         '422':
2665           $ref: '#/components/responses/UnprocessableEntity'
2666         '500':
2667           $ref: '#/components/responses/InternalServerError'
2668         '503':
2669           $ref: '#/components/responses/ServiceUnavailable'
2670         '5XX':
2671           $ref: '#/components/responses/UnexpectedError'
2672         default:
2673           $ref: '#/components/responses/UnexpectedError'
2674 # END NetSlice Templates
2675
2676 # BEGIN NetSlice Instances
2677   '/nsilcm/v1/netslice_instances':
2678     get:
2679       tags:
2680         - "NetSlice instances"
2681       summary: Query information about multiple NetSlice instances
2682       description: Query information about multiple NetSlice isntances
2683       operationId: getNSIs
2684       responses:
2685         '200':
2686           description: OK
2687           content:
2688             application/json:
2689               schema:
2690                 $ref: '#/components/schemas/ArrayOfNetSliceInstance'
2691             application/yaml:
2692               schema:
2693                 $ref: '#/components/schemas/ArrayOfNetSliceInstance'
2694         '400':
2695           $ref: '#/components/responses/BadRequest'
2696         '401':
2697           $ref: '#/components/responses/Unauthorized'
2698         '403':
2699           $ref: '#/components/responses/Forbidden'
2700         '404':
2701           $ref: '#/components/responses/NotFound'
2702         '405':
2703           $ref: '#/components/responses/MethodNotAllowed'
2704         '406':
2705           $ref: '#/components/responses/NotAcceptable'
2706         '409':
2707           $ref: '#/components/responses/Conflict'
2708         '422':
2709           $ref: '#/components/responses/UnprocessableEntity'
2710         '500':
2711           $ref: '#/components/responses/InternalServerError'
2712         '503':
2713           $ref: '#/components/responses/ServiceUnavailable'
2714         '5XX':
2715           $ref: '#/components/responses/UnexpectedError'
2716         default:
2717           $ref: '#/components/responses/UnexpectedError'
2718     post:
2719       tags:
2720         - "NetSlice instances"
2721       summary: Create a new NetSlice instance resource
2722       description: Create a new NetSlice instance resource
2723       operationId: addNSI
2724       requestBody:
2725         $ref: '#/components/requestBodies/CreateNsiRequest'
2726       responses:
2727         '201':
2728           description: Created
2729           headers:
2730             Location:
2731               schema:
2732                 type: string
2733                 format: uri
2734           content:
2735             application/json:
2736               schema:
2737                 $ref: '#/components/schemas/ObjectId'
2738             application/yaml:
2739               schema:
2740                 $ref: '#/components/schemas/ObjectId'
2741         '400':
2742           $ref: '#/components/responses/BadRequest'
2743         '401':
2744           $ref: '#/components/responses/Unauthorized'
2745         '403':
2746           $ref: '#/components/responses/Forbidden'
2747         '404':
2748           $ref: '#/components/responses/NotFound'
2749         '405':
2750           $ref: '#/components/responses/MethodNotAllowed'
2751         '406':
2752           $ref: '#/components/responses/NotAcceptable'
2753         '409':
2754           $ref: '#/components/responses/Conflict'
2755         '422':
2756           $ref: '#/components/responses/UnprocessableEntity'
2757         '500':
2758           $ref: '#/components/responses/InternalServerError'
2759         '503':
2760           $ref: '#/components/responses/ServiceUnavailable'
2761         '5XX':
2762           $ref: '#/components/responses/UnexpectedError'
2763         default:
2764           $ref: '#/components/responses/UnexpectedError'
2765   '/nsilcm/v1/netslice_instances/{netsliceInstanceId}':
2766     parameters:
2767       - name: netsliceInstanceId
2768         in: path
2769         required: true
2770         description: NetSlice Instance ID
2771         schema:
2772           type : string
2773     get:
2774       tags:
2775         - "NetSlice instances"
2776       summary: Read an individual NetSlice instance resource
2777       description: Read an individual NetSlice instance resource
2778       operationId: getNSI
2779       responses:
2780         '200':
2781           description: OK
2782           content:
2783             application/json:
2784               schema:
2785                 $ref: '#/components/schemas/NetSliceInstance'
2786             application/yaml:
2787               schema:
2788                 $ref: '#/components/schemas/NetSliceInstance'
2789         '400':
2790           $ref: '#/components/responses/BadRequest'
2791         '401':
2792           $ref: '#/components/responses/Unauthorized'
2793         '403':
2794           $ref: '#/components/responses/Forbidden'
2795         '404':
2796           $ref: '#/components/responses/NotFound'
2797         '405':
2798           $ref: '#/components/responses/MethodNotAllowed'
2799         '406':
2800           $ref: '#/components/responses/NotAcceptable'
2801         '409':
2802           $ref: '#/components/responses/Conflict'
2803         '422':
2804           $ref: '#/components/responses/UnprocessableEntity'
2805         '500':
2806           $ref: '#/components/responses/InternalServerError'
2807         '503':
2808           $ref: '#/components/responses/ServiceUnavailable'
2809         '5XX':
2810           $ref: '#/components/responses/UnexpectedError'
2811         default:
2812           $ref: '#/components/responses/UnexpectedError'
2813     delete:
2814       tags:
2815         - "NetSlice instances"
2816       summary: Delete an individual NetSlice instance resource
2817       description: Delete an individual NetSlice instance resource
2818       operationId: deleteNSI
2819       responses:
2820         '204':
2821           description: No Content
2822         '400':
2823           $ref: '#/components/responses/BadRequest'
2824         '401':
2825           $ref: '#/components/responses/Unauthorized'
2826         '403':
2827           $ref: '#/components/responses/Forbidden'
2828         '404':
2829           $ref: '#/components/responses/NotFound'
2830         '405':
2831           $ref: '#/components/responses/MethodNotAllowed'
2832         '406':
2833           $ref: '#/components/responses/NotAcceptable'
2834         '409':
2835           $ref: '#/components/responses/Conflict'
2836         '422':
2837           $ref: '#/components/responses/UnprocessableEntity'
2838         '500':
2839           $ref: '#/components/responses/InternalServerError'
2840         '503':
2841           $ref: '#/components/responses/ServiceUnavailable'
2842         '5XX':
2843           $ref: '#/components/responses/UnexpectedError'
2844         default:
2845           $ref: '#/components/responses/UnexpectedError'
2846   '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/instantiate':
2847     parameters:
2848       - name: netsliceInstanceId
2849         in: path
2850         required: true
2851         description: NetSlice Instance ID
2852         schema:
2853           type : string
2854     post:
2855       tags:
2856         - "NetSlice instances"
2857       summary: Instantiate a NetSlice
2858       description: |
2859         Instantiate a NetSlice. The precondition is that the NetSlice instance
2860         must have been created and must be in NOT_INSTANTIATED state. As a result
2861         of the success of this operation, the NFVO creates a "NetSlice Lifecycle
2862         Operation Occurrence" resource for the request, and the NS instance state
2863         becomes INSTANTIATED.
2864       operationId: instantiateNSI
2865       requestBody:
2866         $ref: '#/components/requestBodies/InstantiateNsiRequest'
2867       responses:
2868         '202':
2869           description: Accepted
2870           headers:
2871             Location:
2872               description: |
2873                 It must point to the new "NetSlice Lifecycle Operation Occurrence"
2874                 resource, i.e. an URI like ".../nsi_lcm_op_occs/{nsiLcmOpOccId}"
2875               schema:
2876                 type: string
2877                 format: uri
2878           content:
2879             application/json:
2880               schema:
2881                 $ref: '#/components/schemas/ObjectId'
2882             application/yaml:
2883               schema:
2884                 $ref: '#/components/schemas/ObjectId'
2885         '400':
2886           $ref: '#/components/responses/BadRequest'
2887         '401':
2888           $ref: '#/components/responses/Unauthorized'
2889         '403':
2890           $ref: '#/components/responses/Forbidden'
2891         '404':
2892           $ref: '#/components/responses/NotFound'
2893         '405':
2894           $ref: '#/components/responses/MethodNotAllowed'
2895         '406':
2896           $ref: '#/components/responses/NotAcceptable'
2897         '409':
2898           $ref: '#/components/responses/Conflict'
2899         '422':
2900           $ref: '#/components/responses/UnprocessableEntity'
2901         '500':
2902           $ref: '#/components/responses/InternalServerError'
2903         '503':
2904           $ref: '#/components/responses/ServiceUnavailable'
2905         '5XX':
2906           $ref: '#/components/responses/UnexpectedError'
2907         default:
2908           $ref: '#/components/responses/UnexpectedError'
2909   '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/terminate':
2910     parameters:
2911       - name: netsliceInstanceId
2912         in: path
2913         required: true
2914         description: NetSlice Instance ID
2915         schema:
2916           type : string
2917     post:
2918       tags:
2919         - "NetSlice instances"
2920       summary: Terminate a NetSlice instance
2921       description: |
2922         Terminate a NetSlice instance. The precondition is that the NetSlice instance
2923         must have been created and must be in INSTANTIATED state. As a result of the
2924         success of this operation, the NFVO creates a "NetSlice Lifecycle Operation
2925         Occurrence" resource for the request, and the NetSlice instance state becomes
2926         NOT_INSTANTIATED.
2927       operationId: terminateNSI
2928       requestBody:
2929         # Request data is not required
2930         $ref: '#/components/requestBodies/TerminateNsiRequest'
2931       responses:
2932         '202':
2933           description: Accepted
2934           headers:
2935             Location:
2936               description: |
2937                 It must point to the new "NetSlice Lifecycle Operation Occurrence"
2938                 resource, i.e. an URI like ".../nsi_lcm_op_occs/{nsiLcmOpOccId}"
2939               schema:
2940                 type: string
2941                 format: uri
2942           content:
2943             application/json:
2944               schema:
2945                 $ref: '#/components/schemas/ObjectId'
2946             application/yaml:
2947               schema:
2948                 $ref: '#/components/schemas/ObjectId'
2949         '400':
2950           $ref: '#/components/responses/BadRequest'
2951         '401':
2952           $ref: '#/components/responses/Unauthorized'
2953         '403':
2954           $ref: '#/components/responses/Forbidden'
2955         '404':
2956           $ref: '#/components/responses/NotFound'
2957         '405':
2958           $ref: '#/components/responses/MethodNotAllowed'
2959         '406':
2960           $ref: '#/components/responses/NotAcceptable'
2961         '409':
2962           $ref: '#/components/responses/Conflict'
2963         '422':
2964           $ref: '#/components/responses/UnprocessableEntity'
2965         '500':
2966           $ref: '#/components/responses/InternalServerError'
2967         '503':
2968           $ref: '#/components/responses/ServiceUnavailable'
2969         '5XX':
2970           $ref: '#/components/responses/UnexpectedError'
2971         default:
2972           $ref: '#/components/responses/UnexpectedError'
2973   '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/action':
2974     parameters:
2975       - name: netsliceInstanceId
2976         in: path
2977         required: true
2978         description: NetSlice Instance ID
2979         schema:
2980           type : string
2981     post:
2982       tags:
2983         - "NetSlice instances"
2984       summary: Execute an action on a NetSlice instance
2985       description: |
2986         Execute an action on a NetSlice instance.
2987         The NetSlice instance must have been created and must be in INSTANTIATED state.
2988       operationId: actionOnNSI
2989       requestBody:
2990         content:
2991           application/json:
2992             schema:
2993               $ref: '#/components/schemas/NsiActionRequest'
2994           application/yaml:
2995             schema:
2996               $ref: '#/components/schemas/NsiActionRequest'
2997       responses:
2998         '202':
2999           description: Accepted
3000           headers:
3001             Location:
3002               description: |
3003                 It must point to the new "NS Lifecycle Operation Occurrence"
3004                 resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
3005               schema:
3006                 type: string
3007                 format: uri
3008           content:
3009             application/json:
3010               schema:
3011                 $ref: '#/components/schemas/ObjectId'
3012             application/yaml:
3013               schema:
3014                 $ref: '#/components/schemas/ObjectId'
3015         '400':
3016           $ref: '#/components/responses/BadRequest'
3017         '401':
3018           $ref: '#/components/responses/Unauthorized'
3019         '403':
3020           $ref: '#/components/responses/Forbidden'
3021         '404':
3022           $ref: '#/components/responses/NotFound'
3023         '405':
3024           $ref: '#/components/responses/MethodNotAllowed'
3025         '406':
3026           $ref: '#/components/responses/NotAcceptable'
3027         '409':
3028           $ref: '#/components/responses/Conflict'
3029         '422':
3030           $ref: '#/components/responses/UnprocessableEntity'
3031         '500':
3032           $ref: '#/components/responses/InternalServerError'
3033         '503':
3034           $ref: '#/components/responses/ServiceUnavailable'
3035         '5XX':
3036           $ref: '#/components/responses/UnexpectedError'
3037         default:
3038           $ref: '#/components/responses/UnexpectedError'
3039   '/nsilcm/v1/netslice_instances_content':
3040     get:
3041       tags:
3042         - "NetSlice instances"
3043       summary: Query information about multiple NetSlice instances
3044       description: Query information about multiple NetSlice isntances
3045       operationId: getNSIsContent
3046       responses:
3047         '200':
3048           description: OK
3049           content:
3050             application/json:
3051               schema:
3052                 $ref: '#/components/schemas/ArrayOfNetSliceInstance'
3053             application/yaml:
3054               schema:
3055                 $ref: '#/components/schemas/ArrayOfNetSliceInstance'
3056         '400':
3057           $ref: '#/components/responses/BadRequest'
3058         '401':
3059           $ref: '#/components/responses/Unauthorized'
3060         '403':
3061           $ref: '#/components/responses/Forbidden'
3062         '404':
3063           $ref: '#/components/responses/NotFound'
3064         '405':
3065           $ref: '#/components/responses/MethodNotAllowed'
3066         '406':
3067           $ref: '#/components/responses/NotAcceptable'
3068         '409':
3069           $ref: '#/components/responses/Conflict'
3070         '422':
3071           $ref: '#/components/responses/UnprocessableEntity'
3072         '500':
3073           $ref: '#/components/responses/InternalServerError'
3074         '503':
3075           $ref: '#/components/responses/ServiceUnavailable'
3076         '5XX':
3077           $ref: '#/components/responses/UnexpectedError'
3078         default:
3079           $ref: '#/components/responses/UnexpectedError'
3080     post:
3081       tags:
3082         - "NetSlice instances"
3083       summary: Create a new NetSlice instance
3084       description: Create a new NetSlice instance
3085       operationId: createNSIContent
3086       requestBody:
3087         $ref: '#/components/requestBodies/CreateNsiContentRequest'
3088       responses:
3089         '201':
3090           description: Created
3091           headers:
3092             Location:
3093               schema:
3094                 type: string
3095                 format: uri
3096           content:
3097             application/json:
3098               schema:
3099                 $ref: '#/components/schemas/CreateNsiContentResponse'
3100             application/yaml:
3101               schema:
3102                 $ref: '#/components/schemas/CreateNsiContentResponse'
3103         '400':
3104           $ref: '#/components/responses/BadRequest'
3105         '401':
3106           $ref: '#/components/responses/Unauthorized'
3107         '403':
3108           $ref: '#/components/responses/Forbidden'
3109         '404':
3110           $ref: '#/components/responses/NotFound'
3111         '405':
3112           $ref: '#/components/responses/MethodNotAllowed'
3113         '406':
3114           $ref: '#/components/responses/NotAcceptable'
3115         '409':
3116           $ref: '#/components/responses/Conflict'
3117         '422':
3118           $ref: '#/components/responses/UnprocessableEntity'
3119         '500':
3120           $ref: '#/components/responses/InternalServerError'
3121         '503':
3122           $ref: '#/components/responses/ServiceUnavailable'
3123         '5XX':
3124           $ref: '#/components/responses/UnexpectedError'
3125         default:
3126           $ref: '#/components/responses/UnexpectedError'
3127   '/nsilcm/v1/netslice_instances_content/{netsliceInstanceContentId}':
3128     parameters:
3129       - name: netsliceInstanceContentId
3130         in: path
3131         required: true
3132         description: NetSlice Instance Content ID
3133         schema:
3134           type : string
3135     get:
3136       tags:
3137         - "NetSlice instances"
3138       summary: Read an individual NetSlice instance resource
3139       description: Read an individual NetSlice instance resource
3140       operationId: getNSIContent
3141       responses:
3142         '200':
3143           description: OK
3144           content:
3145             application/json:
3146               schema:
3147                 $ref: '#/components/schemas/NetSliceInstance'
3148             application/yaml:
3149               schema:
3150                 $ref: '#/components/schemas/NetSliceInstance'
3151         '400':
3152           $ref: '#/components/responses/BadRequest'
3153         '401':
3154           $ref: '#/components/responses/Unauthorized'
3155         '403':
3156           $ref: '#/components/responses/Forbidden'
3157         '404':
3158           $ref: '#/components/responses/NotFound'
3159         '405':
3160           $ref: '#/components/responses/MethodNotAllowed'
3161         '406':
3162           $ref: '#/components/responses/NotAcceptable'
3163         '409':
3164           $ref: '#/components/responses/Conflict'
3165         '422':
3166           $ref: '#/components/responses/UnprocessableEntity'
3167         '500':
3168           $ref: '#/components/responses/InternalServerError'
3169         '503':
3170           $ref: '#/components/responses/ServiceUnavailable'
3171         '5XX':
3172           $ref: '#/components/responses/UnexpectedError'
3173         default:
3174           $ref: '#/components/responses/UnexpectedError'
3175     delete:
3176       tags:
3177         - "NetSlice instances"
3178       summary: Delete an individual NS instance resource
3179       description: Delete an individual NS instance resource
3180       operationId: deleteNSIContent
3181       responses:
3182         '202':
3183           description: Accepted
3184           content:
3185             application/json:
3186               schema:
3187                 $ref: '#/components/schemas/ObjectId'
3188             application/yaml:
3189               schema:
3190                 $ref: '#/components/schemas/ObjectId'
3191         '204':
3192           description: No Content
3193         '400':
3194           $ref: '#/components/responses/BadRequest'
3195         '401':
3196           $ref: '#/components/responses/Unauthorized'
3197         '403':
3198           $ref: '#/components/responses/Forbidden'
3199         '404':
3200           $ref: '#/components/responses/NotFound'
3201         '405':
3202           $ref: '#/components/responses/MethodNotAllowed'
3203         '406':
3204           $ref: '#/components/responses/NotAcceptable'
3205         '409':
3206           $ref: '#/components/responses/Conflict'
3207         '422':
3208           $ref: '#/components/responses/UnprocessableEntity'
3209         '500':
3210           $ref: '#/components/responses/InternalServerError'
3211         '503':
3212           $ref: '#/components/responses/ServiceUnavailable'
3213         '5XX':
3214           $ref: '#/components/responses/UnexpectedError'
3215         default:
3216           $ref: '#/components/responses/UnexpectedError'
3217   '/nsilcm/v1/nsi_lcm_op_occs':
3218     get:
3219       tags:
3220         - "NetSlice instances"
3221       summary: Query information about multiple NetSlice LCM Operation Occurrences
3222       description: Query information about multiple NetSlice LCM Operation Occurrences
3223       operationId: getNsiLcmOpOccs
3224       responses:
3225         '200':
3226           description: OK
3227           content:
3228             application/json:
3229               schema:
3230                 $ref: '#/components/schemas/ArrayOfNsiLcmOpOcc'
3231             application/yaml:
3232               schema:
3233                 $ref: '#/components/schemas/ArrayOfNsiLcmOpOcc'
3234         '400':
3235           $ref: '#/components/responses/BadRequest'
3236         '401':
3237           $ref: '#/components/responses/Unauthorized'
3238         '403':
3239           $ref: '#/components/responses/Forbidden'
3240         '404':
3241           $ref: '#/components/responses/NotFound'
3242         '405':
3243           $ref: '#/components/responses/MethodNotAllowed'
3244         '406':
3245           $ref: '#/components/responses/NotAcceptable'
3246         '409':
3247           $ref: '#/components/responses/Conflict'
3248         '422':
3249           $ref: '#/components/responses/UnprocessableEntity'
3250         '500':
3251           $ref: '#/components/responses/InternalServerError'
3252         '503':
3253           $ref: '#/components/responses/ServiceUnavailable'
3254         '5XX':
3255           $ref: '#/components/responses/UnexpectedError'
3256         default:
3257           $ref: '#/components/responses/UnexpectedError'
3258   '/nsilcm/v1/nsi_lcm_op_occs/{nsiLcmOpOccId}':
3259     parameters:
3260       - name: nsiLcmOpOccId
3261         in: path
3262         required: true
3263         description: NetSlice LCM Operation Occurrence ID
3264         schema:
3265           type : string
3266     get:
3267       tags:
3268         - "NetSlice instances"
3269       summary: Query information about an individual NetSlice LCM Operation Occurrence
3270       description: Query information about an individual NetSlice LCM Operation Occurrence
3271       operationId: getNsiLcmOpOcc
3272       responses:
3273         '200':
3274           description: OK
3275           content:
3276             application/json:
3277               schema:
3278                 $ref: '#/components/schemas/NsiLcmOpOcc'
3279             application/yaml:
3280               schema:
3281                 $ref: '#/components/schemas/NsiLcmOpOcc'
3282         '400':
3283           $ref: '#/components/responses/BadRequest'
3284         '401':
3285           $ref: '#/components/responses/Unauthorized'
3286         '403':
3287           $ref: '#/components/responses/Forbidden'
3288         '404':
3289           $ref: '#/components/responses/NotFound'
3290         '405':
3291           $ref: '#/components/responses/MethodNotAllowed'
3292         '406':
3293           $ref: '#/components/responses/NotAcceptable'
3294         '409':
3295           $ref: '#/components/responses/Conflict'
3296         '422':
3297           $ref: '#/components/responses/UnprocessableEntity'
3298         '500':
3299           $ref: '#/components/responses/InternalServerError'
3300         '503':
3301           $ref: '#/components/responses/ServiceUnavailable'
3302         '5XX':
3303           $ref: '#/components/responses/UnexpectedError'
3304         default:
3305           $ref: '#/components/responses/UnexpectedError'
3306 # END NetSlice Instances
3307
3308 # BEGIN NSPM
3309   # /nspm/v1/pm_jobs/{pmJobId}/reports/{reportId}
3310 # END NSPM
3311
3312 # BEGIN PDU
3313   # /pdu/v1/pdu_descriptors
3314   # /pdu/v1/pdu_descriptors/{pduDescriptorId}
3315 # END PDU
3316
3317 # BEGIN Admin
3318   # /admin/v1/tokens
3319   # /admin/v1/tokens/{tokenId}
3320   # /admin/v1/users
3321   # /admin/v1/users/{userId}
3322   # /admin/v1/projects
3323   # /admin/v1/projects/{projectId}
3324   # /admin/v1/roles
3325   # /admin/v1/roles/{roleId}
3326   # /admin/v1/vims
3327   # /admin/v1/vims/{vimId}
3328   # /admin/v1/vim_accounts
3329   # /admin/v1/vim_accounts/{vimAccountId}
3330   # /admin/v1/wim_accounts
3331   # /admin/v1/wim_accounts/{wimAccountId}
3332   # /admin/v1/sdns
3333   # /admin/v1/sdns/{sdnId}
3334 # END Admin
3335
3336 externalDocs:
3337   description: Find out more OSM
3338   url: 'http://osm.etsi.org/wikipub'
3339
3340 components:
3341   responses:
3342     BadRequest:
3343       description: Bad request. The server cannot process the request due to a client error.
3344       content:
3345         application/json:
3346           schema:
3347             $ref: '#/components/schemas/ProblemDetails'
3348     Unauthorized:
3349       description: Authorization information is missing or invalid.
3350       content:
3351         application/json:
3352           schema:
3353             $ref: '#/components/schemas/ProblemDetails'
3354     Forbidden:
3355       description: Not enough permissions to do this operation.
3356       content:
3357         application/json:
3358           schema:
3359             $ref: '#/components/schemas/ProblemDetails'
3360     NotFound:
3361       description: The specified resource was not found.
3362       content:
3363         application/json:
3364           schema:
3365             $ref: '#/components/schemas/ProblemDetails'
3366     MethodNotAllowed:
3367       description: This method is not supported for the requested resource.
3368       content:
3369         application/json:
3370           schema:
3371             $ref: '#/components/schemas/ProblemDetails'
3372     NotAcceptable:
3373       description: The requested resource content cannot match the Accept headers sent in the request.
3374       content:
3375         application/json:
3376           schema:
3377             $ref: '#/components/schemas/ProblemDetails'
3378     Conflict:
3379       description: The operation cannot be executed currently, due to a conflict with the state of the resource.
3380       content:
3381         application/json:
3382           schema:
3383             $ref: '#/components/schemas/ProblemDetails'
3384     UnprocessableEntity:
3385       description: The request was well-formed but was unable to be followed due to semantic errors.
3386       content:
3387         application/json:
3388           schema:
3389             $ref: '#/components/schemas/ProblemDetails'
3390     InternalServerError:
3391       description: Internal server error.
3392       content:
3393         application/json:
3394           schema:
3395             $ref: '#/components/schemas/ProblemDetails'
3396     ServiceUnavailable:
3397       description: Service temporarily unavailable.
3398       content:
3399         application/json:
3400           schema:
3401             $ref: '#/components/schemas/ProblemDetails'
3402     UnexpectedError:
3403       description: Unexpected error.
3404       content:
3405         application/json:
3406           schema:
3407             $ref: '#/components/schemas/ProblemDetails'
3408     VnfDescriptor:
3409       description: VNF Descriptor (plaintext)
3410       content:
3411         text/plain:
3412           schema:
3413             $ref: '#/components/schemas/VnfDescriptor'
3414     VnfPackage:
3415       description: VNF Package (compressed)
3416       content:
3417         application/zip:
3418           schema:
3419             $ref: '#/components/schemas/VnfPackage'
3420     NsDescriptor:
3421       description: NS Descriptor (plaintext)
3422       content:
3423         text/plain:
3424           schema:
3425             $ref: '#/components/schemas/NsDescriptor'
3426     NsPackage:
3427       description: NS Package (compressed)
3428       content:
3429         application/zip:
3430           schema:
3431             $ref: '#/components/schemas/NsPackage'
3432     NetSliceTemplate:
3433       description: NetSlice Template (plaintext)
3434       content:
3435         text/plain:
3436           schema:
3437             $ref: '#/components/schemas/NetSliceTemplate'
3438     NetSlicePackage:
3439       description: NetSlice Package (compressed)
3440       content:
3441         application/zip:
3442           schema:
3443             $ref: '#/components/schemas/NetSlicePackage'
3444   # END RESPONSES
3445
3446   schemas:
3447     ObjectId:
3448       type: object
3449       properties:
3450         id:
3451           type: string
3452           format: uuid
3453     KeyValuePairs:
3454       # A free list of key:value pairs
3455       type: object
3456       additionalProperties: true
3457     NsDescriptor:
3458       type: string
3459       format: yaml|json
3460     NsPackage:
3461       type: string
3462       format: binary
3463     CreateNsdInfoRequest:
3464       # A free list of key:value pairs
3465       type: object
3466       additionalProperties: true
3467     NsdInfoModifications:
3468       description: |
3469         NS Descriptor Information
3470         Only generic fields (id, name, description) are described
3471         For a full specification of the NS Descriptor see:
3472         http://osm-download.etsi.org/ftp/osm-doc/nsd.html
3473       type: object
3474       properties:
3475         id:
3476           description: NSD Identifier
3477           type: string
3478         name:
3479           description: NSD Name
3480           type: string
3481         description:
3482           description: NSD Description
3483           type: string
3484         nsd:
3485           $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsd.html'
3486     NsdInfo:
3487       description: |
3488         NS Descriptor Information
3489         Only generic fields (_id, id, name, description) are described
3490         For a full specification of the NS Descriptor see:
3491         http://osm-download.etsi.org/ftp/osm-doc/nsd.html
3492       type: object
3493       properties:
3494         _id:
3495           description: |
3496             Identifier of the onboarded individual NS descriptor
3497             resource. This identifier is allocated by the NFVO.
3498           type: string
3499           format: uuid
3500         id:
3501           description: |
3502             This identifier, which is allocated by the NSD
3503             designer, identifies the NSD in a globally unique
3504             way. It is copied from the NSD content and shall be
3505             present after the NSD content is on-boarded.
3506           type: string
3507         name:
3508           description: |
3509             Name of the onboarded NSD. This information is
3510             copied from the NSD content and shall be present
3511             after the NSD content is on-boarded.
3512           type: string
3513         description:
3514           description: |
3515             Description of the onboarded NSD.
3516             This information is copied from the NSD content.
3517           type: string
3518         nsd:
3519           $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsd.html'
3520       required:
3521         - _id
3522         - id
3523     ArrayOfNsdInfo:
3524       type: array
3525       items:
3526         $ref: '#/components/schemas/NsdInfo'
3527     ProblemDetails:
3528       type: object
3529       properties:
3530         type:
3531           type: string
3532           format: uri
3533         title:
3534           type: string
3535         status:
3536           type: integer
3537         detail:
3538           type: string
3539         instance:
3540           type: string
3541           format: uri
3542       additionalProperties: true
3543       required:
3544         - status
3545         - detail
3546     VnfDescriptor:
3547       type: string
3548       format: yaml|json
3549     VnfPackage:
3550       type: string
3551       format: binary
3552     CreateVnfPkgInfoRequest:
3553       # A free list of key:value pairs
3554       type: object
3555       additionalProperties: true
3556     VnfPkgInfoModifications:
3557       description: |
3558         VNF Package Information
3559         Only generic fields (id, name, description) are described
3560         For a full specification of the VNF Descriptor see:
3561         http://osm-download.etsi.org/ftp/osm-doc/vnfd.html
3562       type: object
3563       properties:
3564         id:
3565           description: VNF Package Identifier
3566           type: string
3567         name:
3568           description: VNF Package Name
3569           type: string
3570         description:
3571           description: VNF Package description
3572           type: string
3573         vnfd:
3574           $ref: 'http://osm-download.etsi.org/ftp/osm-doc/vnfd.html'
3575     VnfPkgInfo:
3576       description: |
3577         VNF Package Information
3578         Only generic fields (_id, id, name, description) are described
3579         For a full specification of the VNF Descriptor see:
3580         http://osm-download.etsi.org/ftp/osm-doc/vnfd.html
3581       type: object
3582       properties:
3583         _id:
3584           description: |
3585             Identifier of the VNF package. This identifier is allocated by the NFVO.
3586           type: string
3587           format: uuid
3588         id:
3589           description: VNF Package Identifier
3590           type: string
3591         name:
3592           description: VNF Package Name
3593           type: string
3594         description:
3595           description: VNF Package description
3596           type: string
3597         vnfd:
3598           $ref: 'http://osm-download.etsi.org/ftp/osm-doc/vnfd.html'
3599       required:
3600         - _id
3601         - id
3602     ArrayOfVnfPkgInfo:
3603       type: array
3604       items:
3605         $ref: '#/components/schemas/VnfPkgInfo'
3606     CreateNsRequest:
3607       type: object
3608       properties:
3609         nsdId:
3610           description: |
3611             Identifier of the NSD that defines the NS instance to be created.
3612           type: string
3613           format: uuid
3614         nsName:
3615           description: |
3616             Human-readable name of the NS instance to be created.
3617           type: string
3618         nsDescription:
3619           description: |
3620             Human-readable description of the NS instance to be created.
3621           type: string
3622         vimAccountId:
3623           description: |
3624             Identifier of the VIM Account where the NS instance shall be created.
3625           type: string
3626           format: uuid
3627       required:
3628         - nsdId
3629         - nsName
3630         - vimAccountId
3631     NsInstance:
3632       description: |
3633         NS Instance Information
3634         Only generic fields (_id, id, name, description) are described
3635         For a full specification of the NS Instance see:
3636         http://osm-download.etsi.org/ftp/osm-doc/nsr.html
3637       type: object
3638       properties:
3639         _id:
3640           description: Identifier of the NS instance.
3641           type: string
3642           format: uuid
3643         id:
3644           description: Identifier of the NS instance.
3645           type: string
3646           format: uuid
3647         name:
3648           description: Human readable name of the NS instance.
3649           type: string
3650         description:
3651           description: Human readable description of the NS instance.
3652           type: string
3653         nsr:
3654           $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsr.html'
3655       required:
3656         - _id
3657         - id
3658         - name
3659     InstantiateNsRequest:
3660       type: object
3661       properties:
3662         nsName:
3663           description: |
3664             Human-readable name of the NS instance to be created.
3665           type: string
3666         nsdId:
3667           description: |
3668             Identifier of the NSD that defines the NS instance to be created.
3669           type: string
3670           format: uuid
3671         vimAccountId:
3672           description: |
3673             Identifier of the VIM Account where the NS instance shall be created.
3674           type: string
3675           format: uuid
3676       required:
3677         - nsName
3678         - nsdId
3679         - vimAccountId
3680     ScaleNsRequest:
3681       type: object
3682       properties:
3683         scaleType:
3684           type: string
3685           enum:
3686             - SCALE_VNF
3687         scaleVnfData:
3688           type: object
3689           properties:
3690             scaleVnfType:
3691               type: string
3692               enum:
3693                 - SCALE_IN
3694                 - SCALE_OUT
3695             scaleByStepData:
3696               type: object
3697               properties:
3698                 scaling-group-descriptor:
3699                   type: string
3700                 member-vnf-index:
3701                   type: string
3702               additionalProperties: true
3703           additionalProperties: true
3704       additionalProperties: true
3705     TerminateNsRequest:
3706       type: object
3707       properties:
3708         terminationTime:
3709           description: |
3710             Timestamp indicating the end time of the NS, i.e. the NS will be terminated
3711             automatically at this timestamp. Cardinality "0" indicates the NS termination
3712             takes place immediately.
3713           type: string
3714           format: date-time
3715     ArrayOfNsInstance:
3716       type: array
3717       items:
3718         $ref: '#/components/schemas/NsInstance'
3719     NSinstanceActionRequest:
3720       type: object
3721       properties:
3722         primitive:
3723           type: string
3724         primitive_params:
3725           $ref: '#/components/schemas/KeyValuePairs'
3726         lcmOperationType:
3727           type: string
3728         nsInstanceId:
3729           type: string
3730           format: uuid
3731         member_vnf_index:
3732           type: string
3733         vdu_id:
3734           type: string
3735         vdu_count_index:
3736           type: integer
3737       required:
3738         - primitive
3739         - primitive_params
3740       additionalProperties: false
3741     CreateNSinstanceContentRequest:
3742       type: object
3743       properties:
3744         nsdId:
3745           description: |
3746             Identifier of the NSD that defines the NS instance to be created.
3747           type: string
3748           format: uuid
3749         nsName:
3750           description: |
3751             Human-readable name of the NS instance to be created.
3752           type: string
3753         vimAccountId:
3754           description: |
3755             Identifier of the VIM Account where the NS instance shall be created.
3756           type: string
3757           format: uuid
3758       required:
3759         - nsdId
3760         - nsName
3761         - vimAccountId
3762     CreateNSinstanceContentResponse:
3763       type: object
3764       properties:
3765         id:
3766           type: string
3767           format: uuid
3768         nslcmop_id:
3769           type: string
3770           format: uuid
3771     NsLcmOpOcc:
3772       type: object
3773       properties:
3774         _id:
3775           type: string
3776           format: uuid
3777         id:
3778           type: string
3779           format: uuid
3780         lcmOperationType:
3781           type: string
3782         nsInstanceId:
3783           type: string
3784           format: uuid
3785         isAutomaticInvocation:
3786           type: boolean
3787         isCancelPending:
3788           type: boolean
3789         startTime:
3790           type: number
3791           format: float
3792         statusEnteredTime:
3793           type: number
3794           format: float
3795         operationParams:
3796           type: object
3797           properties:
3798             nsName:
3799               type: string
3800             nsdId:
3801               type: string
3802               format: uuid
3803             vimAccountId:
3804               type: string
3805               format: uuid
3806             nsInstanceId:
3807               type: string
3808               format: uuid
3809             lcmOperationType:
3810               type: string
3811         operationState:
3812           type: string
3813         detailed-status:
3814           type: string
3815         links:
3816           type: object
3817           properties:
3818             self:
3819               type: string
3820               format: path   # uri?
3821             nsInstance:
3822               type: string
3823               format: path   # uri?
3824     ArrayOfNsLcmOpOcc:
3825       type: array
3826       items:
3827         $ref: '#/components/schemas/NsLcmOpOcc'
3828     VnfInstanceInfo:
3829       description: |
3830         VNF Instance Information
3831         Only generic fields (_id, id) are described
3832         For a full specification of the VNF Instance see:
3833         http://osm-download.etsi.org/ftp/osm-doc/vnfr.html
3834       type: object
3835       properties:
3836         _id:
3837           type: string
3838           format: uuid
3839         id:
3840           type: string
3841           format: uuid
3842         vnfr:
3843           $ref: 'http://osm-download.etsi.org/ftp/osm-doc/vnfr.html'
3844     ArrayOfVnfInstanceInfo:
3845       type: array
3846       items:
3847         $ref: '#/components/schemas/VnfInstanceInfo'
3848     NstInfo:
3849       description: |
3850         NetSlice Template Information
3851         Only generic fields (_id, id, name) are described
3852         For a full specification of the NetSlice Template see:
3853         http://osm-download.etsi.org/ftp/osm-doc/nst.html
3854       type: object
3855       properties:
3856         _id:
3857           description: NetSlice Template Identifier
3858           type: string
3859           format: uuid
3860         id:
3861           description: Human readable NetSlice Template Identifier
3862           type: string
3863         name:
3864           description: Human readable name of the NetSlice Template
3865           type: string
3866         nst:
3867           $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nst.html'
3868     ArrayOfNstInfo:
3869       type: array
3870       items:
3871         $ref: '#/components/schemas/NstInfo'
3872     CreateNstInfoRequest:
3873       # A free list of key:value pairs
3874       type: object
3875       additionalProperties: true
3876     NetSliceTemplate:
3877       type: string
3878       format: yaml|json
3879     NetSlicePackage:
3880       type: string
3881       format: binary
3882     NstInfoModifications:
3883       description: |
3884         NetSlice Template Information
3885         Only generic fields (id, name) are described
3886         For a full specification of the NetSlice Template see:
3887         http://osm-download.etsi.org/ftp/osm-doc/nst.html
3888       type: object
3889       properties:
3890         id:
3891           description: NST Identifier
3892           type: string
3893         name:
3894           description: NST Name
3895           type: string
3896         nsd:
3897           $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nst.html'
3898     NetSliceInstance:
3899       description: |
3900         NetSlice Instance Information
3901         Only generic fields (_id, id, name, description) are described
3902         For a full specification of the NetSlice Instance see:
3903         http://osm-download.etsi.org/ftp/osm-doc/nsi.html
3904       type: object
3905       properties:
3906         _id:
3907           description: Identifier of the NetSlice instance.
3908           type: string
3909           format: uuid
3910         id:
3911           description: Identifier of the NetSlice instance.
3912           type: string
3913           format: uuid
3914         name:
3915           description: Human readable name of the NetSlice instance.
3916           type: string
3917         description:
3918           description: Human readable description of the NetSlice instance.
3919           type: string
3920         nsi:
3921           $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsi.html'
3922       required:
3923         - _id
3924         - id
3925         - name
3926     ArrayOfNetSliceInstance:
3927       type: array
3928       items:
3929         $ref: '#/components/schemas/NetSliceInstance'
3930     CreateNsiRequest:
3931       type: object
3932       properties:
3933         nstId:
3934           description: |
3935             Identifier of the NST that defines the NetSlice instance to be created.
3936           type: string
3937           format: uuid
3938         nsiName:
3939           description: |
3940             Human-readable name of the NetSlice instance to be created.
3941           type: string
3942         nsiDescription:
3943           description: |
3944             Human-readable description of the NetSlice instance to be created.
3945           type: string
3946         vimAccountId:
3947           description: |
3948             Identifier of the VIM Account where the NetSlice instance shall be created.
3949           type: string
3950           format: uuid
3951       required:
3952         - nstId
3953         - nsiName
3954         - vimAccountId
3955     InstantiateNsiRequest:
3956       type: object
3957       properties:
3958         nsiName:
3959           description: |
3960             Human-readable name of the NetSlice instance to be created.
3961           type: string
3962         nstId:
3963           description: |
3964             Identifier of the NST that defines the NetSlice instance to be created.
3965           type: string
3966           format: uuid
3967         vimAccountId:
3968           description: |
3969             Identifier of the VIM Account where the NetSlice instance shall be created.
3970           type: string
3971           format: uuid
3972       required:
3973         - nsiName
3974         - nstId
3975         - vimAccountId
3976     TerminateNsiRequest:
3977       type: object
3978       properties:
3979         terminationTime:
3980           description: |
3981             Timestamp indicating the end time of the NSI, i.e. the NSI will be terminated
3982             automatically at this timestamp. Cardinality "0" indicates the NSI termination
3983             takes place immediately.
3984           type: string
3985           format: date-time
3986     NsiActionRequest:
3987       type: object
3988       properties:
3989         primitive:
3990           type: string
3991         primitive_params:
3992           $ref: '#/components/schemas/KeyValuePairs'
3993         lcmOperationType:
3994           type: string
3995         netsliceInstanceId:
3996           type: string
3997           format: uuid
3998       required:
3999         - primitive
4000         - primitive_params
4001     CreateNsiContentRequest:
4002       type: object
4003       properties:
4004         nstId:
4005           description: |
4006             Identifier of the NST that defines the NetSlice instance to be created.
4007           type: string
4008           format: uuid
4009         nsiName:
4010           description: |
4011             Human-readable name of the NetSlice instance to be created.
4012           type: string
4013         vimAccountId:
4014           description: |
4015             Identifier of the VIM Account where the NetSlice instance shall be created.
4016           type: string
4017           format: uuid
4018       required:
4019         - nsdId
4020         - nsName
4021         - vimAccountId
4022     CreateNsiContentResponse:
4023       type: object
4024       properties:
4025         id:
4026           type: string
4027           format: uuid
4028         nsilcmop_id:
4029           type: string
4030           format: uuid
4031     NsiLcmOpOcc:
4032       type: object
4033       properties:
4034         _id:
4035           type: string
4036           format: uuid
4037         id:
4038           type: string
4039           format: uuid
4040         lcmOperationType:
4041           type: string
4042         netsliceInstanceId:
4043           type: string
4044           format: uuid
4045         isAutomaticInvocation:
4046           type: boolean
4047         isCancelPending:
4048           type: boolean
4049         startTime:
4050           type: number
4051           format: float
4052         statusEnteredTime:
4053           type: number
4054           format: float
4055         operationParams:
4056           type: object
4057           properties:
4058             nsiName:
4059               type: string
4060             nstId:
4061               type: string
4062               format: uuid
4063             vimAccountId:
4064               type: string
4065               format: uuid
4066             netsliceInstanceId:
4067               type: string
4068               format: uuid
4069             lcmOperationType:
4070               type: string
4071             nslcmops_ids:
4072               type: array
4073               items:
4074                 type: string
4075                 format: uuid
4076         operationState:
4077           type: string
4078         detailed-status:
4079           type: string
4080         links:
4081           type: object
4082           properties:
4083             self:
4084               type: string
4085               format: path   # uri?
4086             netsliceInstanceId:
4087               type: string
4088               format: path   # uri?
4089     ArrayOfNsiLcmOpOcc:
4090       type: array
4091       items:
4092         $ref: '#/components/schemas/NsiLcmOpOcc'
4093   # END SCHEMAS
4094
4095   requestBodies:
4096     CreateNsdInfoRequest:
4097       content:
4098         application/json:
4099           schema:
4100             $ref: '#/components/schemas/CreateNsdInfoRequest'
4101         application/yaml:
4102           schema:
4103             $ref: '#/components/schemas/CreateNsdInfoRequest'
4104     NsdInfoModifications:
4105       content:
4106         application/json:
4107           schema:
4108             $ref: '#/components/schemas/NsdInfoModifications'
4109         application/yaml:
4110           schema:
4111             $ref: '#/components/schemas/NsdInfoModifications'
4112     NsDescriptor:
4113       content:
4114         text/plain:
4115           schema:
4116             $ref: '#/components/schemas/NsDescriptor'
4117     NsPackage:
4118       content:
4119         application/zip:
4120           schema:
4121             $ref: '#/components/schemas/NsPackage'
4122     CreateVnfPkgInfoRequest:
4123       content:
4124         application/json:
4125           schema:
4126             $ref: '#/components/schemas/CreateVnfPkgInfoRequest'
4127         application/yaml:
4128           schema:
4129             $ref: '#/components/schemas/CreateVnfPkgInfoRequest'
4130     VnfPkgInfoModifications:
4131       content:
4132         application/json:
4133           schema:
4134             $ref: '#/components/schemas/VnfPkgInfoModifications'
4135         application/yaml:
4136           schema:
4137             $ref: '#/components/schemas/VnfPkgInfoModifications'
4138     VnfPackage:
4139       content:
4140         application/zip:
4141           schema:
4142             $ref: '#/components/schemas/VnfPackage'
4143     VnfDescriptor:
4144       content:
4145         text/plain:
4146           schema:
4147             $ref: '#/components/schemas/VnfDescriptor'
4148     CreateNsRequest:
4149       content:
4150         application/json:
4151           schema:
4152             $ref: '#/components/schemas/CreateNsRequest'
4153         application/yaml:
4154           schema:
4155             $ref: '#/components/schemas/CreateNsRequest'
4156     InstantiateNsRequest:
4157       content:
4158         application/json:
4159           schema:
4160             $ref: '#/components/schemas/InstantiateNsRequest'
4161         application/yaml:
4162           schema:
4163             $ref: '#/components/schemas/InstantiateNsRequest'
4164     ScaleNsRequest:
4165       content:
4166         application/json:
4167           schema:
4168             $ref: '#/components/schemas/ScaleNsRequest'
4169         application/yaml:
4170           schema:
4171             $ref: '#/components/schemas/ScaleNsRequest'
4172     TerminateNsRequest:
4173       content:
4174         application/json:
4175           schema:
4176             $ref: '#/components/schemas/TerminateNsRequest'
4177         application/yaml:
4178           schema:
4179             $ref: '#/components/schemas/TerminateNsRequest'
4180     CreateNSinstanceContentRequest:
4181       content:
4182         application/json:
4183           schema:
4184             $ref: '#/components/schemas/CreateNSinstanceContentRequest'
4185         application/yaml:
4186           schema:
4187             $ref: '#/components/schemas/CreateNSinstanceContentRequest'
4188     CreateNstInfoRequest:
4189       content:
4190         application/json:
4191           schema:
4192             $ref: '#/components/schemas/CreateNstInfoRequest'
4193         application/yaml:
4194           schema:
4195             $ref: '#/components/schemas/CreateNstInfoRequest'
4196     NetSliceTemplate:
4197       content:
4198         text/plain:
4199           schema:
4200             $ref: '#/components/schemas/NetSliceTemplate'
4201     NetSlicePackage:
4202       content:
4203         application/zip:
4204           schema:
4205             $ref: '#/components/schemas/NetSlicePackage'
4206     NstInfoModifications:
4207       content:
4208         application/json:
4209           schema:
4210             $ref: '#/components/schemas/NstInfoModifications'
4211         application/yaml:
4212           schema:
4213             $ref: '#/components/schemas/NstInfoModifications'
4214     CreateNsiRequest:
4215       content:
4216         application/json:
4217           schema:
4218             $ref: '#/components/schemas/CreateNsiRequest'
4219         application/yaml:
4220           schema:
4221             $ref: '#/components/schemas/CreateNsiRequest'
4222     InstantiateNsiRequest:
4223       content:
4224         application/json:
4225           schema:
4226             $ref: '#/components/schemas/InstantiateNsiRequest'
4227         application/yaml:
4228           schema:
4229             $ref: '#/components/schemas/InstantiateNsiRequest'
4230     TerminateNsiRequest:
4231       content:
4232         application/json:
4233           schema:
4234             $ref: '#/components/schemas/TerminateNsiRequest'
4235         application/yaml:
4236           schema:
4237             $ref: '#/components/schemas/TerminateNsiRequest'
4238     NsiActionRequest:
4239       content:
4240         application/json:
4241           schema:
4242             $ref: '#/components/schemas/NsiActionRequest'
4243         application/yaml:
4244           schema:
4245             $ref: '#/components/schemas/NsiActionRequest'
4246     CreateNsiContentRequest:
4247       content:
4248         application/json:
4249           schema:
4250             $ref: '#/components/schemas/CreateNsiContentRequest'
4251         application/yaml:
4252           schema:
4253             $ref: '#/components/schemas/CreateNsiContentRequest'
4254   # END REQUEST BODIES
4255
4256   securitySchemes:
4257     bearerAuth:
4258       type: http
4259       scheme: bearer