Dockerfile: added git
[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     NsdInfo:
3485       description: |
3486         NS Descriptor Information
3487         Only generic fields (_id, id, name, description) are described
3488         For a full specification of the NS Descriptor see:
3489         http://osm-download.etsi.org/ftp/osm-doc/nsd.html
3490       type: object
3491       properties:
3492         _id:
3493           description: |
3494             Identifier of the onboarded individual NS descriptor
3495             resource. This identifier is allocated by the NFVO.
3496           type: string
3497           format: uuid
3498         id:
3499           description: |
3500             This identifier, which is allocated by the NSD
3501             designer, identifies the NSD in a globally unique
3502             way. It is copied from the NSD content and shall be
3503             present after the NSD content is on-boarded.
3504           type: string
3505         name:
3506           description: |
3507             Name of the onboarded NSD. This information is
3508             copied from the NSD content and shall be present
3509             after the NSD content is on-boarded.
3510           type: string
3511         description:
3512           description: |
3513             Description of the onboarded NSD.
3514             This information is copied from the NSD content.
3515           type: string
3516       required:
3517         - _id
3518         - id
3519     ArrayOfNsdInfo:
3520       type: array
3521       items:
3522         $ref: '#/components/schemas/NsdInfo'
3523     ProblemDetails:
3524       type: object
3525       properties:
3526         type:
3527           type: string
3528           format: uri
3529         title:
3530           type: string
3531         status:
3532           type: integer
3533         detail:
3534           type: string
3535         instance:
3536           type: string
3537           format: uri
3538       additionalProperties: true
3539       required:
3540         - status
3541         - detail
3542     VnfDescriptor:
3543       type: string
3544       format: yaml|json
3545     VnfPackage:
3546       type: string
3547       format: binary
3548     CreateVnfPkgInfoRequest:
3549       # A free list of key:value pairs
3550       type: object
3551       additionalProperties: true
3552     VnfPkgInfoModifications:
3553       description: |
3554         VNF Package Information
3555         Only generic fields (id, name, description) are described
3556         For a full specification of the VNF Descriptor see:
3557         http://osm-download.etsi.org/ftp/osm-doc/vnfd.html
3558       type: object
3559       properties:
3560         id:
3561           description: VNF Package Identifier
3562           type: string
3563         name:
3564           description: VNF Package Name
3565           type: string
3566         description:
3567           description: VNF Package description
3568           type: string
3569     VnfPkgInfo:
3570       description: |
3571         VNF Package Information
3572         Only generic fields (_id, id, name, description) are described
3573         For a full specification of the VNF Descriptor see:
3574         http://osm-download.etsi.org/ftp/osm-doc/vnfd.html
3575       type: object
3576       properties:
3577         _id:
3578           description: |
3579             Identifier of the VNF package. This identifier is allocated by the NFVO.
3580           type: string
3581           format: uuid
3582         id:
3583           description: VNF Package Identifier
3584           type: string
3585         name:
3586           description: VNF Package Name
3587           type: string
3588         description:
3589           description: VNF Package description
3590           type: string
3591       required:
3592         - _id
3593         - id
3594     ArrayOfVnfPkgInfo:
3595       type: array
3596       items:
3597         $ref: '#/components/schemas/VnfPkgInfo'
3598     CreateNsRequest:
3599       type: object
3600       properties:
3601         nsdId:
3602           description: |
3603             Identifier of the NSD that defines the NS instance to be created.
3604           type: string
3605           format: uuid
3606         nsName:
3607           description: |
3608             Human-readable name of the NS instance to be created.
3609           type: string
3610         nsDescription:
3611           description: |
3612             Human-readable description of the NS instance to be created.
3613           type: string
3614         vimAccountId:
3615           description: |
3616             Identifier of the VIM Account where the NS instance shall be created.
3617           type: string
3618           format: uuid
3619       required:
3620         - nsdId
3621         - nsName
3622         - vimAccountId
3623     NsInstance:
3624       description: |
3625         NS Instance Information
3626         Only generic fields (_id, id, name, description) are described
3627         For a full specification of the NS Instance see:
3628         http://osm-download.etsi.org/ftp/osm-doc/nsr.html
3629       type: object
3630       properties:
3631         _id:
3632           description: Identifier of the NS instance.
3633           type: string
3634           format: uuid
3635         id:
3636           description: Identifier of the NS instance.
3637           type: string
3638           format: uuid
3639         name:
3640           description: Human readable name of the NS instance.
3641           type: string
3642         description:
3643           description: Human readable description of the NS instance.
3644           type: string
3645       required:
3646         - _id
3647         - id
3648         - name
3649     InstantiateNsRequest:
3650       type: object
3651       properties:
3652         nsName:
3653           description: |
3654             Human-readable name of the NS instance to be created.
3655           type: string
3656         nsdId:
3657           description: |
3658             Identifier of the NSD that defines the NS instance to be created.
3659           type: string
3660           format: uuid
3661         vimAccountId:
3662           description: |
3663             Identifier of the VIM Account where the NS instance shall be created.
3664           type: string
3665           format: uuid
3666       required:
3667         - nsName
3668         - nsdId
3669         - vimAccountId
3670     ScaleNsRequest:
3671       type: object
3672       properties:
3673         scaleType:
3674           type: string
3675           enum:
3676             - SCALE_VNF
3677         scaleVnfData:
3678           type: object
3679           properties:
3680             scaleVnfType:
3681               type: string
3682               enum:
3683                 - SCALE_IN
3684                 - SCALE_OUT
3685             scaleByStepData:
3686               type: object
3687               properties:
3688                 scaling-group-descriptor:
3689                   type: string
3690                 member-vnf-index:
3691                   type: string
3692               additionalProperties: true
3693           additionalProperties: true
3694       additionalProperties: true
3695     TerminateNsRequest:
3696       type: object
3697       properties:
3698         terminationTime:
3699           description: |
3700             Timestamp indicating the end time of the NS, i.e. the NS will be terminated
3701             automatically at this timestamp. Cardinality "0" indicates the NS termination
3702             takes place immediately.
3703           type: string
3704           format: date-time
3705     ArrayOfNsInstance:
3706       type: array
3707       items:
3708         $ref: '#/components/schemas/NsInstance'
3709     NSinstanceActionRequest:
3710       type: object
3711       properties:
3712         primitive:
3713           type: string
3714         primitive_params:
3715           $ref: '#/components/schemas/KeyValuePairs'
3716         lcmOperationType:
3717           type: string
3718         nsInstanceId:
3719           type: string
3720           format: uuid
3721         member_vnf_index:
3722           type: string
3723         vdu_id:
3724           type: string
3725         vdu_count_index:
3726           type: integer
3727       required:
3728         - primitive
3729         - primitive_params
3730       additionalProperties: false
3731     CreateNSinstanceContentRequest:
3732       type: object
3733       properties:
3734         nsdId:
3735           description: |
3736             Identifier of the NSD that defines the NS instance to be created.
3737           type: string
3738           format: uuid
3739         nsName:
3740           description: |
3741             Human-readable name of the NS instance to be created.
3742           type: string
3743         vimAccountId:
3744           description: |
3745             Identifier of the VIM Account where the NS instance shall be created.
3746           type: string
3747           format: uuid
3748       required:
3749         - nsdId
3750         - nsName
3751         - vimAccountId
3752     CreateNSinstanceContentResponse:
3753       type: object
3754       properties:
3755         id:
3756           type: string
3757           format: uuid
3758         nslcmop_id:
3759           type: string
3760           format: uuid
3761     NsLcmOpOcc:
3762       type: object
3763       properties:
3764         _id:
3765           type: string
3766           format: uuid
3767         id:
3768           type: string
3769           format: uuid
3770         lcmOperationType:
3771           type: string
3772         nsInstanceId:
3773           type: string
3774           format: uuid
3775         isAutomaticInvocation:
3776           type: boolean
3777         isCancelPending:
3778           type: boolean
3779         startTime:
3780           type: number
3781           format: float
3782         statusEnteredTime:
3783           type: number
3784           format: float
3785         operationParams:
3786           type: object
3787           properties:
3788             nsName:
3789               type: string
3790             nsdId:
3791               type: string
3792               format: uuid
3793             vimAccountId:
3794               type: string
3795               format: uuid
3796             nsInstanceId:
3797               type: string
3798               format: uuid
3799             lcmOperationType:
3800               type: string
3801         operationState:
3802           type: string
3803         detailed-status:
3804           type: string
3805         links:
3806           type: object
3807           properties:
3808             self:
3809               type: string
3810               format: path   # uri?
3811             nsInstance:
3812               type: string
3813               format: path   # uri?
3814     ArrayOfNsLcmOpOcc:
3815       type: array
3816       items:
3817         $ref: '#/components/schemas/NsLcmOpOcc'
3818     VnfInstanceInfo:
3819       description: |
3820         VNF Instance Information
3821         Only generic fields (_id, id) are described
3822         For a full specification of the VNF Instance see:
3823         http://osm-download.etsi.org/ftp/osm-doc/vnfr.html
3824       type: object
3825       properties:
3826         _id:
3827           type: string
3828           format: uuid
3829         id:
3830           type: string
3831           format: uuid
3832     ArrayOfVnfInstanceInfo:
3833       type: array
3834       items:
3835         $ref: '#/components/schemas/VnfInstanceInfo'
3836     NstInfo:
3837       description: |
3838         NetSlice Template Information
3839         Only generic fields (_id, id, name) are described
3840         For a full specification of the NetSlice Template see:
3841         http://osm-download.etsi.org/ftp/osm-doc/nst.html
3842       type: object
3843       properties:
3844         _id:
3845           description: NetSlice Template Identifier
3846           type: string
3847           format: uuid
3848         id:
3849           description: Human readable NetSlice Template Identifier
3850           type: string
3851         name:
3852           description: Human readable name of the NetSlice Template
3853           type: string
3854     ArrayOfNstInfo:
3855       type: array
3856       items:
3857         $ref: '#/components/schemas/NstInfo'
3858     CreateNstInfoRequest:
3859       # A free list of key:value pairs
3860       type: object
3861       additionalProperties: true
3862     NetSliceTemplate:
3863       type: string
3864       format: yaml|json
3865     NetSlicePackage:
3866       type: string
3867       format: binary
3868     NstInfoModifications:
3869       description: |
3870         NetSlice Template Information
3871         Only generic fields (id, name) are described
3872         For a full specification of the NetSlice Template see:
3873         http://osm-download.etsi.org/ftp/osm-doc/nst.html
3874       type: object
3875       properties:
3876         id:
3877           description: NST Identifier
3878           type: string
3879         name:
3880           description: NST Name
3881           type: string
3882     NetSliceInstance:
3883       description: |
3884         NetSlice Instance Information
3885         Only generic fields (_id, id, name, description) are described
3886         For a full specification of the NetSlice Instance see:
3887         http://osm-download.etsi.org/ftp/osm-doc/nsi.html
3888       type: object
3889       properties:
3890         _id:
3891           description: Identifier of the NetSlice instance.
3892           type: string
3893           format: uuid
3894         id:
3895           description: Identifier of the NetSlice instance.
3896           type: string
3897           format: uuid
3898         name:
3899           description: Human readable name of the NetSlice instance.
3900           type: string
3901         description:
3902           description: Human readable description of the NetSlice instance.
3903           type: string
3904       required:
3905         - _id
3906         - id
3907         - name
3908     ArrayOfNetSliceInstance:
3909       type: array
3910       items:
3911         $ref: '#/components/schemas/NetSliceInstance'
3912     CreateNsiRequest:
3913       type: object
3914       properties:
3915         nstId:
3916           description: |
3917             Identifier of the NST that defines the NetSlice instance to be created.
3918           type: string
3919           format: uuid
3920         nsiName:
3921           description: |
3922             Human-readable name of the NetSlice instance to be created.
3923           type: string
3924         nsiDescription:
3925           description: |
3926             Human-readable description of the NetSlice instance to be created.
3927           type: string
3928         vimAccountId:
3929           description: |
3930             Identifier of the VIM Account where the NetSlice instance shall be created.
3931           type: string
3932           format: uuid
3933       required:
3934         - nstId
3935         - nsiName
3936         - vimAccountId
3937     InstantiateNsiRequest:
3938       type: object
3939       properties:
3940         nsiName:
3941           description: |
3942             Human-readable name of the NetSlice instance to be created.
3943           type: string
3944         nstId:
3945           description: |
3946             Identifier of the NST that defines the NetSlice instance to be created.
3947           type: string
3948           format: uuid
3949         vimAccountId:
3950           description: |
3951             Identifier of the VIM Account where the NetSlice instance shall be created.
3952           type: string
3953           format: uuid
3954       required:
3955         - nsiName
3956         - nstId
3957         - vimAccountId
3958     TerminateNsiRequest:
3959       type: object
3960       properties:
3961         terminationTime:
3962           description: |
3963             Timestamp indicating the end time of the NSI, i.e. the NSI will be terminated
3964             automatically at this timestamp. Cardinality "0" indicates the NSI termination
3965             takes place immediately.
3966           type: string
3967           format: date-time
3968     NsiActionRequest:
3969       type: object
3970       properties:
3971         primitive:
3972           type: string
3973         primitive_params:
3974           $ref: '#/components/schemas/KeyValuePairs'
3975         lcmOperationType:
3976           type: string
3977         netsliceInstanceId:
3978           type: string
3979           format: uuid
3980       required:
3981         - primitive
3982         - primitive_params
3983     CreateNsiContentRequest:
3984       type: object
3985       properties:
3986         nstId:
3987           description: |
3988             Identifier of the NST that defines the NetSlice instance to be created.
3989           type: string
3990           format: uuid
3991         nsiName:
3992           description: |
3993             Human-readable name of the NetSlice instance to be created.
3994           type: string
3995         vimAccountId:
3996           description: |
3997             Identifier of the VIM Account where the NetSlice instance shall be created.
3998           type: string
3999           format: uuid
4000       required:
4001         - nsdId
4002         - nsName
4003         - vimAccountId
4004     CreateNsiContentResponse:
4005       type: object
4006       properties:
4007         id:
4008           type: string
4009           format: uuid
4010         nsilcmop_id:
4011           type: string
4012           format: uuid
4013     NsiLcmOpOcc:
4014       type: object
4015       properties:
4016         _id:
4017           type: string
4018           format: uuid
4019         id:
4020           type: string
4021           format: uuid
4022         lcmOperationType:
4023           type: string
4024         netsliceInstanceId:
4025           type: string
4026           format: uuid
4027         isAutomaticInvocation:
4028           type: boolean
4029         isCancelPending:
4030           type: boolean
4031         startTime:
4032           type: number
4033           format: float
4034         statusEnteredTime:
4035           type: number
4036           format: float
4037         operationParams:
4038           type: object
4039           properties:
4040             nsiName:
4041               type: string
4042             nstId:
4043               type: string
4044               format: uuid
4045             vimAccountId:
4046               type: string
4047               format: uuid
4048             netsliceInstanceId:
4049               type: string
4050               format: uuid
4051             lcmOperationType:
4052               type: string
4053             nslcmops_ids:
4054               type: array
4055               items:
4056                 type: string
4057                 format: uuid
4058         operationState:
4059           type: string
4060         detailed-status:
4061           type: string
4062         links:
4063           type: object
4064           properties:
4065             self:
4066               type: string
4067               format: path   # uri?
4068             netsliceInstanceId:
4069               type: string
4070               format: path   # uri?
4071     ArrayOfNsiLcmOpOcc:
4072       type: array
4073       items:
4074         $ref: '#/components/schemas/NsiLcmOpOcc'
4075   # END SCHEMAS
4076
4077   requestBodies:
4078     CreateNsdInfoRequest:
4079       content:
4080         application/json:
4081           schema:
4082             $ref: '#/components/schemas/CreateNsdInfoRequest'
4083         application/yaml:
4084           schema:
4085             $ref: '#/components/schemas/CreateNsdInfoRequest'
4086     NsdInfoModifications:
4087       content:
4088         application/json:
4089           schema:
4090             $ref: '#/components/schemas/NsdInfoModifications'
4091         application/yaml:
4092           schema:
4093             $ref: '#/components/schemas/NsdInfoModifications'
4094     NsDescriptor:
4095       content:
4096         text/plain:
4097           schema:
4098             $ref: '#/components/schemas/NsDescriptor'
4099     NsPackage:
4100       content:
4101         application/zip:
4102           schema:
4103             $ref: '#/components/schemas/NsPackage'
4104     CreateVnfPkgInfoRequest:
4105       content:
4106         application/json:
4107           schema:
4108             $ref: '#/components/schemas/CreateVnfPkgInfoRequest'
4109         application/yaml:
4110           schema:
4111             $ref: '#/components/schemas/CreateVnfPkgInfoRequest'
4112     VnfPkgInfoModifications:
4113       content:
4114         application/json:
4115           schema:
4116             $ref: '#/components/schemas/VnfPkgInfoModifications'
4117         application/yaml:
4118           schema:
4119             $ref: '#/components/schemas/VnfPkgInfoModifications'
4120     VnfPackage:
4121       content:
4122         application/zip:
4123           schema:
4124             $ref: '#/components/schemas/VnfPackage'
4125     VnfDescriptor:
4126       content:
4127         text/plain:
4128           schema:
4129             $ref: '#/components/schemas/VnfDescriptor'
4130     CreateNsRequest:
4131       content:
4132         application/json:
4133           schema:
4134             $ref: '#/components/schemas/CreateNsRequest'
4135         application/yaml:
4136           schema:
4137             $ref: '#/components/schemas/CreateNsRequest'
4138     InstantiateNsRequest:
4139       content:
4140         application/json:
4141           schema:
4142             $ref: '#/components/schemas/InstantiateNsRequest'
4143         application/yaml:
4144           schema:
4145             $ref: '#/components/schemas/InstantiateNsRequest'
4146     ScaleNsRequest:
4147       content:
4148         application/json:
4149           schema:
4150             $ref: '#/components/schemas/ScaleNsRequest'
4151         application/yaml:
4152           schema:
4153             $ref: '#/components/schemas/ScaleNsRequest'
4154     TerminateNsRequest:
4155       content:
4156         application/json:
4157           schema:
4158             $ref: '#/components/schemas/TerminateNsRequest'
4159         application/yaml:
4160           schema:
4161             $ref: '#/components/schemas/TerminateNsRequest'
4162     CreateNSinstanceContentRequest:
4163       content:
4164         application/json:
4165           schema:
4166             $ref: '#/components/schemas/CreateNSinstanceContentRequest'
4167         application/yaml:
4168           schema:
4169             $ref: '#/components/schemas/CreateNSinstanceContentRequest'
4170     CreateNstInfoRequest:
4171       content:
4172         application/json:
4173           schema:
4174             $ref: '#/components/schemas/CreateNstInfoRequest'
4175         application/yaml:
4176           schema:
4177             $ref: '#/components/schemas/CreateNstInfoRequest'
4178     NetSliceTemplate:
4179       content:
4180         text/plain:
4181           schema:
4182             $ref: '#/components/schemas/NetSliceTemplate'
4183     NetSlicePackage:
4184       content:
4185         application/zip:
4186           schema:
4187             $ref: '#/components/schemas/NetSlicePackage'
4188     NstInfoModifications:
4189       content:
4190         application/json:
4191           schema:
4192             $ref: '#/components/schemas/NstInfoModifications'
4193         application/yaml:
4194           schema:
4195             $ref: '#/components/schemas/NstInfoModifications'
4196     CreateNsiRequest:
4197       content:
4198         application/json:
4199           schema:
4200             $ref: '#/components/schemas/CreateNsiRequest'
4201         application/yaml:
4202           schema:
4203             $ref: '#/components/schemas/CreateNsiRequest'
4204     InstantiateNsiRequest:
4205       content:
4206         application/json:
4207           schema:
4208             $ref: '#/components/schemas/InstantiateNsiRequest'
4209         application/yaml:
4210           schema:
4211             $ref: '#/components/schemas/InstantiateNsiRequest'
4212     TerminateNsiRequest:
4213       content:
4214         application/json:
4215           schema:
4216             $ref: '#/components/schemas/TerminateNsiRequest'
4217         application/yaml:
4218           schema:
4219             $ref: '#/components/schemas/TerminateNsiRequest'
4220     NsiActionRequest:
4221       content:
4222         application/json:
4223           schema:
4224             $ref: '#/components/schemas/NsiActionRequest'
4225         application/yaml:
4226           schema:
4227             $ref: '#/components/schemas/NsiActionRequest'
4228     CreateNsiContentRequest:
4229       content:
4230         application/json:
4231           schema:
4232             $ref: '#/components/schemas/CreateNsiContentRequest'
4233         application/yaml:
4234           schema:
4235             $ref: '#/components/schemas/CreateNsiContentRequest'
4236   # END REQUEST BODIES
4237
4238   securitySchemes:
4239     bearerAuth:
4240       type: http
4241       scheme: bearer