Update NBI OpenAPI description 22/8022/5
authordelacruzram <e.nvi002.tid@telefonica.com>
Mon, 7 Oct 2019 14:46:59 +0000 (16:46 +0200)
committergarciadeblas <gerardo.garciadeblas@telefonica.com>
Tue, 15 Oct 2019 14:44:18 +0000 (16:44 +0200)
Change-Id: Ib741a2222ae8244927b9dfc96356dc0a9122acdd
Signed-off-by: delacruzram <e.nvi002.tid@telefonica.com>
osm-openapi.yaml

index 2daaada..24120ea 100644 (file)
@@ -1,7 +1,9 @@
 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.
@@ -15,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
@@ -22,7 +25,23 @@ 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:
+
+# BEGIN NS Packages
   '/nsd/v1/ns_descriptors':
     get:
       tags:
@@ -30,8 +49,6 @@ paths:
       summary: Query information about multiple NS descriptor resources
       description: Query information about multiple NS descriptor resources
       operationId: getNSDs
-      security:
-        - bearerAuth: []
       responses:
         '200':
           description: OK
@@ -72,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:
@@ -87,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':
@@ -116,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
@@ -164,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
@@ -196,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':
@@ -238,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':
@@ -287,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
@@ -320,74 +338,45 @@ 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:
-              schema:
-                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
-            application/yaml:
+            application/octet-stream:
               schema:
-                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
-        '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:
-        - "VNF packages"
-      summary: Create a new VNF package resource
-      description: Create a new VNF package resource
-      operationId: addVnfPkg
-      security:
-        - bearerAuth: []
-      requestBody:
-        $ref: '#/components/requestBodies/CreateVnfPkgInfoRequest'
-      responses:
-        '201':
-          description: Created
+                type: string
+                format: binary
+        '206':
+          description: Partial Content
           headers:
-            Location:
+            Content-Range:
               schema:
                 type: string
-                format: uri
           content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/VnfPkgInfo'
-            application/yaml:
+            application/octet-stream:
               schema:
-                $ref: '#/components/schemas/VnfPkgInfo'
+                type: string
+                format: binary
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -412,25 +401,27 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}':
+  '/nsd/v1/ns_descriptors/{nsdInfoId}/nsd':
+    parameters:
+      - name: nsdInfoId
+        in: path
+        required: true
+        description: NS Package 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: getVnfPkg
-      security:
-        - bearerAuth: []
+        - "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:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/VnfPkgInfo'
-            application/yaml:
+            text/plain:
               schema:
-                $ref: '#/components/schemas/VnfPkgInfo'
+                $ref: '#/components/schemas/NsDescriptor'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -455,15 +446,35 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+  '/nsd/v1/ns_descriptors_content':
+    post:
       tags:
-        - "VNF packages"
-      summary: Delete an individual VNF package resource
-      description: Delete an individual VNF package resource
-      operationId: deleteVnfPkg
-      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:
+        content:
+          application/zip:
+            schema:
+              $ref: '#/components/schemas/NsPackage'
       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':
@@ -490,26 +501,33 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    patch:
+    get:
       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: []
-      requestBody:
-        $ref: '#/components/requestBodies/VnfPkgInfoModifications'
+        - "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/VnfPkgInfoModifications'
+                $ref: '#/components/schemas/ArrayOfNsdInfo'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/VnfPkgInfoModifications'
+                $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':
@@ -534,22 +552,30 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/vnfd':
+  '/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: Read VNFD of an on-boarded VNF package
-      description: Read VNFD of an on-boarded VNF package
-      operationId: getVnfPkgVNFD
-      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:
         '200':
           description: OK
           content:
-            text/plain:
+            application/json:
               schema:
-                $ref: '#/components/schemas/VnfDescriptor'
+                $ref: '#/components/schemas/NsdInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsdInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -574,32 +600,17 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content':
-    get:
+    put:
       tags:
-        - "VNF packages"
-      summary: Fetch an on-boarded VNF package
-      description: Fetch an on-boarded VNF package
-      operationId: getVnfPkgContent
-      security:
-        - bearerAuth: []
+        - "NS packages"
+      summary: Modify an individual NS package resource
+      description: Modify an individual NS package resource
+      operationId: updateNsPkgsIdContent
+      requestBody:
+        $ref: '#/components/requestBodies/NsdInfoModifications'
       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'
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -624,21 +635,15 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    put:
+    delete:
       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: []
-      requestBody:
-        $ref: '#/components/requestBodies/VnfPackage'
+        - "NS packages"
+      summary: Delete an individual NS package resource
+      description: Delete an individual NS package resource
+      operationId: deleteNSPkgsIdContent
       responses:
-        '202':
-          description: Accepted
-        #'204':
-        #  description: No Content
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -663,22 +668,26 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content/upload_from_uri':
-    post:
+# END NS Packages
+
+# BEGIN VNF Packages
+  '/vnfpkgm/v1/vnf_packages':
+    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: Query information about multiple VNF package resources
+      description: Query information about multiple VNF package resources
+      operationId: getVnfPkgs
       responses:
-        '202':
-          description: Accepted
-        #'204':
-        #  description: No Content
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -703,34 +712,29 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}':
-    get:
+    post:
       tags:
         - "VNF packages"
-      summary: Fetch individual VNF package artifact
-      description: Fetch individual VNF package artifact
-      operationId: getVnfPkgArtifact
-      security:
-        - bearerAuth: []
+      summary: Create a new VNF package resource
+      description: Create a new VNF package resource
+      operationId: addVnfPkg
+      requestBody:
+        $ref: '#/components/requestBodies/CreateVnfPkgInfoRequest'
       responses:
-        '200':
-          description: OK
-          content:
-            application/octet-stream:
-              schema:
-                type: string
-                format: binary
-        '206':
-          description: Partial Content
+        '201':
+          description: Created
           headers:
-            Content-Range:
+            Location:
               schema:
                 type: string
+                format: uri
           content:
-            application/octet-stream:
+            application/json:
               schema:
-                type: string
-                format: binary
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -755,25 +759,30 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nslcm/v1/ns_instances':
+  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}':
+    parameters:
+      - name: vnfPkgId
+        in: path
+        required: true
+        description: VNF Package ID
+        schema:
+          type : string
     get:
       tags:
-        - "NS instances"
-      summary: Query information about multiple NS instances
-      description: Query information about multiple NS isntances
-      operationId: getNSinstances
-      security:
-        - bearerAuth: []
+        - "VNF packages"
+      summary: Read information about an individual VNF package resource
+      description: Read information about an individual VNF package resource
+      operationId: getVnfPkg
       responses:
         '200':
           description: OK
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ArrayOfNsInstance'
+                $ref: '#/components/schemas/VnfPkgInfo'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/ArrayOfNsInstance'
+                $ref: '#/components/schemas/VnfPkgInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -798,31 +807,15 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    post:
+    delete:
       tags:
-        - "NS instances"
-      summary: Create a new NS instance resource
-      description: Create a new NS instance resource
-      operationId: addNSinstance
-      security:
-        - bearerAuth: []
-      requestBody:
-        $ref: '#/components/requestBodies/CreateNsRequest'
+        - "VNF packages"
+      summary: Delete an individual VNF package resource
+      description: Delete an individual VNF package resource
+      operationId: deleteVnfPkg
       responses:
-        '201':
-          description: Created
-          headers:
-            Location:
-              schema:
-                type: string
-                format: uri
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/NsInstance'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/NsInstance'
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -847,25 +840,17 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nslcm/v1/ns_instances/{nsInstanceId}':
-    get:
+    patch:
       tags:
-        - "NS instances"
-      summary: Read an individual NS instance resource
-      description: Read an individual NS instance resource
-      operationId: getNSinstance
-      security:
-        - bearerAuth: []
+        - "VNF packages"
+      summary: Modify an individual VNF package resource
+      description: Modify an individual VNF package resource
+      operationId: updateVnfPkg
+      requestBody:
+        $ref: '#/components/requestBodies/VnfPkgInfoModifications'
       responses:
-        '200':
-          description: OK
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/NsInstance'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/NsInstance'
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -890,17 +875,27 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/vnfd':
+    parameters:
+      - name: vnfPkgId
+        in: path
+        required: true
+        description: VNF Package ID
+        schema:
+          type : string
+    get:
       tags:
-        - "NS instances"
-      summary: Delete an individual NS instance resource
-      description: Delete an individual NS instance resource
-      operationId: deleteNSinstance
-      security:
-        - bearerAuth: []
+        - "VNF packages"
+      summary: Read VNFD of an on-boarded VNF package
+      description: Read VNFD of an on-boarded VNF package
+      operationId: getVnfPkgVnfd
       responses:
-        '204':
-          description: No Content
+        '200':
+          description: OK
+          content:
+            text/plain:
+              schema:
+                $ref: '#/components/schemas/VnfDescriptor'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -925,33 +920,37 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nslcm/v1/ns_instances/{nsInstanceId}/instantiate':
-    post:
+  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content':
+    parameters:
+      - name: vnfPkgId
+        in: path
+        required: true
+        description: VNF Package ID
+        schema:
+          type : string
+    get:
       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
-      security:
-        - bearerAuth: []
-      requestBody:
-        $ref: '#/components/requestBodies/InstantiateNsRequest'
+        - "VNF packages"
+      summary: Fetch an on-boarded VNF package
+      description: Fetch an on-boarded VNF package
+      operationId: getVnfPkgContent
       responses:
-        '202':
-          description: Accepted
+        '200':
+          description: OK
+          content:
+            application/zip:
+              schema:
+                $ref: '#/components/schemas/VnfPackage'
+        '206':
+          description: Partial Content
           headers:
-            Location:
-              description: |
-                It must point to the new "NS Lifecycle Operation Occurrence"
-                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+            Content-Range:
               schema:
                 type: string
-                format: uri
+          content:
+            application/zip:
+              schema:
+                $ref: '#/components/schemas/VnfPackage'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -976,33 +975,22 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nslcm/v1/ns_instances/{nsInstanceId}/scale':
-    post:
+    put:
       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
-      security:
-        - bearerAuth: []
+        - "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:
-        $ref: '#/components/requestBodies/ScaleNsRequest'
+        content:
+          application/zip:
+            schema:
+              $ref: '#/components/schemas/VnfPackage'
       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
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -1027,33 +1015,45 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nslcm/v1/ns_instances/{nsInstanceId}/update':
-    post:
+  '/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:
-        - "NS instances"
-      summary: Update a NS instance
-      description: |
-        Update 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: updateNSinstance
-      security:
-        - bearerAuth: []
-      requestBody:
-        $ref: '#/components/requestBodies/UpdateNsRequest'
+        - "VNF packages"
+      summary: Fetch individual VNF package artifact
+      description: Fetch individual VNF package artifact
+      operationId: getVnfPkgArtifact
       responses:
-        '202':
-          description: Accepted
+        '200':
+          description: OK
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '206':
+          description: Partial Content
           headers:
-            Location:
-              description: |
-                It must point to the new "NS Lifecycle Operation Occurrence"
-                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+            Content-Range:
               schema:
                 type: string
-                format: uri
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -1078,33 +1078,37 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nslcm/v1/ns_instances/{nsInstanceId}/heal':
+  '/vnfpkgm/v1/vnf_packages_content':
     post:
       tags:
-        - "NS instances"
-      summary: Heal a NS instance
-      description: |
-        Heal 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: healNSinstance
-      security:
-        - bearerAuth: []
+        - "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:
-        $ref: '#/components/requestBodies/HealNsRequest'
+        content:
+          application/zip:
+            schema:
+              $ref: '#/components/schemas/VnfPackage'
       responses:
-        '202':
-          description: Accepted
+        '201':
+          description: Created
           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'
+        '202':
+          description: Accepted
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -1129,33 +1133,33 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nslcm/v1/ns_instances/{nsInstanceId}/terminate':
-    post:
+    get:
       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
-      security:
-        - bearerAuth: []
-      requestBody:
-        $ref: '#/components/requestBodies/TerminateNsRequest'
+        - "VNF packages"
+      summary: Query information about multiple VNF package resources
+      description: Query information about multiple VNF package resources
+      operationId: getVnfPkgsContent
       responses:
-        '202':
-          description: Accepted
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
+        '206':
+          description: Partial Content
           headers:
-            Location:
-              description: |
-                It must point to the new "NS Lifecycle Operation Occurrence"
-                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+            Content-Range:
               schema:
                 type: string
-                format: uri
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -1180,30 +1184,2180 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-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:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/ProblemDetails'
-    Unauthorized:
-      description: Authorization information is missing or invalid.
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/ProblemDetails'
-    Forbidden:
-      description: Not enough permissions to do this operation.
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/ProblemDetails'
-    NotFound:
+  '/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:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/ProblemDetails'
+    Unauthorized:
+      description: Authorization information is missing or invalid.
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/ProblemDetails'
+    Forbidden:
+      description: Not enough permissions to do this operation.
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/ProblemDetails'
+    NotFound:
       description: The specified resource was not found.
       content:
         application/json:
@@ -1251,168 +3405,121 @@ 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
-      properties:
-        userDefinedData:
-          $ref: '#/components/schemas/KeyValuePairs'
-    NsdOnboardingStateType:
-      type: string
-      enum: [CREATED, UPLAODING, PROCESSING, ONBOARDED]
-      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:
-      type: string
-      enum: [ENABLED, DISABLED]
-      description: |
-        NSD operational state:
-         * `ENABLED` - The NSD is enabled.
-         * `DISABLED` - The NSD is disabled.
-    NsdUsageStateType:
-      type: string
-      enum: [IN_USE, NOT_IN_USE]
-      description: |
-        NSD usage state:
-         * `IN_USE` - The NSD is in use.
-         * `NOT_IN_USE` - The NSD is not in use.
+      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:
-        nsdOperationalState:
-          $ref: '#/components/schemas/NsdOperationalStateType'
-        userDefinedData:
-          $ref: '#/components/schemas/KeyValuePairs'
+        id:
+          description: NSD Identifier
+          type: string
+        name:
+          description: NSD Name
+          type: string
+        description:
+          description: NSD Description
+          type: string
+        nsd:
+          $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsd.html'
     NsdInfo:
+      description: |
+        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:
+        _id:
           description: |
             Identifier of the onboarded individual NS descriptor
             resource. This identifier is allocated by the NFVO.
           type: string
           format: uuid
-        nsdId:
+        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
-          format: uuid
-        nsdName:
+        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
-        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.
-          type: string
-        nsdDesigner:
-          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.
           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. 
-          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:
-          $ref: '#/components/schemas/KeyValuePairs'
-        _links:
-          description: |
-            Links to resources related to this resource
-          type: string
-        self:
-          description: |
-            URI of this resource
-          type: string
-          format: uri
-        nsd_content:
+        description:
           description: |
-            Link to the NSD content resource.
+            Description of the onboarded NSD.
+            This information is copied from the NSD content.
           type: string
-          format: uri
+        nsd:
+          $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsd.html'
       required:
+        - _id
         - id
-        - nsdOnboardingState
-        - nsdOperationalState
-        - nsdUsageState
-        - _links
-        - self
-        - nsd_content
     ArrayOfNsdInfo:
       type: array
       items:
@@ -1438,236 +3545,200 @@ components:
         - detail
     VnfDescriptor:
       type: string
+      format: yaml|json
     VnfPackage:
       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]
-      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:
+      # A free list of key:value pairs
       type: object
       additionalProperties: true
     VnfPkgInfoModifications:
+      description: |
+        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:
-        operationalState:
-          $ref: '#/components/schemas/VnfPackageOperationalStateType'
-        userDefinedData:
-          $ref: '#/components/schemas/KeyValuePairs'
+        id:
+          description: VNF Package Identifier
+          type: string
+        name:
+          description: VNF Package Name
+          type: string
+        description:
+          description: VNF Package description
+          type: string
+        vnfd:
+          $ref: 'http://osm-download.etsi.org/ftp/osm-doc/vnfd.html'
     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:
+        _id:
           description: |
             Identifier of the VNF package. This identifier is allocated by the NFVO.
           type: string
           format: uuid
-        vnfdId:
+        id:
+          description: VNF Package Identifier
+          type: string
+        name:
+          description: VNF Package Name
+          type: string
+        description:
+          description: VNF Package description
+          type: string
+        vnfd:
+          $ref: 'http://osm-download.etsi.org/ftp/osm-doc/vnfd.html'
+      required:
+        - _id
+        - id
+    ArrayOfVnfPkgInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/VnfPkgInfo'
+    CreateNsRequest:
+      type: object
+      properties:
+        nsdId:
           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 NSD that defines the NS instance to be created.
           type: string
           format: uuid
-        vnfProvider:
+        nsName:
           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 NS instance to be created.
           type: string
-        vnfProductName:
+        nsDescription:
           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 NS 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 NS instance shall be created.
           type: string
-        vnfdVersion:
-          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.
+          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
-        checksum:
-          description: |
-            Checksum of the on-boarded VNF package. It shall be present after
-            the VNF package content has been on-boarded and absent otherwise.
+          format: uuid
+        id:
+          description: Identifier of the NS instance.
           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
+        name:
+          description: Human readable name of the NS instance.
+          type: string
+        description:
+          description: Human readable description of the NS instance.
+          type: string
+        nsr:
+          $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsr.html'
+      required:
+        - _id
+        - id
+        - name
+    InstantiateNsRequest:
+      type: object
+      properties:
+        nsName:
           description: |
-            Links to resources related to this resource
+            Human-readable name of the NS instance to be created.
           type: string
-        self:
+        nsdId:
           description: |
-            URI of this resource
+            Identifier of the NSD that defines the NS instance to be created.
           type: string
-          format: uri
-        vnfd:
+          format: uuid
+        vimAccountId:
           description: |
-            Link to the VNFD resource. This link shall be present after the VNF
-            package content is on-boarded. 
+            Identifier of the VIM Account where the NS instance shall be created.
           type: string
-          format: uri
-        package_content:
+          format: uuid
+      required:
+        - nsName
+        - nsdId
+        - vimAccountId
+    ScaleNsRequest:
+      type: object
+      properties:
+        scaleType:
+          type: string
+          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: |
-            Link to the "VNF package content" resource.
+            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
-          format: uri
-      required:
-        - id
-        - onboardingState
-        - operationalState
-        - usageState
-        - _links
-        - self
-        - package_content
-    ArrayOfVnfPkgInfo:
+          format: date-time
+    ArrayOfNsInstance:
       type: array
       items:
-        $ref: '#/components/schemas/VnfPkgInfo'
-    UploadVnfPackageFromUriRequest:
+        $ref: '#/components/schemas/NsInstance'
+    NSinstanceActionRequest:
       type: object
       properties:
-        addressInformation:
-          description: |
-            Address information of the VNF package content. The NFVO can use
-            this address to obtain the VNF package.
+        primitive:
           type: string
-          format: uri
-        userName:
-          description: |
-            User name to be used for authentication. Shall be present if user
-            name is needed but has not been provisioned out of band.
+        primitive_params:
+          $ref: '#/components/schemas/KeyValuePairs'
+        lcmOperationType:
           type: string
-        password:
-          description: |
-            Password to be used for authentication. Shall be present if password
-            is needed but has not been provisioned out of band.
+        nsInstanceId:
+          type: string
+          format: uuid
+        member_vnf_index:
+          type: string
+        vdu_id:
           type: string
+        vdu_count_index:
+          type: integer
       required:
-        - addressInformation
-    CreateNsRequest:
+        - primitive
+        - primitive_params
+      additionalProperties: false
+    CreateNSinstanceContentRequest:
       type: object
       properties:
         nsdId:
@@ -1679,359 +3750,348 @@ components:
           description: |
             Human-readable name of the NS instance to be created.
           type: string
-        nsDescription:
+        vimAccountId:
           description: |
-            Human-readable description of the NS instance to be created.
+            Identifier of the VIM Account where the NS instance shall be created.
           type: string
+          format: uuid
       required:
         - nsdId
         - nsName
-        - nsDescription
-    NsStateType:
-      type: string
-      enum: [NOT_INSTANTIATED, INSTANTIATED]
-      description: |
-        State of the NS instance. Permitted values:
-         * `NOT_INSTANTIATED`: The NS instance is terminated or not instantiated.
-         * `INSTANTIATED`: The NS instance is instantiated.
-    NsInstance:
+        - vimAccountId
+    CreateNSinstanceContentResponse:
       type: object
       properties:
         id:
-          description: Identifier of the NS instance.
           type: string
           format: uuid
-        nsInstanceName:
-          description: Human readable name of the NS instance.
+        nslcmop_id:
           type: string
-        nsInstanceDescription:
-          description: Human readable description of the NS instance.
+          format: uuid
+    NsLcmOpOcc:
+      type: object
+      properties:
+        _id:
           type: string
-        nsdId:
-          description: Identifier of the NSD on which the NS instance is based.
+          format: uuid
+        id:
           type: string
           format: uuid
-        flavourId:
-          description: |
-            Identifier of the NS deployment flavour applied to the NS instance.
-            This attribute shall be present if the nsState attribute value is
-            INSTANTIATED.
+        lcmOperationType:
           type: string
-        vnfInstance:
-          description: |
-            Information on constituent VNF(s) of the NS instance. If the
-            "nsState" attribute is INSTANTIATED, at least either one
-            "vnfInstance" attribute or one "nestedNsInstanceId" attribute shall
-            be present.
-          type: array
-          items:
-            $ref: '#/components/schemas/VnfInstance'
-        pnfInfo:
-          description: |
-            Information on the PNF(s) that are part of the NS instance.
-          type: array
-          items:
-            $ref: '#/components/schemas/PnfInfo'
-        virtualLinkInfo:
-          description: |
-            Information on the VL(s) of the NS instance. This attribute shall
-            be present if the nsState attribute value is INSTANTIATED and if
-            the NS instance has specified connectivity.
-          type: array
-          items:
-            $ref: '#/components/schemas/NsVirtualLinkInfo'
-        vnffgInfo:
-          description: |
-            Information on the VNFFG(s) of the NS instance.
-          type: array
-          items:
-            $ref: '#/components/schemas/VnffgInfo'
-        sapInfo:
-          description: |
-            Information on the SAP(s) of the NS instance.
-          type: array
-          items:
-            $ref: '#/components/schemas/SapInfo'
-        nestedNsInstanceId:
-          description: |
-            Identifier of the nested NS(s) of the NS instance. If the "nsState"
-            attribute is INSTANTIATED, at least either one "vnfInstance"
-            attribute or one "nestedNsInstanceId" attribute shall be present.
-          type: array
-          items:
-            type: string
-            format: uuid
-        nsState:
-          description: |
-            The state of the NS instance.
-          $ref: '#components/schemas/NsStateType'
-        nsScaleStatus:
-          description: |
-            Status of each NS scaling aspect declared in the applicable DF,
-            how "big" the NS instance has been scaled w.r.t. that aspect. This
-            attribute shall be present if the nsState attribute value is
-            INSTANTIATED.
-          type: array
-          items:
-            $ref: '#/components/schemas/NsScaleInfo'
-        additionalAffinityOrAntiAffinityRule:
-          description: |
-            Information on the additional affinity or anti-affinity rule from
-            NS instantiation operation. Shall not conflict with rules already
-            specified in the NSD.
-          type: array
-          items:
-            $ref: '#/components/schemas/AffinityOrAntiAffinityRule'
-        _links:
-          description: |
-            Links to resources related to this resource
+        nsInstanceId:
           type: string
-        self:
-          description: |
-            URI of this resource
+          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
-          format: uri
-        nestedNsInstances:
-          description: |
-            Links to the nested NS instances of the present NS instance.
-          type: array
-          items:
-            type: string
-            format: uri
-        instantiate:
-          description: |
-            Link to the "instantiate" task resource, if the related operation
-            is possible based on the current status of this NS instance
-            resource (i.e. NS instance in NOT_INSTANTIATED state).
+        detailed-status:
           type: string
-          format: uri
-        terminate:
-          description: |
-            Link to the "terminate" task resource, if the related operation is
-            possible based on the current status of this NS instance resource
-            (i.e. NS instance is in INSTANTIATED state).
+        links:
+          type: object
+          properties:
+            self:
+              type: string
+              format: path   # uri?
+            nsInstance:
+              type: string
+              format: path   # uri?
+    ArrayOfNsLcmOpOcc:
+      type: array
+      items:
+        $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:
+        _id:
           type: string
-          format: uri
-        update:
-          description: |
-            Link to the "update" task resource, if the related operation is
-            possible based on the current status of this NS instance resource
-            (i.e. NS instance is in INSTANTIATED state).
+          format: uuid
+        id:
           type: string
-          format: uri
-        scale:
-          description: |
-            Link to the "scale" task resource, if the related operation is
-            supported for this NS instance, and is possible based on the
-            current status of this NS instance resource (i.e. NS instance is in
-            INSTANTIATED state).
+          format: uuid
+        vnfr:
+          $ref: 'http://osm-download.etsi.org/ftp/osm-doc/vnfr.html'
+    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
-          format: uri
-        heal:
-          description: |
-            Link to the "heal" task resource, if the related operation is
-            supported for this NS instance, and is possible based on the
-            current status of this NS instance resource (i.e. NS instance is in
-            INSTANTIATED state).
+          format: uuid
+        id:
+          description: Human readable NetSlice Template Identifier
           type: string
-          format: uri
-      required:
-        - id
-        - nsInstanceName
-        - nsInstanceDescription
-        - nsdId
-        - nsdInfoId
-        - nsState
-        - _links
-        - self
-    VnfInstance:
-      type: object
-      additionalProperties: true
-    PnfInfo:
-      type: object
-      additionalProperties: true
-    NsVirtualLinkInfo:
-      type: object
-      additionalProperties: true
-    VnffgInfo:
-      type: object
-      additionalProperties: true
-    SapInfo:
-      type: object
-      additionalProperties: true
-    NsScaleInfo:
-      type: object
-      additionalProperties: true
-    AffinityOrAntiAffinityRule:
-      type: object
-      additionalProperties: true
-    SapData:
-      type: object
-      additionalProperties: true
-    AddPnfData:
-      type: object
-      additionalProperties: true
-    VnfInstanceData:
+        name:
+          description: Human readable name of the NetSlice Template
+          type: string
+        nst:
+          $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nst.html'
+    ArrayOfNstInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/NstInfo'
+    CreateNstInfoRequest:
+      # A free list of key:value pairs
       type: object
       additionalProperties: true
-    VnfLocationConstraint:
+    NetSliceTemplate:
+      type: string
+      format: yaml|json
+    NetSlicePackage:
+      type: string
+      format: binary
+    NstInfoModifications:
+      description: |
+        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
-      additionalProperties: true
-    ParamsForVnf:
+      properties:
+        id:
+          description: NST Identifier
+          type: string
+        name:
+          description: NST Name
+          type: string
+        nsd:
+          $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nst.html'
+    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
-      additionalProperties: true
-    InstantiateNsRequest:
+      properties:
+        _id:
+          description: Identifier of the NetSlice instance.
+          type: string
+          format: uuid
+        id:
+          description: Identifier of the NetSlice instance.
+          type: string
+          format: uuid
+        name:
+          description: Human readable name of the NetSlice instance.
+          type: string
+        description:
+          description: Human readable description of the NetSlice instance.
+          type: string
+        nsi:
+          $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsi.html'
+      required:
+        - _id
+        - id
+        - name
+    ArrayOfNetSliceInstance:
+      type: array
+      items:
+        $ref: '#/components/schemas/NetSliceInstance'
+    CreateNsiRequest:
       type: object
       properties:
-        nsFlavourId:
-          description: Identifier of the NS deployment flavour to be instantiated.
-          type: string
-        sapData:
-          description: Create data concerning the SAPs of this NS.
-          type: array
-          items:
-            $ref: '#/components/schemas/SapData'
-        addpnfData:
-          description: Information on the PNF(s) that are part of this NS.
-          type: array
-          items:
-            $ref: '#/components/schemas/AddPnfData'
-        vnfInstanceData:
-          description: |
-            Specify an existing VNF instance to be used in the NS. If needed,
-            the VNF Profile to be used for this VNF instance is also provided.
-          type: array
-          items:
-            $ref: '#/components/schemas/VnfInstanceData'
-        nestedNsInstanceId:
-          description: |
-            Specify an existing NS instance to be used as a nested NS within the NS.
-          type: array
-          items:
-            type: string
-            format: uuid
-        localizationLanguage:
+        nstId:
           description: |
-            Defines the location constraints for the VNF to be instantiated as part of
-            the NS instantiation. An example can be a constraint for the VNF to be in a
-            specific geographic location.
-          type: array
-          items:
-            $ref: '#/components/schemas/VnfLocationConstraint'
-        additionalParamsForNs:
-          description: |
-            Allows the OSS/BSS to provide additional parameter(s) at the NS level
-            (as opposed to the VNF level, which is covered in additionalParamsForVnf).
-          $ref: '#/components/schemas/KeyValuePairs'
-        additionalParamsForVnf:
-          description: |
-            Allows the OSS/BSS to provide additional parameter(s) per VNF instance
-            (as opposed to the NS level, which is covered in additionalParamsForNs).
-            This is for VNFs that are to be created by the NFVO as part of the NS
-            instantiation and not for existing VNF that are referenced for reuse.
-          type: array
-          items:
-            $ref: '#/components/schemas/ParamsForVnf'
-        startTime:
+            Identifier of the NST that defines the NetSlice instance to be created.
+          type: string
+          format: uuid
+        nsiName:
           description: |
-            Timestamp indicating the earliest time to instantiate the NS.
-            Cardinality "0" indicates the NS instantiation takes place immediately.
+            Human-readable name of the NetSlice instance to be created.
           type: string
-          format: date-time
-        nsInstantiationLevelId:
+        nsiDescription:
           description: |
-            Identifies one of the NS instantiation levels declared in the DF applicable
-            to this NS instance. If not present, the default NS instantiation level as
-            declared in the NSD shall be used.
+            Human-readable description of the NetSlice instance to be created.
           type: string
-        additionalAffinityOrAntiAffiniityRule:
+        vimAccountId:
           description: |
-            Specifies additional affinity or anti-affinity constraint for the VNF instances
-            to be instantiated as part of the NS instantiation. Shall not conflict with rules
-            already specified in the NSD.
-          type: array
-          items:
-            $ref: '#/components/schemas/AffinityOrAntiAffinityRule'
+            Identifier of the VIM Account where the NetSlice instance shall be created.
+          type: string
+          format: uuid
       required:
-        - nsFlavourId
-    UpdateNsRequest:
+        - nstId
+        - nsiName
+        - vimAccountId
+    InstantiateNsiRequest:
       type: object
       properties:
-        updateType:
+        nsiName:
+          description: |
+            Human-readable name of the NetSlice instance to be created.
           type: string
-          enum: [ ADD_VNF, REMOVE_VNF, INSTANTIATE_VNF, CHANGE_VNF_DF,
-                  OPERATE_VNF, MODIFY_VNF_INFORMATION, CHANGE_EXTERNAL_VNF_CONNECTIVITY,
-                  REMOVE_SAP, ADD_NESTED_NS, REMOVE_NESTED_NS, ASSOC_NEW_NSD_VERSION,
-                  MOVE_VNF, ADD_VNFFG, REMOVE_VNFFG, UPDATE_VNFFG, CHANGE_NS_DF, ADD_PNF,
-                  MODIFY_PNF, REMOVE_PNF ]
+        nstId:
           description: |
-            The type of update. It determines also which one of the following parameters
-            is present in the operation. Possible values include:
-             * `ADD_VNF`: Adding existing VNF instance(s)
-             * `REMOVE_VNF`: Removing VNF instance(s)
-             * `INSTANTIATE_VNF`: Instantiating new VNF(s)
-             * `CHANGE_VNF_DF`: Changing VNF DF
-             * `OPERATE_VNF`: Changing VNF state,
-             * `MODIFY_VNF_INFORMATION`: Modifying VNF information and/or the configurable
-             properties of VNF instance(s)
-             * `CHANGE_EXTERNAL_VNF_CONNECTIVITY`: Changing the external connectivity of VNF
-             instance(s)
-             * `ADD_SAP`: Adding SAP(s)
-             * `REMOVE_SAP`: Removing SAP(s)
-             * `ADD_NESTED_NS`: Adding existing NS instance(s) as nested NS(s)
-             * `REMOVE_NESTED_NS`: Removing existing nested NS instance(s)
-             * `ASSOC_NEW_NSD_VERSION`: Associating a new NSD version to the NS instance
-             * `MOVE_VNF`: Moving VNF instance(s) from one origin NS instance to another target NS
-             instance
-             * `ADD_VNFFG`: Adding VNFFG(s)
-             * `REMOVE_VNFFG`: Removing VNFFG(s)
-             * `UPDATE_VNFFG`: Updating VNFFG(s)
-             * `CHANGE_NS_DF`: Changing NS DF
-             * `ADD_PNF`: Adding PNF
-             * `MODIFY_PNF`: Modifying PNF
-             * `REMOVE_PNF`: Removing PNF
-      # Specific properties are required for each updateType. Pending to be added.
-      additionalProperties: true
+            Identifier of the NST that defines the NetSlice instance to be created.
+          type: string
+          format: uuid
+        vimAccountId:
+          description: |
+            Identifier of the VIM Account where the NetSlice instance shall be created.
+          type: string
+          format: uuid
       required:
-        - updateType
-    ScaleNsRequest:
-      type: object
-      additionalProperties: true
-    HealNsData:
+        - nsiName
+        - nstId
+        - vimAccountId
+    TerminateNsiRequest:
       type: object
-      additionalProperties: true
-    HealVnfData:
+      properties:
+        terminationTime:
+          description: |
+            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: date-time
+    NsiActionRequest:
       type: object
-      additionalProperties: true
-    HealNsRequest:
+      properties:
+        primitive:
+          type: string
+        primitive_params:
+          $ref: '#/components/schemas/KeyValuePairs'
+        lcmOperationType:
+          type: string
+        netsliceInstanceId:
+          type: string
+          format: uuid
+      required:
+        - primitive
+        - primitive_params
+    CreateNsiContentRequest:
       type: object
       properties:
-        healNsData:
+        nstId:
+          description: |
+            Identifier of the NST that defines the NetSlice instance to be created.
+          type: string
+          format: uuid
+        nsiName:
           description: |
-            Provides the information needed to heal an NS. Either the parameter healNsData
-            or the parameter healVnfData, but not both shall be provided.
-          $ref: '#/components/schemas/HealNsData'
-        healVnfData:
+            Human-readable name of the NetSlice instance to be created.
+          type: string
+        vimAccountId:
           description: |
-            Provides the information needed to heal a VNF. Either the parameter healNsData
-            or the parameter healVnfData, but not both shall be provided.
-          type: array
-          items:
-            $ref: '#/components/schemas/HealVnfData'
-    TerminateNsRequest:
+            Identifier of the VIM Account where the NetSlice instance shall be created.
+          type: string
+          format: uuid
+      required:
+        - nsdId
+        - nsName
+        - vimAccountId
+    CreateNsiContentResponse:
       type: object
       properties:
-        terminationTime:
-          description: |
-            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.
+        id:
           type: string
-          format: date-time
-    ArrayOfNsInstance:
+          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/NsInstance'
+        $ref: '#/components/schemas/NsiLcmOpOcc'
+  # END SCHEMAS
+
   requestBodies:
     CreateNsdInfoRequest:
       content:
@@ -2049,11 +4109,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'
@@ -2078,14 +4140,11 @@ components:
         application/zip:
           schema:
             $ref: '#/components/schemas/VnfPackage'
-    UploadVnfPackageFromUriRequest:
+    VnfDescriptor:
       content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/UploadVnfPackageFromUriRequest'
-        application/yaml:
+        text/plain:
           schema:
-            $ref: '#/components/schemas/UploadVnfPackageFromUriRequest'
+            $ref: '#/components/schemas/VnfDescriptor'
     CreateNsRequest:
       content:
         application/json:
@@ -2110,33 +4169,91 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/ScaleNsRequest'
-    UpdateNsRequest:
+    TerminateNsRequest:
       content:
         application/json:
           schema:
-            $ref: '#/components/schemas/UpdateNsRequest'
+            $ref: '#/components/schemas/TerminateNsRequest'
         application/yaml:
           schema:
-            $ref: '#/components/schemas/UpdateNsRequest'
-    HealNsRequest:
+            $ref: '#/components/schemas/TerminateNsRequest'
+    CreateNSinstanceContentRequest:
       content:
         application/json:
           schema:
-            $ref: '#/components/schemas/HealNsRequest'
+            $ref: '#/components/schemas/CreateNSinstanceContentRequest'
         application/yaml:
           schema:
-            $ref: '#/components/schemas/HealNsRequest'
-    TerminateNsRequest:
+            $ref: '#/components/schemas/CreateNSinstanceContentRequest'
+    CreateNstInfoRequest:
       content:
         application/json:
           schema:
-            $ref: '#/components/schemas/TerminateNsRequest'
+            $ref: '#/components/schemas/CreateNstInfoRequest'
         application/yaml:
           schema:
-            $ref: '#/components/schemas/TerminateNsRequest'
+            $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/CreateNsiContentRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateNsiContentRequest'
+  # END REQUEST BODIES
+
   securitySchemes:
     bearerAuth:
       type: http
       scheme: bearer
-
-