Dockerfile: added git
[osm/SOL005.git] / osm-openapi.yaml
index f948f70..8c57f43 100644 (file)
@@ -1,14 +1,15 @@
 openapi: 3.0.0
+
 servers:
   - description: OSM NB API
     url: https://osm.etsi.org/nbapi/v1.0.0
+
 info:
   description: |
     This is Open Source MANO Northbound API featuring ETSI NFV SOL005.
-    For more information on OSM, you can visit
-    [http://osm.etsi.org](http://osm.etsi.org) or connect to IRCs
-    [Freenode, #etsi-osm](http://webchat.freenode.net?channels=etsi-osm) or on
-    [OSM IRC, #tech](https://osm.etsi.org:8080/kiwi)
+    For more information on OSM, you can visit [http://osm.etsi.org](http://osm.etsi.org).
+    You can send us your comments and questions to OSM_TECH@list.etsi.org
+    or join the [OpenSourceMANO Slack Workplace](https://join.slack.com/t/opensourcemano/shared_invite/enQtMzQ3MzYzNTQ0NDIyLWVkNTE4ZjZjNWI0ZTQyN2VhOTI1MjViMzU1NWYwMWM3ODI4NTQyY2VlODA2ZjczMWIyYTFkZWNiZmFkM2M2ZDk)
   version: "1.0.0"
   title: OSM NB API featuring ETSI NFV SOL005
   contact:
@@ -16,6 +17,7 @@ info:
   license:
     name: Apache 2.0
     url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
+
 tags:
   - name: 'VNF packages'
     description: Management operations of VNF descriptors and packages
@@ -23,16 +25,30 @@ tags:
     description: Management operations of NS descriptors and packages
   - name: 'NS instances'
     description: Management operations of NS instances
+  - name: 'NetSlice templates'
+    description: Management operations of NetSlice Templates
+  - name: 'NetSlice instances'
+    description: Management operations of NetSlice Instances
+# - name: 'NSPM'
+#   description: Management operations of NSPMs
+# - name: 'PDU'
+#   description: Management operations of PDUs
+# - name: 'Admin'
+#   description: Management operations of Administration items
+
+security:
+  - bearerAuth: []
+
 paths:
-  /nsd/v1/ns_descriptors:
+
+# BEGIN NS Packages
+  '/nsd/v1/ns_descriptors':
     get:
       tags:
         - "NS packages"
       summary: Query information about multiple NS descriptor resources
       description: Query information about multiple NS descriptor resources
       operationId: getNSDs
-      security:
-        - bearerAuth: []
       responses:
         '200':
           description: OK
@@ -73,8 +89,6 @@ paths:
       summary: Create a new NS descriptor resource
       description: Create a new NS descriptor resource
       operationId: addNSD
-      security:
-        - bearerAuth: []
       requestBody:
         $ref: '#/components/requestBodies/CreateNsdInfoRequest'
       responses:
@@ -88,10 +102,10 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/NsdInfo'
+                $ref: '#/components/schemas/ObjectId'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/NsdInfo'
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -117,14 +131,19 @@ paths:
         default:
           $ref: '#/components/responses/UnexpectedError'
   '/nsd/v1/ns_descriptors/{nsdInfoId}':
+    parameters:
+      - name: nsdInfoId
+        in: path
+        required: true
+        description: NSD Info ID
+        schema:
+          type : string
     get:
       tags:
         - "NS packages"
       summary: Read information about an individual NS descriptor resource
       description: Read information about an individual NS descriptor resource
       operationId: getNSD
-      security:
-        - bearerAuth: []
       responses:
         '200':
           description: OK
@@ -165,8 +184,6 @@ paths:
       summary: Delete an individual NS descriptor resource
       description: Delete an individual NS descriptor resource
       operationId: deleteNSD
-      security:
-        - bearerAuth: []
       responses:
         '204':
           description: No Content
@@ -197,23 +214,14 @@ paths:
     patch:
       tags:
         - "NS packages"
-      summary: Modify the operational state and/or the user defined data of an  individual NS descriptor resource
-      description: Modify the operational state and/or the user defined data of an  individual NS descriptor resource
+      summary: Modify the data of an  individual NS descriptor resource
+      description: Modify the data of an  individual NS descriptor resource
       operationId: updateNSD
-      security:
-        - bearerAuth: []
       requestBody:
         $ref: '#/components/requestBodies/NsdInfoModifications'
       responses:
-        '200':
-          description: OK
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/NsdInfoModifications'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/NsdInfoModifications'
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -239,25 +247,36 @@ paths:
         default:
           $ref: '#/components/responses/UnexpectedError'
   '/nsd/v1/ns_descriptors/{nsdInfoId}/nsd_content':
+    parameters:
+      - name: nsdInfoId
+        in: path
+        required: true
+        description: NSD Info ID
+        schema:
+          type : string
     get:
       tags:
         - "NS packages"
       summary: Fetch the content of a NSD
       description: Fetch the content of a NSD
       operationId: getNSDcontent
-      security:
-        - bearerAuth: []
       responses:
         '200':
           description: OK
-          $ref: '#/components/requestBodies/NsdContent'
+          content:
+            application/zip:
+              schema:
+                $ref: '#/components/schemas/NsPackage'
         '206':
           description: Partial Content
           headers:
             Content-Range:
               schema:
                 type: string
-          $ref: '#/components/requestBodies/NsdContent'
+          content:
+            application/zip:
+              schema:
+                $ref: '#/components/schemas/NsPackage'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -288,10 +307,8 @@ paths:
       summary: Upload the content of a NSD
       description: Upload the content of a NSD
       operationId: updateNSDcontent
-      security:
-        - bearerAuth: []
       requestBody:
-        $ref: '#/components/requestBodies/NsdContent'
+        $ref: '#/components/requestBodies/NsPackage'
       responses:
         '202':
           description: Accepted
@@ -321,25 +338,90 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  /vnfpkgm/v1/vnf_packages:
+  '/nsd/v1/ns_descriptors/{nsdInfoId}/artifacts/{artifactPath}':
+    parameters:
+      - name: nsdInfoId
+        in: path
+        required: true
+        description: NS Package ID
+        schema:
+          type : string
+      - name: artifactPath
+        in: path
+        required: true
+        description: Artifact Path
+        schema:
+          type : string
     get:
       tags:
-        - "VNF packages"
-      summary: Query information about multiple VNF package resources
-      description: Query information about multiple VNF package resoureces
-      operationId: getVnfPkgs
-      security:
-        - bearerAuth: []
+        - "NS packages"
+      summary: Fetch individual NS package artifact
+      description: Fetch individual NS package artifact
+      operationId: getNsPkgArtifact
       responses:
         '200':
           description: OK
           content:
-            application/json:
+            application/octet-stream:
               schema:
-                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
-            application/yaml:
+                type: string
+                format: binary
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
               schema:
-                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
+                type: string
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsd/v1/ns_descriptors/{nsdInfoId}/nsd':
+    parameters:
+      - name: nsdInfoId
+        in: path
+        required: true
+        description: NS Package ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NS packages"
+      summary: Read NSD of an on-boarded NS package
+      description: Read NSD of an on-boarded NS package
+      operationId: getNsPkgNsd
+      responses:
+        '200':
+          description: OK
+          content:
+            text/plain:
+              schema:
+                $ref: '#/components/schemas/NsDescriptor'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -364,16 +446,18 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
+  '/nsd/v1/ns_descriptors_content':
     post:
       tags:
-        - "VNF packages"
-      summary: Create a new VNF package resource
-      description: Create a new VNF package resource
-      operationId: addVnfPkg
-      security:
-        - bearerAuth: []
+        - "NS packages"
+      summary: Upload a NS package by providing the content of the NS package
+      description: Upload a NS package by providing the content of the NS package
+      operationId: uploadNsPkgsContent
       requestBody:
-        $ref: '#/components/requestBodies/CreateVnfPkgInfoRequest'
+        content:
+          application/zip:
+            schema:
+              $ref: '#/components/schemas/NsPackage'
       responses:
         '201':
           description: Created
@@ -385,10 +469,14 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/VnfPkgInfo'
+                $ref: '#/components/schemas/ObjectId'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/VnfPkgInfo'
+                $ref: '#/components/schemas/ObjectId'
+        '202':
+          description: Accepted
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -413,25 +501,33 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}':
     get:
       tags:
-        - "VNF packages"
-      summary: Read information about an individual VNF package resource
-      description: Read information about an individual VNF package resource
-      operationId: getVnfPkg
-      security:
-        - bearerAuth: []
+        - "NS packages"
+      summary: Query information about multiple NS package resources
+      description: Query information about multiple NS package resources
+      operationId: getNsPkgsContent
       responses:
         '200':
           description: OK
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/VnfPkgInfo'
+                $ref: '#/components/schemas/ArrayOfNsdInfo'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/VnfPkgInfo'
+                $ref: '#/components/schemas/ArrayOfNsdInfo'
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -456,17 +552,30 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+  '/nsd/v1/ns_descriptors_content/{nsdInfoId}':
+    parameters:
+      - name: nsdInfoId
+        in: path
+        required: true
+        description: NS Package ID
+        schema:
+          type : string
+    get:
       tags:
-        - "VNF packages"
-      summary: Delete an individual VNF package resource
-      description: Delete an individual VNF package resource
-      operationId: deleteVnfPkg
-      security:
-        - bearerAuth: []
+        - "NS packages"
+      summary: Read information about an individual NS package resource
+      description: Read information about an individual NS package resource
+      operationId: getNsPkgsIdContent
       responses:
-        '204':
-          description: No Content
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsdInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsdInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -491,26 +600,17 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    patch:
+    put:
       tags:
-        - "VNF packages"
-      summary: Modify the operational state and/or the user defined data of an individual VNF package resource
-      description: Modify the operational state and/or the user defined data of an individual VNF package resource
-      operationId: updateVnfPkg
-      security:
-        - bearerAuth: []
+        - "NS packages"
+      summary: Modify an individual NS package resource
+      description: Modify an individual NS package resource
+      operationId: updateNsPkgsIdContent
       requestBody:
-        $ref: '#/components/requestBodies/VnfPkgInfoModifications'
+        $ref: '#/components/requestBodies/NsdInfoModifications'
       responses:
-        '200':
-          description: OK
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/VnfPkgInfoModifications'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/VnfPkgInfoModifications'
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -535,22 +635,15 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/vnfd':
-    get:
+    delete:
       tags:
-        - "VNF packages"
-      summary: Read VNFD of an on-boarded VNF package
-      description: Read VNFD of an on-boarded VNF package
-      operationId: getVnfPkgVNFD
-      security:
-        - bearerAuth: []
+        - "NS packages"
+      summary: Delete an individual NS package resource
+      description: Delete an individual NS package resource
+      operationId: deleteNSPkgsIdContent
       responses:
-        '200':
-          description: OK
-          content:
-            text/plain:
-              schema:
-                $ref: '#/components/schemas/VnfDescriptor'
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -575,32 +668,26 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content':
+# END NS Packages
+
+# BEGIN VNF Packages
+  '/vnfpkgm/v1/vnf_packages':
     get:
       tags:
         - "VNF packages"
-      summary: Fetch an on-boarded VNF package
-      description: Fetch an on-boarded VNF package
-      operationId: getVnfPkgContent
-      security:
-        - bearerAuth: []
+      summary: Query information about multiple VNF package resources
+      description: Query information about multiple VNF package resources
+      operationId: getVnfPkgs
       responses:
         '200':
           description: OK
           content:
-            application/zip:
-              schema:
-                $ref: '#/components/schemas/VnfPackage'
-        '206':
-          description: Partial Content
-          headers:
-            Content-Range:
+            application/json:
               schema:
-                type: string
-          content:
-            application/zip:
+                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
+            application/yaml:
               schema:
-                $ref: '#/components/schemas/VnfPackage'
+                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -625,21 +712,29 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    put:
+    post:
       tags:
         - "VNF packages"
-      summary: Upload a VNF package by providing the content of the VNF package
-      description: Upload a VNF package by providing the content of the VNF package
-      operationId: uploadVnfPkgContent
-      security:
-        - bearerAuth: []
+      summary: Create a new VNF package resource
+      description: Create a new VNF package resource
+      operationId: addVnfPkg
       requestBody:
-        $ref: '#/components/requestBodies/VnfPackage'
+        $ref: '#/components/requestBodies/CreateVnfPkgInfoRequest'
       responses:
-        '202':
-          description: Accepted
-        #'204':
-        #  description: No Content
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -664,22 +759,30 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content/upload_from_uri':
-    post:
+  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}':
+    parameters:
+      - name: vnfPkgId
+        in: path
+        required: true
+        description: VNF Package ID
+        schema:
+          type : string
+    get:
       tags:
         - "VNF packages"
-      summary: Upload a VNF package by providing the URI of the VNF package
-      description: Upload a VNF package by providing the URI of the VNF package
-      operationId: uploadVnfPkgContentFromURI
-      security:
-        - bearerAuth: []
-      requestBody:
-        $ref: '#/components/requestBodies/UploadVnfPackageFromUriRequest'
+      summary: Read information about an individual VNF package resource
+      description: Read information about an individual VNF package resource
+      operationId: getVnfPkg
       responses:
-        '202':
-          description: Accepted
-        #'204':
-        #  description: No Content
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/VnfPkgInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/VnfPkgInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -704,34 +807,15 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}':
-    get:
+    delete:
       tags:
         - "VNF packages"
-      summary: Fetch individual VNF package artifact
-      description: Fetch individual VNF package artifact
-      operationId: getVnfPkgArtifact
-      security:
-        - bearerAuth: []
+      summary: Delete an individual VNF package resource
+      description: Delete an individual VNF package resource
+      operationId: deleteVnfPkg
       responses:
-        '200':
-          description: OK
-          content:
-            application/octet-stream:
-              schema:
-                type: string
-                format: binary
-        '206':
-          description: Partial Content
-          headers:
-            Content-Range:
-              schema:
-                type: string
-          content:
-            application/octet-stream:
-              schema:
-                type: string
-                format: binary
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -756,11 +840,2505 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-externalDocs:
-  description: Find out more OSM
-  url: 'http://osm.etsi.org/wikipub'
-components:
-  responses:
+    patch:
+      tags:
+        - "VNF packages"
+      summary: Modify an individual VNF package resource
+      description: Modify an individual VNF package resource
+      operationId: updateVnfPkg
+      requestBody:
+        $ref: '#/components/requestBodies/VnfPkgInfoModifications'
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/vnfd':
+    parameters:
+      - name: vnfPkgId
+        in: path
+        required: true
+        description: VNF Package ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "VNF packages"
+      summary: Read VNFD of an on-boarded VNF package
+      description: Read VNFD of an on-boarded VNF package
+      operationId: getVnfPkgVnfd
+      responses:
+        '200':
+          description: OK
+          content:
+            text/plain:
+              schema:
+                $ref: '#/components/schemas/VnfDescriptor'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content':
+    parameters:
+      - name: vnfPkgId
+        in: path
+        required: true
+        description: VNF Package ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "VNF packages"
+      summary: Fetch an on-boarded VNF package
+      description: Fetch an on-boarded VNF package
+      operationId: getVnfPkgContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/zip:
+              schema:
+                $ref: '#/components/schemas/VnfPackage'
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/zip:
+              schema:
+                $ref: '#/components/schemas/VnfPackage'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    put:
+      tags:
+        - "VNF packages"
+      summary: Upload a VNF package by providing the content of the VNF package
+      description: Upload a VNF package by providing the content of the VNF package
+      operationId: uploadVnfPkgContent
+      requestBody:
+        content:
+          application/zip:
+            schema:
+              $ref: '#/components/schemas/VnfPackage'
+      responses:
+        '202':
+          description: Accepted
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}':
+    parameters:
+      - name: vnfPkgId
+        in: path
+        required: true
+        description: VNF Package ID
+        schema:
+          type : string
+      - name: artifactPath
+        in: path
+        required: true
+        description: Artifact Path
+        schema:
+          type : string
+    get:
+      tags:
+        - "VNF packages"
+      summary: Fetch individual VNF package artifact
+      description: Fetch individual VNF package artifact
+      operationId: getVnfPkgArtifact
+      responses:
+        '200':
+          description: OK
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/vnfpkgm/v1/vnf_packages_content':
+    post:
+      tags:
+        - "VNF packages"
+      summary: Upload a VNF package by providing the content of the VNF package
+      description: Upload a VNF package by providing the content of the VNF package
+      operationId: uploadVnfPkgsContent
+      requestBody:
+        content:
+          application/zip:
+            schema:
+              $ref: '#/components/schemas/VnfPackage'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '202':
+          description: Accepted
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    get:
+      tags:
+        - "VNF packages"
+      summary: Query information about multiple VNF package resources
+      description: Query information about multiple VNF package resources
+      operationId: getVnfPkgsContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/vnfpkgm/v1/vnf_packages_content/{packageContentId}':
+    parameters:
+      - name: packageContentId
+        in: path
+        required: true
+        description: VNF Package Content ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "VNF packages"
+      summary: Read information about an individual VNF package resource
+      description: Read information about an individual VNF package resource
+      operationId: getVnfPkgsIdContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/VnfPkgInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/VnfPkgInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    put:
+      tags:
+        - "VNF packages"
+      summary: Modify an individual VNF package resource
+      description: Modify an individual VNF package resource
+      operationId: updateVnfPkgsIdContent
+      requestBody:
+        $ref: '#/components/requestBodies/VnfPkgInfoModifications'
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "VNF packages"
+      summary: Delete an individual VNF package resource
+      description: Delete an individual VNF package resource
+      operationId: deleteVnfPkgsIdContent
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+# END VNF Packages
+
+# BEGIN NS Instances
+  '/nslcm/v1/ns_instances':
+    get:
+      tags:
+        - "NS instances"
+      summary: Query information about multiple NS instances
+      description: Query information about multiple NS isntances
+      operationId: getNSinstances
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "NS instances"
+      summary: Create a new NS instance resource
+      description: Create a new NS instance resource
+      operationId: addNSinstance
+      requestBody:
+        $ref: '#/components/requestBodies/CreateNsRequest'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NS instances"
+      summary: Read an individual NS instance resource
+      description: Read an individual NS instance resource
+      operationId: getNSinstance
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "NS instances"
+      summary: Delete an individual NS instance resource
+      description: Delete an individual NS instance resource
+      operationId: deleteNSinstance
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}/instantiate':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NS instances"
+      summary: Instantiate a NS
+      description: |
+        Instantiate a NS. The precondition is that the NS instance must have
+        been created and must be in NOT_INSTANTIATED state. As a result of the
+        success of this operation, the NFVO creates a "NS Lifecycle Operation
+        Occurrence" resource for the request, and the NS instance state becomes
+        INSTANTIATED.
+      operationId: instantiateNSinstance
+      requestBody:
+        $ref: '#/components/requestBodies/InstantiateNsRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NS Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}/scale':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NS instances"
+      summary: Scale a NS instance
+      description: |
+        Scale a NS instance. The precondition is that the NS instance must have
+        been created and must be in INSTANTIATED state. As a result of the
+        success of this operation, the NFVO creates a "NS Lifecycle Operation
+        Occurrence" resource for the request, and the NS instance state remains
+        INSTANTIATED.
+      operationId: scaleNSinstance
+      requestBody:
+        $ref: '#/components/requestBodies/ScaleNsRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NS Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}/terminate':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NS instances"
+      summary: Terminate a NS instance
+      description: |
+        Terminate a NS instance. The precondition is that the NS instance must have
+        been created and must be in INSTANTIATED state. As a result of the
+        success of this operation, the NFVO creates a "NS Lifecycle Operation
+        Occurrence" resource for the request, and the NS instance state becomes
+        NOT_INSTANTIATED.
+      operationId: terminateNSinstance
+      requestBody:
+        # Request data is not required
+        $ref: '#/components/requestBodies/TerminateNsRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NS Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}/action':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NS instances"
+      summary: Execute an action on a NS instance
+      description: |
+        Execute an action on a NS instance.
+        The NS instance must have been created and must be in INSTANTIATED state.
+      operationId: actionOnNSinstance
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/NSinstanceActionRequest'
+          application/yaml:
+            schema:
+              $ref: '#/components/schemas/NSinstanceActionRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NS Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances_content':
+    get:
+      tags:
+        - "NS instances"
+      summary: Query information about multiple NS instances
+      description: Query information about multiple NS isntances
+      operationId: getNSinstancesContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "NS instances"
+      summary: Create a new NS instance
+      description: Create a new NS instance
+      operationId: createNSinstanceContent
+      requestBody:
+        $ref: '#/components/requestBodies/CreateNSinstanceContentRequest'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/CreateNSinstanceContentResponse'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/CreateNSinstanceContentResponse'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances_content/{nsInstanceContentId}':
+    parameters:
+      - name: nsInstanceContentId
+        in: path
+        required: true
+        description: NS Instance Content ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NS instances"
+      summary: Read an individual NS instance resource
+      description: Read an individual NS instance resource
+      operationId: getNSinstanceContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "NS instances"
+      summary: Delete an individual NS instance resource
+      description: Delete an individual NS instance resource
+      operationId: deleteNSinstanceContent
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_lcm_op_occs':
+    get:
+      tags:
+        - "NS instances"
+      summary: Query information about multiple NS LCM Operation Occurrences
+      description: Query information about multiple NS LCM Operation Occurrences
+      operationId: getNSLCMOpOccs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsLcmOpOcc'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsLcmOpOcc'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}':
+    parameters:
+      - name: nsLcmOpOccId
+        in: path
+        required: true
+        description: NS LCM Operation Occurrence ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NS instances"
+      summary: Query information about an individual NS LCM Operation Occurrence
+      description: Query information about an individual NS LCM Operation Occurrence
+      operationId: getNSLCMOpOcc
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsLcmOpOcc'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsLcmOpOcc'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/vnf_instances':
+    get:
+      tags:
+        - "NS instances"
+      summary: Query information about multiple VNF Instances
+      description: Query information about multiple VNF Instances
+      operationId: getVnfInstances
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVnfInstanceInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVnfInstanceInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/vnf_instances/{vnfInstanceId}':
+    parameters:
+      - name: vnfInstanceId
+        in: path
+        required: true
+        description: VNF Instance ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NS instances"
+      summary: Query information about an individual VNF Instance
+      description: Query information about an individual VNF Instance
+      operationId: getVnfInstance
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/VnfInstanceInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/VnfInstanceInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+# END NS Instances
+
+# BEGIN NetSlice Templates
+  '/nst/v1/netslice_templates':
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Query information about multiple NetSlice template resources
+      description: Query information about multiple NetSlice template resources
+      operationId: getNSTs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNstInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNstInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "NetSlice templates"
+      summary: Create a new NetSlice template resource
+      description: Create a new NetSlice template resource
+      operationId: addNST
+      requestBody:
+        $ref: '#/components/requestBodies/CreateNstInfoRequest'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nst/v1/netslice_templates/{netsliceTemplateId}':
+    parameters:
+      - name: netsliceTemplateId
+        in: path
+        required: true
+        description: NetSlice Template ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Read information about an individual NetSlice template resource
+      description: Read information about an individual NetSlice template resource
+      operationId: getNST
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NstInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NstInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "NetSlice templates"
+      summary: Delete an individual NetSlice template resource
+      description: Delete an individual NetSlice template resource
+      operationId: deleteNST
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nst/v1/netslice_templates/{netsliceTemplateId}/artifacts/{artifactPath}':
+    parameters:
+      - name: netsliceTemplateId
+        in: path
+        required: true
+        description: NetSlice Template ID
+        schema:
+          type : string
+      - name: artifactPath
+        in: path
+        required: true
+        description: Artifact Path
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Fetch individual NetSlice Template artifact
+      description: Fetch individual NetSlice Template artifact
+      operationId: getNstArtifact
+      responses:
+        '200':
+          description: OK
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nst/v1/netslice_templates/{netsliceTemplateId}/nst':
+    parameters:
+      - name: netsliceTemplateId
+        in: path
+        required: true
+        description: NetSlice Template ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Read NST of an on-boarded NetSlice Template
+      description: Read NST of an on-boarded NetSlice Template
+      operationId: getNstNst
+      responses:
+        '200':
+          description: OK
+          content:
+            text/plain:
+              schema:
+                $ref: '#/components/schemas/NetSliceTemplate'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nst/v1/netslice_templates/{netsliceTemplateId}/nst_content':
+    parameters:
+      - name: netsliceTemplateId
+        in: path
+        required: true
+        description: NetSlice Template ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Fetch the content of a NST
+      description: Fetch the content of a NST
+      operationId: getNSTcontent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/zip:
+              schema:
+                $ref: '#/components/schemas/NetSlicePackage'
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/zip:
+              schema:
+                $ref: '#/components/schemas/NetSlicePackage'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    put:
+      tags:
+        - "NetSlice templates"
+      summary: Upload the content of a NST
+      description: Upload the content of a NST
+      operationId: updateNSTcontent
+      requestBody:
+        $ref: '#/components/requestBodies/NetSlicePackage'
+      responses:
+        '202':
+          description: Accepted
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nst/v1/netslice_templates_content':
+    post:
+      tags:
+        - "NetSlice templates"
+      summary: Upload a NetSlice package by providing the content of the NetSlice package
+      description: Upload a NetSlice package by providing the content of the NetSlice package
+      operationId: uploadNstContent
+      requestBody:
+        content:
+          application/zip:
+            schema:
+              $ref: '#/components/schemas/NetSlicePackage'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '202':
+          description: Accepted
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Query information about multiple NetSlice Template resources
+      description: Query information about multiple NetSlice Template resources
+      operationId: getNstContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNstInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNstInfo'
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nst/v1/netslice_templates_content/{netsliceTemplateContentId}':
+    parameters:
+      - name: netsliceTemplateContentId
+        in: path
+        required: true
+        description: NetSlice Template ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Read information about an individual NetSlice Template resource
+      description: Read information about an individual NetSlice Template resource
+      operationId: getNstIdContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NstInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NstInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    put:
+      tags:
+        - "NetSlice templates"
+      summary: Modify an individual NetSlice Template resource
+      description: Modify an individual NetSlice Template resource
+      operationId: updateNstIdContent
+      requestBody:
+        $ref: '#/components/requestBodies/NstInfoModifications'
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "NetSlice templates"
+      summary: Delete an individual NetSlice Template resource
+      description: Delete an individual NetSlice Template resource
+      operationId: deleteNstIdContent
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+# END NetSlice Templates
+
+# BEGIN NetSlice Instances
+  '/nsilcm/v1/netslice_instances':
+    get:
+      tags:
+        - "NetSlice instances"
+      summary: Query information about multiple NetSlice instances
+      description: Query information about multiple NetSlice isntances
+      operationId: getNSIs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNetSliceInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNetSliceInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "NetSlice instances"
+      summary: Create a new NetSlice instance resource
+      description: Create a new NetSlice instance resource
+      operationId: addNSI
+      requestBody:
+        $ref: '#/components/requestBodies/CreateNsiRequest'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/netslice_instances/{netsliceInstanceId}':
+    parameters:
+      - name: netsliceInstanceId
+        in: path
+        required: true
+        description: NetSlice Instance ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice instances"
+      summary: Read an individual NetSlice instance resource
+      description: Read an individual NetSlice instance resource
+      operationId: getNSI
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NetSliceInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NetSliceInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "NetSlice instances"
+      summary: Delete an individual NetSlice instance resource
+      description: Delete an individual NetSlice instance resource
+      operationId: deleteNSI
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/instantiate':
+    parameters:
+      - name: netsliceInstanceId
+        in: path
+        required: true
+        description: NetSlice Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NetSlice instances"
+      summary: Instantiate a NetSlice
+      description: |
+        Instantiate a NetSlice. The precondition is that the NetSlice instance
+        must have been created and must be in NOT_INSTANTIATED state. As a result
+        of the success of this operation, the NFVO creates a "NetSlice Lifecycle
+        Operation Occurrence" resource for the request, and the NS instance state
+        becomes INSTANTIATED.
+      operationId: instantiateNSI
+      requestBody:
+        $ref: '#/components/requestBodies/InstantiateNsiRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NetSlice Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../nsi_lcm_op_occs/{nsiLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/terminate':
+    parameters:
+      - name: netsliceInstanceId
+        in: path
+        required: true
+        description: NetSlice Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NetSlice instances"
+      summary: Terminate a NetSlice instance
+      description: |
+        Terminate a NetSlice instance. The precondition is that the NetSlice instance
+        must have been created and must be in INSTANTIATED state. As a result of the
+        success of this operation, the NFVO creates a "NetSlice Lifecycle Operation
+        Occurrence" resource for the request, and the NetSlice instance state becomes
+        NOT_INSTANTIATED.
+      operationId: terminateNSI
+      requestBody:
+        # Request data is not required
+        $ref: '#/components/requestBodies/TerminateNsiRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NetSlice Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../nsi_lcm_op_occs/{nsiLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/action':
+    parameters:
+      - name: netsliceInstanceId
+        in: path
+        required: true
+        description: NetSlice Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NetSlice instances"
+      summary: Execute an action on a NetSlice instance
+      description: |
+        Execute an action on a NetSlice instance.
+        The NetSlice instance must have been created and must be in INSTANTIATED state.
+      operationId: actionOnNSI
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/NsiActionRequest'
+          application/yaml:
+            schema:
+              $ref: '#/components/schemas/NsiActionRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NS Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/netslice_instances_content':
+    get:
+      tags:
+        - "NetSlice instances"
+      summary: Query information about multiple NetSlice instances
+      description: Query information about multiple NetSlice isntances
+      operationId: getNSIsContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNetSliceInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNetSliceInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "NetSlice instances"
+      summary: Create a new NetSlice instance
+      description: Create a new NetSlice instance
+      operationId: createNSIContent
+      requestBody:
+        $ref: '#/components/requestBodies/CreateNsiContentRequest'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/CreateNsiContentResponse'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/CreateNsiContentResponse'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/netslice_instances_content/{netsliceInstanceContentId}':
+    parameters:
+      - name: netsliceInstanceContentId
+        in: path
+        required: true
+        description: NetSlice Instance Content ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice instances"
+      summary: Read an individual NetSlice instance resource
+      description: Read an individual NetSlice instance resource
+      operationId: getNSIContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NetSliceInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NetSliceInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "NetSlice instances"
+      summary: Delete an individual NS instance resource
+      description: Delete an individual NS instance resource
+      operationId: deleteNSIContent
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/nsi_lcm_op_occs':
+    get:
+      tags:
+        - "NetSlice instances"
+      summary: Query information about multiple NetSlice LCM Operation Occurrences
+      description: Query information about multiple NetSlice LCM Operation Occurrences
+      operationId: getNsiLcmOpOccs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsiLcmOpOcc'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsiLcmOpOcc'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/nsi_lcm_op_occs/{nsiLcmOpOccId}':
+    parameters:
+      - name: nsiLcmOpOccId
+        in: path
+        required: true
+        description: NetSlice LCM Operation Occurrence ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice instances"
+      summary: Query information about an individual NetSlice LCM Operation Occurrence
+      description: Query information about an individual NetSlice LCM Operation Occurrence
+      operationId: getNsiLcmOpOcc
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsiLcmOpOcc'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsiLcmOpOcc'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+# END NetSlice Instances
+
+# BEGIN NSPM
+  # /nspm/v1/pm_jobs/{pmJobId}/reports/{reportId}
+# END NSPM
+
+# BEGIN PDU
+  # /pdu/v1/pdu_descriptors
+  # /pdu/v1/pdu_descriptors/{pduDescriptorId}
+# END PDU
+
+# BEGIN Admin
+  # /admin/v1/tokens
+  # /admin/v1/tokens/{tokenId}
+  # /admin/v1/users
+  # /admin/v1/users/{userId}
+  # /admin/v1/projects
+  # /admin/v1/projects/{projectId}
+  # /admin/v1/roles
+  # /admin/v1/roles/{roleId}
+  # /admin/v1/vims
+  # /admin/v1/vims/{vimId}
+  # /admin/v1/vim_accounts
+  # /admin/v1/vim_accounts/{vimAccountId}
+  # /admin/v1/wim_accounts
+  # /admin/v1/wim_accounts/{wimAccountId}
+  # /admin/v1/sdns
+  # /admin/v1/sdns/{sdnId}
+# END Admin
+
+externalDocs:
+  description: Find out more OSM
+  url: 'http://osm.etsi.org/wikipub'
+
+components:
+  responses:
     BadRequest:
       description: Bad request. The server cannot process the request due to a client error.
       content:
@@ -827,422 +3405,675 @@ components:
         application/json:
           schema:
             $ref: '#/components/schemas/ProblemDetails'
+    VnfDescriptor:
+      description: VNF Descriptor (plaintext)
+      content:
+        text/plain:
+          schema:
+            $ref: '#/components/schemas/VnfDescriptor'
+    VnfPackage:
+      description: VNF Package (compressed)
+      content:
+        application/zip:
+          schema:
+            $ref: '#/components/schemas/VnfPackage'
+    NsDescriptor:
+      description: NS Descriptor (plaintext)
+      content:
+        text/plain:
+          schema:
+            $ref: '#/components/schemas/NsDescriptor'
+    NsPackage:
+      description: NS Package (compressed)
+      content:
+        application/zip:
+          schema:
+            $ref: '#/components/schemas/NsPackage'
+    NetSliceTemplate:
+      description: NetSlice Template (plaintext)
+      content:
+        text/plain:
+          schema:
+            $ref: '#/components/schemas/NetSliceTemplate'
+    NetSlicePackage:
+      description: NetSlice Package (compressed)
+      content:
+        application/zip:
+          schema:
+            $ref: '#/components/schemas/NetSlicePackage'
+  # END RESPONSES
+
   schemas:
+    ObjectId:
+      type: object
+      properties:
+        id:
+          type: string
+          format: uuid
+    KeyValuePairs:
+      # A free list of key:value pairs
+      type: object
+      additionalProperties: true
     NsDescriptor:
       type: string
+      format: yaml|json
     NsPackage:
       type: string
       format: binary
-    KeyValuePairs:
-      type: object
-      additionalProperties:
-        type: string
     CreateNsdInfoRequest:
+      # A free list of key:value pairs
+      type: object
+      additionalProperties: true
+    NsdInfoModifications:
+      description: |
+        NS Descriptor Information
+        Only generic fields (id, name, description) are described
+        For a full specification of the NS Descriptor see:
+        http://osm-download.etsi.org/ftp/osm-doc/nsd.html
       type: object
       properties:
-        userDefinedData:
-          $ref: '#/components/schemas/KeyValuePairs'
-    NsdOnboardingStateType:
-      type: string
-      enum: [CREATED, UPLAODING, PROCESSING, ONBOARDED]
+        id:
+          description: NSD Identifier
+          type: string
+        name:
+          description: NSD Name
+          type: string
+        description:
+          description: NSD Description
+          type: string
+    NsdInfo:
       description: |
-        NSD onboarding state:
-         * `CREATED` - The NSD information object is created.
-         * `UPLOADING` - The associated NSD content is being uploaded.
-         * `PROCESSING` - The associated NSD content is being processed, e.g. validation.
-         * `ONBOARDED` - The associated NSD content is on-boarded. 
-    NsdOperationalStateType:
+        NS Descriptor Information
+        Only generic fields (_id, id, name, description) are described
+        For a full specification of the NS Descriptor see:
+        http://osm-download.etsi.org/ftp/osm-doc/nsd.html
+      type: object
+      properties:
+        _id:
+          description: |
+            Identifier of the onboarded individual NS descriptor
+            resource. This identifier is allocated by the NFVO.
+          type: string
+          format: uuid
+        id:
+          description: |
+            This identifier, which is allocated by the NSD
+            designer, identifies the NSD in a globally unique
+            way. It is copied from the NSD content and shall be
+            present after the NSD content is on-boarded.
+          type: string
+        name:
+          description: |
+            Name of the onboarded NSD. This information is
+            copied from the NSD content and shall be present
+            after the NSD content is on-boarded.
+          type: string
+        description:
+          description: |
+            Description of the onboarded NSD.
+            This information is copied from the NSD content.
+          type: string
+      required:
+        - _id
+        - id
+    ArrayOfNsdInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/NsdInfo'
+    ProblemDetails:
+      type: object
+      properties:
+        type:
+          type: string
+          format: uri
+        title:
+          type: string
+        status:
+          type: integer
+        detail:
+          type: string
+        instance:
+          type: string
+          format: uri
+      additionalProperties: true
+      required:
+        - status
+        - detail
+    VnfDescriptor:
       type: string
-      enum: [ENABLED, DISABLED]
-      description: |
-        NSD operational state:
-         * `ENABLED` - The NSD is enabled.
-         * `DISABLED` - The NSD is disabled.
-    NsdUsageStateType:
+      format: yaml|json
+    VnfPackage:
       type: string
-      enum: [IN_USE, NOT_IN_USE]
+      format: binary
+    CreateVnfPkgInfoRequest:
+      # A free list of key:value pairs
+      type: object
+      additionalProperties: true
+    VnfPkgInfoModifications:
       description: |
-        NSD usage state:
-         * `IN_USE` - The NSD is in use.
-         * `NOT_IN_USE` - The NSD is not in use.
-    NsdInfoModifications:
+        VNF Package Information
+        Only generic fields (id, name, description) are described
+        For a full specification of the VNF Descriptor see:
+        http://osm-download.etsi.org/ftp/osm-doc/vnfd.html
       type: object
       properties:
-        nsdOperationalState:
-          $ref: '#/components/schemas/NsdOperationalStateType'
-        userDefinedData:
-          $ref: '#/components/schemas/KeyValuePairs'
-    NsdInfo:
+        id:
+          description: VNF Package Identifier
+          type: string
+        name:
+          description: VNF Package Name
+          type: string
+        description:
+          description: VNF Package description
+          type: string
+    VnfPkgInfo:
+      description: |
+        VNF Package Information
+        Only generic fields (_id, id, name, description) are described
+        For a full specification of the VNF Descriptor see:
+        http://osm-download.etsi.org/ftp/osm-doc/vnfd.html
+      type: object
+      properties:
+        _id:
+          description: |
+            Identifier of the VNF package. This identifier is allocated by the NFVO.
+          type: string
+          format: uuid
+        id:
+          description: VNF Package Identifier
+          type: string
+        name:
+          description: VNF Package Name
+          type: string
+        description:
+          description: VNF Package description
+          type: string
+      required:
+        - _id
+        - id
+    ArrayOfVnfPkgInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/VnfPkgInfo'
+    CreateNsRequest:
+      type: object
+      properties:
+        nsdId:
+          description: |
+            Identifier of the NSD that defines the NS instance to be created.
+          type: string
+          format: uuid
+        nsName:
+          description: |
+            Human-readable name of the NS instance to be created.
+          type: string
+        nsDescription:
+          description: |
+            Human-readable description of the NS instance to be created.
+          type: string
+        vimAccountId:
+          description: |
+            Identifier of the VIM Account where the NS instance shall be created.
+          type: string
+          format: uuid
+      required:
+        - nsdId
+        - nsName
+        - vimAccountId
+    NsInstance:
+      description: |
+        NS Instance Information
+        Only generic fields (_id, id, name, description) are described
+        For a full specification of the NS Instance see:
+        http://osm-download.etsi.org/ftp/osm-doc/nsr.html
+      type: object
+      properties:
+        _id:
+          description: Identifier of the NS instance.
+          type: string
+          format: uuid
+        id:
+          description: Identifier of the NS instance.
+          type: string
+          format: uuid
+        name:
+          description: Human readable name of the NS instance.
+          type: string
+        description:
+          description: Human readable description of the NS instance.
+          type: string
+      required:
+        - _id
+        - id
+        - name
+    InstantiateNsRequest:
       type: object
       properties:
-        id:
+        nsName:
           description: |
-           Identifier of the onboarded individual NS descriptor
-           resource. This identifier is allocated by the NFVO. 
+            Human-readable name of the NS instance to be created.
           type: string
-          format: uuid
         nsdId:
           description: |
-            This identifier, which is allocated by the NSD
-            designer, identifies the NSD in a globally unique
-            way. It is copied from the NSD content and shall be
-            present after the NSD content is on-boarded.
+            Identifier of the NSD that defines the NS instance to be created.
           type: string
           format: uuid
-        nsdName:
+        vimAccountId:
           description: |
-            Name of the onboarded NSD. This information is
-            copied from the NSD content and shall be present
-            after the NSD content is on-boarded. 
+            Identifier of the VIM Account where the NS instance shall be created.
           type: string
-        nsdVersion:
-          description: |
-            Version of the on-boarded NSD. This information is
-            copied from the NSD content and shall be present
-            after the NSD content is on-boarded.
+          format: uuid
+      required:
+        - nsName
+        - nsdId
+        - vimAccountId
+    ScaleNsRequest:
+      type: object
+      properties:
+        scaleType:
           type: string
-        nsdDesigner:
+          enum:
+            - SCALE_VNF
+        scaleVnfData:
+          type: object
+          properties:
+            scaleVnfType:
+              type: string
+              enum:
+                - SCALE_IN
+                - SCALE_OUT
+            scaleByStepData:
+              type: object
+              properties:
+                scaling-group-descriptor:
+                  type: string
+                member-vnf-index:
+                  type: string
+              additionalProperties: true
+          additionalProperties: true
+      additionalProperties: true
+    TerminateNsRequest:
+      type: object
+      properties:
+        terminationTime:
           description: |
-            Designer of the on-boarded NSD. This information is
-            copied from the NSD content and shall be present
-            after the NSD content is on-boarded.
+            Timestamp indicating the end time of the NS, i.e. the NS will be terminated
+            automatically at this timestamp. Cardinality "0" indicates the NS termination
+            takes place immediately.
           type: string
-        nsdInvariantId:
-          description: |
-            This identifier, which is allocated by the NSD designer,
-            identifies an NSD in a version independent manner. This
-            information is copied from the NSD content and shall be
-            present after the NSD content is on-boarded. 
+          format: date-time
+    ArrayOfNsInstance:
+      type: array
+      items:
+        $ref: '#/components/schemas/NsInstance'
+    NSinstanceActionRequest:
+      type: object
+      properties:
+        primitive:
           type: string
-          format: uuid
-        vnfPkgIds:
-          description: |
-            List of VNF package identifiers referenced by the on-boarded
-            NS descriptor resource.
-          type: array
-          items:
-            type: string
-            format: uuid
-        pnfdInfoIds:
-          description: |
-            List of PNFD identifiers referenced by the on-boarded NS
-            descriptor resource.
-          type: array
-          items:
-            type: string
-            format: uuid
-        nestedNsdInfoIds:
-          description: |
-            List of NSD identifiers referenced by the on-boarded NS
-            descriptor resource.
-          type: array
-          items:
-            type: string
-            format: uuid
-        nsdOnboardingState:
-          description: |
-            Onboarding state of the individual NS descriptor resource.
-          $ref: '#components/schemas/NsdOnboardingStateType'
-        onboardingFailureDetails:
-          description: |
-            Failure details of current onboarding procedure. It follows
-            the "ProblemDetails" structure. It shall be present when the
-            "nsdOnboardingState" attribute is CREATED and the uploading or
-            processing fails in NFVO.
-          $ref: '#/components/schemas/ProblemDetails'
-        nsdOperationalState:
-          description: |
-            Operational state of the individual NS descriptor resource. This
-            attribute can be modified with the PATCH method. If the value of
-            the nsdOnboardingState attribute is not equal to "ONBOARDED", the
-            value of the nsdOperationalState attribute shall be equal to
-            "DISABLED".
-          $ref: '#components/schemas/NsdOperationalStateType'
-        nsdUsagestate:
-          description: |
-            Usage state of the individual NS descriptor resource. If the value
-            of the nsdOnboardingState attribute is not equal to "ONBOARDED",
-            the value of the nsdUsageState attribute shall be equal to
-            "NOT_IN_USE".
-          $ref: '#components/schemas/NsdUsageStateType'
-        userDefinedData:
+        primitive_params:
           $ref: '#/components/schemas/KeyValuePairs'
-        _links:
+        lcmOperationType:
+          type: string
+        nsInstanceId:
+          type: string
+          format: uuid
+        member_vnf_index:
+          type: string
+        vdu_id:
+          type: string
+        vdu_count_index:
+          type: integer
+      required:
+        - primitive
+        - primitive_params
+      additionalProperties: false
+    CreateNSinstanceContentRequest:
+      type: object
+      properties:
+        nsdId:
           description: |
-            Links to resources related to this resource
+            Identifier of the NSD that defines the NS instance to be created.
           type: string
-        self:
+          format: uuid
+        nsName:
           description: |
-            URI of this resource
+            Human-readable name of the NS instance to be created.
           type: string
-          format: uri
-        nsd_content:
+        vimAccountId:
           description: |
-            Link to the NSD content resource.
+            Identifier of the VIM Account where the NS instance shall be created.
           type: string
-          format: uri
+          format: uuid
       required:
-        - id
-        - nsdOnboardingState
-        - nsdOperationalState
-        - nsdUsageState
-        - _links
-        - self
-        - nsd_content
-    ArrayOfNsdInfo:
+        - nsdId
+        - nsName
+        - vimAccountId
+    CreateNSinstanceContentResponse:
+      type: object
+      properties:
+        id:
+          type: string
+          format: uuid
+        nslcmop_id:
+          type: string
+          format: uuid
+    NsLcmOpOcc:
+      type: object
+      properties:
+        _id:
+          type: string
+          format: uuid
+        id:
+          type: string
+          format: uuid
+        lcmOperationType:
+          type: string
+        nsInstanceId:
+          type: string
+          format: uuid
+        isAutomaticInvocation:
+          type: boolean
+        isCancelPending:
+          type: boolean
+        startTime:
+          type: number
+          format: float
+        statusEnteredTime:
+          type: number
+          format: float
+        operationParams:
+          type: object
+          properties:
+            nsName:
+              type: string
+            nsdId:
+              type: string
+              format: uuid
+            vimAccountId:
+              type: string
+              format: uuid
+            nsInstanceId:
+              type: string
+              format: uuid
+            lcmOperationType:
+              type: string
+        operationState:
+          type: string
+        detailed-status:
+          type: string
+        links:
+          type: object
+          properties:
+            self:
+              type: string
+              format: path   # uri?
+            nsInstance:
+              type: string
+              format: path   # uri?
+    ArrayOfNsLcmOpOcc:
       type: array
       items:
-        $ref: '#/components/schemas/NsdInfo'
-    ProblemDetails:
+        $ref: '#/components/schemas/NsLcmOpOcc'
+    VnfInstanceInfo:
+      description: |
+        VNF Instance Information
+        Only generic fields (_id, id) are described
+        For a full specification of the VNF Instance see:
+        http://osm-download.etsi.org/ftp/osm-doc/vnfr.html
       type: object
       properties:
-        type:
+        _id:
           type: string
-          format: uri
-        title:
+          format: uuid
+        id:
           type: string
-        status:
-          type: integer
-        detail:
+          format: uuid
+    ArrayOfVnfInstanceInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/VnfInstanceInfo'
+    NstInfo:
+      description: |
+        NetSlice Template Information
+        Only generic fields (_id, id, name) are described
+        For a full specification of the NetSlice Template see:
+        http://osm-download.etsi.org/ftp/osm-doc/nst.html
+      type: object
+      properties:
+        _id:
+          description: NetSlice Template Identifier
           type: string
-        instance:
+          format: uuid
+        id:
+          description: Human readable NetSlice Template Identifier
           type: string
-          format: uri
+        name:
+          description: Human readable name of the NetSlice Template
+          type: string
+    ArrayOfNstInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/NstInfo'
+    CreateNstInfoRequest:
+      # A free list of key:value pairs
+      type: object
       additionalProperties: true
-      required:
-        - status
-        - detail
-    VnfDescriptor:
+    NetSliceTemplate:
       type: string
-    VnfPackage:
+      format: yaml|json
+    NetSlicePackage:
       type: string
       format: binary
-    CreateVnfPkgInfoRequest:
-      type: object
-      properties:
-        userDefinedData:
-          $ref: '#/components/schemas/KeyValuePairs'
-    VnfPackageOnboardingStateType:
-      type: string
-      enum: [CREATED, UPLAODING, PROCESSING, ONBOARDED]
-      description: |
-        VNF Package onboarding state:
-         * `CREATED` - The VNF Package information object is created.
-         * `UPLOADING` - The VNF Package is being uploaded.
-         * `PROCESSING` - The VNF Package is being processed, e.g. validation.
-         * `ONBOARDED` - The VNF Package is successfully on-boarded.
-    VnfPackageOperationalStateType:
-      type: string
-      enum: [ENABLED, DISABLED]
-      description: |
-        VNF Package operational state:
-         * `ENABLED` - The VNF Package is enabled.
-         * `DISABLED` - The VNF Package is disabled.
-    VnfPackageUsageStateType:
-      type: string
-      enum: [IN_USE, NOT_IN_USE]
+    NstInfoModifications:
       description: |
-        VNF Package usage state:
-         * `IN_USE` - The VNF Package is in use.
-         * `NOT_IN_USE` - The VNF Package is not in use.
-    #SoftwareImageFormatType:
-    #  type: string
-    #  enum: [AKI, AMI, ARI, BARE, DOCKER, OVA, OVF]
-    #  description: |
-    #    Software image format. Permitted values:
-    #     * `AKI`: a kernel image format
-    #     * `AMI`: a machine image format
-    #     * `ARI`: a ramdisk image format
-    #     * `BARE`: the image does not have a container or metadata envelope
-    #     * `DOCKER`: docker container format
-    #     * `OVA`: OVF package in a tarfile
-    #     * `OVF`: OVF container format
-    VnfPackageSoftwareImageInfo:
-      type: object
-      additionalProperties: true
-      #properties:
-        #id:
-        #  description: |
-        #    Identifier of the software image, unique in the scope of a VNFD.
-        #  type: string
-        #name:
-        #  description: |
-        #    Name of the software image.
-        #  type: string
-        #provider:
-        #  description: |
-        #    Provider of the software image.
-        #  type: string
-        #version:
-        #  description: |
-        #    Version of the software image.
-        #  type: string
-        #checksum:
-        #  description: |
-        #    Checksum of the software image file.
-        #  type: string
-        #containerFormat:
-        #  description: |
-        #    Container format indicates whether the software image is in a
-        #    file format that also contains metadata about the actual
-        #    software.
-        #  $ref: '#/components/schemas/SoftwareImageFormatType'
-        #diskFormat:
-        #  description: |
-        #    Disk format of a software image is the format of the underlying
-        #    disk image.
-        #  $ref: '#/components/schemas/DiskFormatType'
-        # ...
-    VnfPackageArtifactInfo:
-      type: object
-      additionalProperties: true
-    VnfPkgInfoModifications:
+        NetSlice Template Information
+        Only generic fields (id, name) are described
+        For a full specification of the NetSlice Template see:
+        http://osm-download.etsi.org/ftp/osm-doc/nst.html
       type: object
       properties:
-        operationalState:
-          $ref: '#/components/schemas/VnfPackageOperationalStateType'
-        userDefinedData:
-          $ref: '#/components/schemas/KeyValuePairs'
-    VnfPkgInfo:
+        id:
+          description: NST Identifier
+          type: string
+        name:
+          description: NST Name
+          type: string
+    NetSliceInstance:
+      description: |
+        NetSlice Instance Information
+        Only generic fields (_id, id, name, description) are described
+        For a full specification of the NetSlice Instance see:
+        http://osm-download.etsi.org/ftp/osm-doc/nsi.html
       type: object
       properties:
+        _id:
+          description: Identifier of the NetSlice instance.
+          type: string
+          format: uuid
         id:
-          description: |
-           Identifier of the VNF package. This identifier is allocated by the NFVO.
+          description: Identifier of the NetSlice instance.
           type: string
           format: uuid
-        vnfdId:
+        name:
+          description: Human readable name of the NetSlice instance.
+          type: string
+        description:
+          description: Human readable description of the NetSlice instance.
+          type: string
+      required:
+        - _id
+        - id
+        - name
+    ArrayOfNetSliceInstance:
+      type: array
+      items:
+        $ref: '#/components/schemas/NetSliceInstance'
+    CreateNsiRequest:
+      type: object
+      properties:
+        nstId:
           description: |
-            This identifier, which is managed by the VNF provider, identifies
-            the VNF package and the VNFD in a globally unique way. It's
-            copied from the VNFD of the on-boarded VNF package. It shall be
-            present after the VNF package content has been on-boarded and
-            absent otherwise.
+            Identifier of the NST that defines the NetSlice instance to be created.
           type: string
           format: uuid
-        vnfProvider:
+        nsiName:
           description: |
-            Deovider of the VNF pacakge and the VNFD. This information is
-            copied from the VNFD. It shall be present after the VNF package
-            content has been on-boarded and absent otherwise.
+            Human-readable name of the NetSlice instance to be created.
           type: string
-        vnfProductName:
+        nsiDescription:
           description: |
-            Name to identify the VNF product. Invariant for the VNF product
-            ligetime. This information is copied from the VNFD. It shall be
-            present after the VNF package content has been on-boarded and
-            absent otherwise.
+            Human-readable description of the NetSlice instance to be created.
           type: string
-        vnfSoftwareVersion:
+        vimAccountId:
           description: |
-            Software version of the VNF. This is changed when there is any
-            change to the software included in the VNF package. This
-            information is copied from the VNFD. It shall be present after the
-            VNF package content has been on-boarded and absent otherwise.
+            Identifier of the VIM Account where the NetSlice instance shall be created.
           type: string
-        vnfdVersion:
+          format: uuid
+      required:
+        - nstId
+        - nsiName
+        - vimAccountId
+    InstantiateNsiRequest:
+      type: object
+      properties:
+        nsiName:
           description: |
-            The version of the VNFD. TSof information is copied from the VNFD.
-            It shall be present after the VNF package content has been
-            on-boarded and absent otherwise.
+            Human-readable name of the NetSlice instance to be created.
           type: string
-        checksum:
+        nstId:
           description: |
-            Checksum of the on-boarded VNF package. It shall be present after
-            the VNF package content has been on-boarded and absent otherwise.
+            Identifier of the NST that defines the NetSlice instance to be created.
           type: string
-        softwareImages:
-          description: |
-            Information about VNF package artifacts that are software images.
-            This attribute shall not be present before the VNF package content
-            is on-boarded. Otherwise, this attribute shall be present unless
-            it has been requested to be excluded per attribute selector.
-          type: array
-          items:
-            $ref: '#/components/schemas/VnfPackageSoftwareImageInfo'
-        additionalArtifacts:
-          description: |
-            Information about VNF package artifacts contained in the VNF
-            package that are not software images. This attribute shall not be
-            present before the VNF package content is on-boarded. Otherwise,
-            this attribute shall be present if the VNF package contains
-            additional artifacts.
-          type: array
-          items:
-            $ref: '#/components/schemas/VnfPackageArtifactInfo'
-        onboardingState:
-          description: |
-            On-boarding state of the VNF package.
-          $ref: '#components/schemas/VnfPackageOnboardingStateType'
-        operationalState:
-          description: |
-            Operational  state of the VNF package. If the value of the
-            onboardingState attribute is not equal to "ONBOARDED", the value
-            of the operationalState attribute shall be equal to "DISABLED".
-          $ref: '#components/schemas/VnfPackageOperationalStateType'
-        usageState:
-          description: |
-            Usage state of the VNF package. If the value of the
-            onboardingState attribute is not equal to "ONBOARDED", the value
-            of the usageState attribute shall be equal to "NOT_IN_USE".
-          $ref: '#components/schemas/VnfPackageUsageStateType'
-        userDefinedData:
-          description: |
-            User defined data for the VNF package
-          $ref: '#/components/schemas/KeyValuePairs'
-        _links:
+          format: uuid
+        vimAccountId:
           description: |
-            Links to resources related to this resource
+            Identifier of the VIM Account where the NetSlice instance shall be created.
           type: string
-        self:
+          format: uuid
+      required:
+        - nsiName
+        - nstId
+        - vimAccountId
+    TerminateNsiRequest:
+      type: object
+      properties:
+        terminationTime:
           description: |
-            URI of this resource
+            Timestamp indicating the end time of the NSI, i.e. the NSI will be terminated
+            automatically at this timestamp. Cardinality "0" indicates the NSI termination
+            takes place immediately.
           type: string
-          format: uri
-        vnfd:
-          description: |
-            Link to the VNFD resource. This link shall be present after the VNF
-            package content is on-boarded. 
+          format: date-time
+    NsiActionRequest:
+      type: object
+      properties:
+        primitive:
           type: string
-          format: uri
-        package_content:
-          description: |
-            Link to the "VNF package content" resource.
+        primitive_params:
+          $ref: '#/components/schemas/KeyValuePairs'
+        lcmOperationType:
           type: string
-          format: uri
+        netsliceInstanceId:
+          type: string
+          format: uuid
       required:
-        - id
-        - onboardingState
-        - operationalState
-        - usageState
-        - _links
-        - self
-        - package_content
-    ArrayOfVnfPkgInfo:
-      type: array
-      items:
-        $ref: '#/components/schemas/VnfPkgInfo'
-    UploadVnfPackageFromUriRequest:
+        - primitive
+        - primitive_params
+    CreateNsiContentRequest:
       type: object
       properties:
-        addressInformation:
+        nstId:
           description: |
-            Address information of the VNF package content. The NFVO can use
-            this address to obtain the VNF package.
+            Identifier of the NST that defines the NetSlice instance to be created.
           type: string
-          format: uri
-        userName:
+          format: uuid
+        nsiName:
           description: |
-            User name to be used for authentication. Shall be present if user
-            name is needed but has not been provisioned out of band.
+            Human-readable name of the NetSlice instance to be created.
           type: string
-        password:
+        vimAccountId:
           description: |
-            Password to be used for authentication. Shall be present if password
-            is needed but has not been provisioned out of band.
+            Identifier of the VIM Account where the NetSlice instance shall be created.
           type: string
+          format: uuid
       required:
-        - addressInformation
+        - nsdId
+        - nsName
+        - vimAccountId
+    CreateNsiContentResponse:
+      type: object
+      properties:
+        id:
+          type: string
+          format: uuid
+        nsilcmop_id:
+          type: string
+          format: uuid
+    NsiLcmOpOcc:
+      type: object
+      properties:
+        _id:
+          type: string
+          format: uuid
+        id:
+          type: string
+          format: uuid
+        lcmOperationType:
+          type: string
+        netsliceInstanceId:
+          type: string
+          format: uuid
+        isAutomaticInvocation:
+          type: boolean
+        isCancelPending:
+          type: boolean
+        startTime:
+          type: number
+          format: float
+        statusEnteredTime:
+          type: number
+          format: float
+        operationParams:
+          type: object
+          properties:
+            nsiName:
+              type: string
+            nstId:
+              type: string
+              format: uuid
+            vimAccountId:
+              type: string
+              format: uuid
+            netsliceInstanceId:
+              type: string
+              format: uuid
+            lcmOperationType:
+              type: string
+            nslcmops_ids:
+              type: array
+              items:
+                type: string
+                format: uuid
+        operationState:
+          type: string
+        detailed-status:
+          type: string
+        links:
+          type: object
+          properties:
+            self:
+              type: string
+              format: path   # uri?
+            netsliceInstanceId:
+              type: string
+              format: path   # uri?
+    ArrayOfNsiLcmOpOcc:
+      type: array
+      items:
+        $ref: '#/components/schemas/NsiLcmOpOcc'
+  # END SCHEMAS
+
   requestBodies:
     CreateNsdInfoRequest:
       content:
@@ -1260,11 +4091,13 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/NsdInfoModifications'
-    NsdContent:
+    NsDescriptor:
       content:
         text/plain:
           schema:
             $ref: '#/components/schemas/NsDescriptor'
+    NsPackage:
+      content:
         application/zip:
           schema:
             $ref: '#/components/schemas/NsPackage'
@@ -1289,16 +4122,120 @@ components:
         application/zip:
           schema:
             $ref: '#/components/schemas/VnfPackage'
-    UploadVnfPackageFromUriRequest:
+    VnfDescriptor:
+      content:
+        text/plain:
+          schema:
+            $ref: '#/components/schemas/VnfDescriptor'
+    CreateNsRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateNsRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateNsRequest'
+    InstantiateNsRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/InstantiateNsRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/InstantiateNsRequest'
+    ScaleNsRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/ScaleNsRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/ScaleNsRequest'
+    TerminateNsRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/TerminateNsRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/TerminateNsRequest'
+    CreateNSinstanceContentRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateNSinstanceContentRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateNSinstanceContentRequest'
+    CreateNstInfoRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateNstInfoRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateNstInfoRequest'
+    NetSliceTemplate:
+      content:
+        text/plain:
+          schema:
+            $ref: '#/components/schemas/NetSliceTemplate'
+    NetSlicePackage:
+      content:
+        application/zip:
+          schema:
+            $ref: '#/components/schemas/NetSlicePackage'
+    NstInfoModifications:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/NstInfoModifications'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/NstInfoModifications'
+    CreateNsiRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateNsiRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateNsiRequest'
+    InstantiateNsiRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/InstantiateNsiRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/InstantiateNsiRequest'
+    TerminateNsiRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/TerminateNsiRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/TerminateNsiRequest'
+    NsiActionRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/NsiActionRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/NsiActionRequest'
+    CreateNsiContentRequest:
       content:
         application/json:
           schema:
-            $ref: '#/components/schemas/UploadVnfPackageFromUriRequest'
+            $ref: '#/components/schemas/CreateNsiContentRequest'
         application/yaml:
           schema:
-            $ref: '#/components/schemas/UploadVnfPackageFromUriRequest'
+            $ref: '#/components/schemas/CreateNsiContentRequest'
+  # END REQUEST BODIES
+
   securitySchemes:
     bearerAuth:
       type: http
       scheme: bearer
-