Update NBI OpenAPI description
[osm/SOL005.git] / osm-openapi.yaml
index d8d8439..24120ea 100644 (file)
@@ -1,14 +1,15 @@
 openapi: 3.0.0
+
 servers:
   - description: OSM NB API
     url: https://osm.etsi.org/nbapi/v1.0.0
+
 info:
   description: |
     This is Open Source MANO Northbound API featuring ETSI NFV SOL005.
-    For more information on OSM, you can visit
-    [http://osm.etsi.org](http://osm.etsi.org) or connect to IRCs
-    [Freenode, #etsi-osm](http://webchat.freenode.net?channels=etsi-osm) or on
-    [OSM IRC, #tech](https://osm.etsi.org:8080/kiwi)
+    For more information on OSM, you can visit [http://osm.etsi.org](http://osm.etsi.org).
+    You can send us your comments and questions to OSM_TECH@list.etsi.org
+    or join the [OpenSourceMANO Slack Workplace](https://join.slack.com/t/opensourcemano/shared_invite/enQtMzQ3MzYzNTQ0NDIyLWVkNTE4ZjZjNWI0ZTQyN2VhOTI1MjViMzU1NWYwMWM3ODI4NTQyY2VlODA2ZjczMWIyYTFkZWNiZmFkM2M2ZDk)
   version: "1.0.0"
   title: OSM NB API featuring ETSI NFV SOL005
   contact:
@@ -16,6 +17,7 @@ info:
   license:
     name: Apache 2.0
     url: 'http://www.apache.org/licenses/LICENSE-2.0.html'
+
 tags:
   - name: 'VNF packages'
     description: Management operations of VNF descriptors and packages
@@ -23,16 +25,30 @@ tags:
     description: Management operations of NS descriptors and packages
   - name: 'NS instances'
     description: Management operations of NS instances
+  - name: 'NetSlice templates'
+    description: Management operations of NetSlice Templates
+  - name: 'NetSlice instances'
+    description: Management operations of NetSlice Instances
+# - name: 'NSPM'
+#   description: Management operations of NSPMs
+# - name: 'PDU'
+#   description: Management operations of PDUs
+# - name: 'Admin'
+#   description: Management operations of Administration items
+
+security:
+  - bearerAuth: []
+
 paths:
-  /nsd/v1/ns_descriptors:
+
+# BEGIN NS Packages
+  '/nsd/v1/ns_descriptors':
     get:
       tags:
         - "NS packages"
       summary: Query information about multiple NS descriptor resources
       description: Query information about multiple NS descriptor resources
       operationId: getNSDs
-      security:
-        - bearerAuth: []
       responses:
         '200':
           description: OK
@@ -73,20 +89,23 @@ 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:
         '201':
           description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
           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':
@@ -112,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
@@ -160,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
@@ -192,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':
@@ -234,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':
@@ -283,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
@@ -316,258 +338,3922 @@ 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:
-      description: The specified resource was not found.
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/ProblemDetails'
-    MethodNotAllowed:
-      description: This method is not supported for the requested resource.
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/ProblemDetails'
-    NotAcceptable:
-      description: The requested resource content cannot match the Accept headers sent in the request.
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/ProblemDetails'
-    Conflict:
-      description: The operation cannot be executed currently, due to a conflict with the state of the resource.
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/ProblemDetails'
-    UnprocessableEntity:
-      description: The request was well-formed but was unable to be followed due to semantic errors.
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/ProblemDetails'
-    InternalServerError:
-      description: Internal server error.
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/ProblemDetails'
-    ServiceUnavailable:
-      description: Service temporarily unavailable.
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/ProblemDetails'
-    UnexpectedError:
-      description: Unexpected error.
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/ProblemDetails'
-  schemas:
-    NsDescriptor:
-      type: string
-    NsPackage:
-      type: string
-      format: binary
-    userDefinedData:
-      type: object
-      additionalProperties:
-        type: string
-    CreateNsdInfoRequest:
-      type: object
-      properties:
-        userDefinedData:
-          $ref: '#/components/schemas/userDefinedData'
-    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.
-         * `ENABLED` - The NSD is disabled.
-    NsdUsageStateType:
-      type: string
-      enum: [IN_USE, NOT_IN_USE]
-      description: |
-        NSD operational state:
-         * `IN_USE` - The NSD is in use.
-         * `NOT_IN_USE` - The NSD is not in use.
-    NsdInfoModifications:
-      type: object
-      properties:
-        nsdOperationalState:
-          $ref: '#/components/schemas/NsdOperationalStateType'
-        userDefinedData:
-          $ref: '#/components/schemas/userDefinedData'
-    NsdInfo:
-      type: object
-      properties:
-        id:
-          description: |
-           Identifier of the onboarded individual NS descriptor
-           resource. This identifier is allocated by the NFVO. 
-          type: string
-          format: uuid
-        nsdId:
-          description: |
-            This identifier, which is allocated by the NSD
-            designer, identifies the NSD in a globally unique
-            way. It is copied from the NSD content and shall be
-            present after the NSD content is on-boarded.
-          type: string
-          format: uuid
-        nsdName:
-          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
-        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:
-          $ref: '#components/schemas/NsdOnboardingStateType'
-        onboardingFailureDetails:
-          $ref: '#/components/schemas/ProblemDetails'
-        nsdOperationalState:
-          $ref: '#components/schemas/NsdOperationalStateType'
-        nsdUsagestate:
-          $ref: '#components/schemas/NsdUsageStateType'
-        userDefinedData:
-          $ref: '#/components/schemas/userDefinedData'
-        self:
-          type: string
-          format: uri
-        nsd_content:
-          type: string
-          format: uri
-      required:
-        - id
-    ArrayOfNsdInfo:
-      type: array
-      items:
-        $ref: '#/components/schemas/NsdInfo'
-    # Problem details as described in RFC 7807.
-    # Optional fields "type" and "instance", as described in RFC 7807 are not used here.
-    ProblemDetails:
-      type: object
-      properties:
-        type:
-          type: string
-          format: uri
-        title:
-          type: string
-        status:
-          type: integer
-        detail:
-          type: string
-        instance:
-          type: string
-          format: uri
-      additionalProperties: true
-      required:
-        - status
-        - detail
-  requestBodies:
-    CreateNsdInfoRequest:
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/CreateNsdInfoRequest'
-        application/yaml:
-          schema:
-            $ref: '#/components/schemas/CreateNsdInfoRequest'
-    NsdInfoModifications:
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/NsdInfoModifications'
-        application/yaml:
-          schema:
-            $ref: '#/components/schemas/NsdInfoModifications'
-    NsdContent:
-      content:
-        text/plain:
-          schema:
-            $ref: '#/components/schemas/NsDescriptor'
-        application/zip:
-          schema:
-            $ref: '#/components/schemas/NsPackage'
-  securitySchemes:
-    bearerAuth:
-      type: http
-      scheme: bearer
-
+  '/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:
+        - "NS packages"
+      summary: Fetch individual NS package artifact
+      description: Fetch individual NS package artifact
+      operationId: getNsPkgArtifact
+      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'
+  '/nsd/v1/ns_descriptors/{nsdInfoId}/nsd':
+    parameters:
+      - name: nsdInfoId
+        in: path
+        required: true
+        description: NS Package ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NS packages"
+      summary: Read NSD of an on-boarded NS package
+      description: Read NSD of an on-boarded NS package
+      operationId: getNsPkgNsd
+      responses:
+        '200':
+          description: OK
+          content:
+            text/plain:
+              schema:
+                $ref: '#/components/schemas/NsDescriptor'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsd/v1/ns_descriptors_content':
+    post:
+      tags:
+        - "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':
+          $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:
+        - "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/ArrayOfNsdInfo'
+            application/yaml:
+              schema:
+                $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':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsd/v1/ns_descriptors_content/{nsdInfoId}':
+    parameters:
+      - name: nsdInfoId
+        in: path
+        required: true
+        description: NS Package ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "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:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsdInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsdInfo'
+        '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:
+        - "NS packages"
+      summary: Modify an individual NS package resource
+      description: Modify an individual NS package resource
+      operationId: updateNsPkgsIdContent
+      requestBody:
+        $ref: '#/components/requestBodies/NsdInfoModifications'
+      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:
+        - "NS packages"
+      summary: Delete an individual NS package resource
+      description: Delete an individual NS package resource
+      operationId: deleteNSPkgsIdContent
+      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 NS Packages
+
+# BEGIN VNF Packages
+  '/vnfpkgm/v1/vnf_packages':
+    get:
+      tags:
+        - "VNF packages"
+      summary: Query information about multiple VNF package resources
+      description: Query information about multiple VNF package resources
+      operationId: getVnfPkgs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
+            application/yaml:
+              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
+      requestBody:
+        $ref: '#/components/requestBodies/CreateVnfPkgInfoRequest'
+      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'
+  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}':
+    parameters:
+      - name: vnfPkgId
+        in: path
+        required: true
+        description: VNF 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
+      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'
+    delete:
+      tags:
+        - "VNF packages"
+      summary: Delete an individual VNF package resource
+      description: Delete an individual VNF package resource
+      operationId: deleteVnfPkg
+      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'
+    patch:
+      tags:
+        - "VNF packages"
+      summary: Modify an individual VNF package resource
+      description: Modify an individual VNF package resource
+      operationId: updateVnfPkg
+      requestBody:
+        $ref: '#/components/requestBodies/VnfPkgInfoModifications'
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/vnfd':
+    parameters:
+      - name: vnfPkgId
+        in: path
+        required: true
+        description: VNF Package ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "VNF packages"
+      summary: Read VNFD of an on-boarded VNF package
+      description: Read VNFD of an on-boarded VNF package
+      operationId: getVnfPkgVnfd
+      responses:
+        '200':
+          description: OK
+          content:
+            text/plain:
+              schema:
+                $ref: '#/components/schemas/VnfDescriptor'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/package_content':
+    parameters:
+      - name: vnfPkgId
+        in: path
+        required: true
+        description: VNF Package ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "VNF packages"
+      summary: Fetch an on-boarded VNF package
+      description: Fetch an on-boarded VNF package
+      operationId: getVnfPkgContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/zip:
+              schema:
+                $ref: '#/components/schemas/VnfPackage'
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/zip:
+              schema:
+                $ref: '#/components/schemas/VnfPackage'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    put:
+      tags:
+        - "VNF packages"
+      summary: Upload a VNF package by providing the content of the VNF package
+      description: Upload a VNF package by providing the content of the VNF package
+      operationId: uploadVnfPkgContent
+      requestBody:
+        content:
+          application/zip:
+            schema:
+              $ref: '#/components/schemas/VnfPackage'
+      responses:
+        '202':
+          description: Accepted
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/vnfpkgm/v1/vnf_packages/{vnfPkgId}/artifacts/{artifactPath}':
+    parameters:
+      - name: vnfPkgId
+        in: path
+        required: true
+        description: VNF Package ID
+        schema:
+          type : string
+      - name: artifactPath
+        in: path
+        required: true
+        description: Artifact Path
+        schema:
+          type : string
+    get:
+      tags:
+        - "VNF packages"
+      summary: Fetch individual VNF package artifact
+      description: Fetch individual VNF package artifact
+      operationId: getVnfPkgArtifact
+      responses:
+        '200':
+          description: OK
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/vnfpkgm/v1/vnf_packages_content':
+    post:
+      tags:
+        - "VNF packages"
+      summary: Upload a VNF package by providing the content of the VNF package
+      description: Upload a VNF package by providing the content of the VNF package
+      operationId: uploadVnfPkgsContent
+      requestBody:
+        content:
+          application/zip:
+            schema:
+              $ref: '#/components/schemas/VnfPackage'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '202':
+          description: Accepted
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    get:
+      tags:
+        - "VNF packages"
+      summary: Query information about multiple VNF package resources
+      description: Query information about multiple VNF package resources
+      operationId: getVnfPkgsContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVnfPkgInfo'
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/vnfpkgm/v1/vnf_packages_content/{packageContentId}':
+    parameters:
+      - name: packageContentId
+        in: path
+        required: true
+        description: VNF Package Content ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "VNF packages"
+      summary: Read information about an individual VNF package resource
+      description: Read information about an individual VNF package resource
+      operationId: getVnfPkgsIdContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/VnfPkgInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/VnfPkgInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    put:
+      tags:
+        - "VNF packages"
+      summary: Modify an individual VNF package resource
+      description: Modify an individual VNF package resource
+      operationId: updateVnfPkgsIdContent
+      requestBody:
+        $ref: '#/components/requestBodies/VnfPkgInfoModifications'
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "VNF packages"
+      summary: Delete an individual VNF package resource
+      description: Delete an individual VNF package resource
+      operationId: deleteVnfPkgsIdContent
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+# END VNF Packages
+
+# BEGIN NS Instances
+  '/nslcm/v1/ns_instances':
+    get:
+      tags:
+        - "NS instances"
+      summary: Query information about multiple NS instances
+      description: Query information about multiple NS isntances
+      operationId: getNSinstances
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "NS instances"
+      summary: Create a new NS instance resource
+      description: Create a new NS instance resource
+      operationId: addNSinstance
+      requestBody:
+        $ref: '#/components/requestBodies/CreateNsRequest'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NS instances"
+      summary: Read an individual NS instance resource
+      description: Read an individual NS instance resource
+      operationId: getNSinstance
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "NS instances"
+      summary: Delete an individual NS instance resource
+      description: Delete an individual NS instance resource
+      operationId: deleteNSinstance
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}/instantiate':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NS instances"
+      summary: Instantiate a NS
+      description: |
+        Instantiate a NS. The precondition is that the NS instance must have
+        been created and must be in NOT_INSTANTIATED state. As a result of the
+        success of this operation, the NFVO creates a "NS Lifecycle Operation
+        Occurrence" resource for the request, and the NS instance state becomes
+        INSTANTIATED.
+      operationId: instantiateNSinstance
+      requestBody:
+        $ref: '#/components/requestBodies/InstantiateNsRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NS Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}/scale':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NS instances"
+      summary: Scale a NS instance
+      description: |
+        Scale a NS instance. The precondition is that the NS instance must have
+        been created and must be in INSTANTIATED state. As a result of the
+        success of this operation, the NFVO creates a "NS Lifecycle Operation
+        Occurrence" resource for the request, and the NS instance state remains
+        INSTANTIATED.
+      operationId: scaleNSinstance
+      requestBody:
+        $ref: '#/components/requestBodies/ScaleNsRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NS Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}/terminate':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NS instances"
+      summary: Terminate a NS instance
+      description: |
+        Terminate a NS instance. The precondition is that the NS instance must have
+        been created and must be in INSTANTIATED state. As a result of the
+        success of this operation, the NFVO creates a "NS Lifecycle Operation
+        Occurrence" resource for the request, and the NS instance state becomes
+        NOT_INSTANTIATED.
+      operationId: terminateNSinstance
+      requestBody:
+        # Request data is not required
+        $ref: '#/components/requestBodies/TerminateNsRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NS Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}/action':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NS instances"
+      summary: Execute an action on a NS instance
+      description: |
+        Execute an action on a NS instance.
+        The NS instance must have been created and must be in INSTANTIATED state.
+      operationId: actionOnNSinstance
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/NSinstanceActionRequest'
+          application/yaml:
+            schema:
+              $ref: '#/components/schemas/NSinstanceActionRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NS Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances_content':
+    get:
+      tags:
+        - "NS instances"
+      summary: Query information about multiple NS instances
+      description: Query information about multiple NS isntances
+      operationId: getNSinstancesContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "NS instances"
+      summary: Create a new NS instance
+      description: Create a new NS instance
+      operationId: createNSinstanceContent
+      requestBody:
+        $ref: '#/components/requestBodies/CreateNSinstanceContentRequest'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/CreateNSinstanceContentResponse'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/CreateNSinstanceContentResponse'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances_content/{nsInstanceContentId}':
+    parameters:
+      - name: nsInstanceContentId
+        in: path
+        required: true
+        description: NS Instance Content ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NS instances"
+      summary: Read an individual NS instance resource
+      description: Read an individual NS instance resource
+      operationId: getNSinstanceContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "NS instances"
+      summary: Delete an individual NS instance resource
+      description: Delete an individual NS instance resource
+      operationId: deleteNSinstanceContent
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_lcm_op_occs':
+    get:
+      tags:
+        - "NS instances"
+      summary: Query information about multiple NS LCM Operation Occurrences
+      description: Query information about multiple NS LCM Operation Occurrences
+      operationId: getNSLCMOpOccs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsLcmOpOcc'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsLcmOpOcc'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}':
+    parameters:
+      - name: nsLcmOpOccId
+        in: path
+        required: true
+        description: NS LCM Operation Occurrence ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NS instances"
+      summary: Query information about an individual NS LCM Operation Occurrence
+      description: Query information about an individual NS LCM Operation Occurrence
+      operationId: getNSLCMOpOcc
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsLcmOpOcc'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsLcmOpOcc'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/vnf_instances':
+    get:
+      tags:
+        - "NS instances"
+      summary: Query information about multiple VNF Instances
+      description: Query information about multiple VNF Instances
+      operationId: getVnfInstances
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVnfInstanceInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVnfInstanceInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/vnf_instances/{vnfInstanceId}':
+    parameters:
+      - name: vnfInstanceId
+        in: path
+        required: true
+        description: VNF Instance ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NS instances"
+      summary: Query information about an individual VNF Instance
+      description: Query information about an individual VNF Instance
+      operationId: getVnfInstance
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/VnfInstanceInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/VnfInstanceInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+# END NS Instances
+
+# BEGIN NetSlice Templates
+  '/nst/v1/netslice_templates':
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Query information about multiple NetSlice template resources
+      description: Query information about multiple NetSlice template resources
+      operationId: getNSTs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNstInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNstInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "NetSlice templates"
+      summary: Create a new NetSlice template resource
+      description: Create a new NetSlice template resource
+      operationId: addNST
+      requestBody:
+        $ref: '#/components/requestBodies/CreateNstInfoRequest'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nst/v1/netslice_templates/{netsliceTemplateId}':
+    parameters:
+      - name: netsliceTemplateId
+        in: path
+        required: true
+        description: NetSlice Template ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Read information about an individual NetSlice template resource
+      description: Read information about an individual NetSlice template resource
+      operationId: getNST
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NstInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NstInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "NetSlice templates"
+      summary: Delete an individual NetSlice template resource
+      description: Delete an individual NetSlice template resource
+      operationId: deleteNST
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nst/v1/netslice_templates/{netsliceTemplateId}/artifacts/{artifactPath}':
+    parameters:
+      - name: netsliceTemplateId
+        in: path
+        required: true
+        description: NetSlice Template ID
+        schema:
+          type : string
+      - name: artifactPath
+        in: path
+        required: true
+        description: Artifact Path
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Fetch individual NetSlice Template artifact
+      description: Fetch individual NetSlice Template artifact
+      operationId: getNstArtifact
+      responses:
+        '200':
+          description: OK
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nst/v1/netslice_templates/{netsliceTemplateId}/nst':
+    parameters:
+      - name: netsliceTemplateId
+        in: path
+        required: true
+        description: NetSlice Template ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Read NST of an on-boarded NetSlice Template
+      description: Read NST of an on-boarded NetSlice Template
+      operationId: getNstNst
+      responses:
+        '200':
+          description: OK
+          content:
+            text/plain:
+              schema:
+                $ref: '#/components/schemas/NetSliceTemplate'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nst/v1/netslice_templates/{netsliceTemplateId}/nst_content':
+    parameters:
+      - name: netsliceTemplateId
+        in: path
+        required: true
+        description: NetSlice Template ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Fetch the content of a NST
+      description: Fetch the content of a NST
+      operationId: getNSTcontent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/zip:
+              schema:
+                $ref: '#/components/schemas/NetSlicePackage'
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/zip:
+              schema:
+                $ref: '#/components/schemas/NetSlicePackage'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    put:
+      tags:
+        - "NetSlice templates"
+      summary: Upload the content of a NST
+      description: Upload the content of a NST
+      operationId: updateNSTcontent
+      requestBody:
+        $ref: '#/components/requestBodies/NetSlicePackage'
+      responses:
+        '202':
+          description: Accepted
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nst/v1/netslice_templates_content':
+    post:
+      tags:
+        - "NetSlice templates"
+      summary: Upload a NetSlice package by providing the content of the NetSlice package
+      description: Upload a NetSlice package by providing the content of the NetSlice package
+      operationId: uploadNstContent
+      requestBody:
+        content:
+          application/zip:
+            schema:
+              $ref: '#/components/schemas/NetSlicePackage'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '202':
+          description: Accepted
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Query information about multiple NetSlice Template resources
+      description: Query information about multiple NetSlice Template resources
+      operationId: getNstContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNstInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNstInfo'
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/octet-stream:
+              schema:
+                type: string
+                format: binary
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nst/v1/netslice_templates_content/{netsliceTemplateContentId}':
+    parameters:
+      - name: netsliceTemplateContentId
+        in: path
+        required: true
+        description: NetSlice Template ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Read information about an individual NetSlice Template resource
+      description: Read information about an individual NetSlice Template resource
+      operationId: getNstIdContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NstInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NstInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    put:
+      tags:
+        - "NetSlice templates"
+      summary: Modify an individual NetSlice Template resource
+      description: Modify an individual NetSlice Template resource
+      operationId: updateNstIdContent
+      requestBody:
+        $ref: '#/components/requestBodies/NstInfoModifications'
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "NetSlice templates"
+      summary: Delete an individual NetSlice Template resource
+      description: Delete an individual NetSlice Template resource
+      operationId: deleteNstIdContent
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+# END NetSlice Templates
+
+# BEGIN NetSlice Instances
+  '/nsilcm/v1/netslice_instances':
+    get:
+      tags:
+        - "NetSlice instances"
+      summary: Query information about multiple NetSlice instances
+      description: Query information about multiple NetSlice isntances
+      operationId: getNSIs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNetSliceInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNetSliceInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "NetSlice instances"
+      summary: Create a new NetSlice instance resource
+      description: Create a new NetSlice instance resource
+      operationId: addNSI
+      requestBody:
+        $ref: '#/components/requestBodies/CreateNsiRequest'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/netslice_instances/{netsliceInstanceId}':
+    parameters:
+      - name: netsliceInstanceId
+        in: path
+        required: true
+        description: NetSlice Instance ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice instances"
+      summary: Read an individual NetSlice instance resource
+      description: Read an individual NetSlice instance resource
+      operationId: getNSI
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NetSliceInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NetSliceInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "NetSlice instances"
+      summary: Delete an individual NetSlice instance resource
+      description: Delete an individual NetSlice instance resource
+      operationId: deleteNSI
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/instantiate':
+    parameters:
+      - name: netsliceInstanceId
+        in: path
+        required: true
+        description: NetSlice Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NetSlice instances"
+      summary: Instantiate a NetSlice
+      description: |
+        Instantiate a NetSlice. The precondition is that the NetSlice instance
+        must have been created and must be in NOT_INSTANTIATED state. As a result
+        of the success of this operation, the NFVO creates a "NetSlice Lifecycle
+        Operation Occurrence" resource for the request, and the NS instance state
+        becomes INSTANTIATED.
+      operationId: instantiateNSI
+      requestBody:
+        $ref: '#/components/requestBodies/InstantiateNsiRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NetSlice Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../nsi_lcm_op_occs/{nsiLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/terminate':
+    parameters:
+      - name: netsliceInstanceId
+        in: path
+        required: true
+        description: NetSlice Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NetSlice instances"
+      summary: Terminate a NetSlice instance
+      description: |
+        Terminate a NetSlice instance. The precondition is that the NetSlice instance
+        must have been created and must be in INSTANTIATED state. As a result of the
+        success of this operation, the NFVO creates a "NetSlice Lifecycle Operation
+        Occurrence" resource for the request, and the NetSlice instance state becomes
+        NOT_INSTANTIATED.
+      operationId: terminateNSI
+      requestBody:
+        # Request data is not required
+        $ref: '#/components/requestBodies/TerminateNsiRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NetSlice Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../nsi_lcm_op_occs/{nsiLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/action':
+    parameters:
+      - name: netsliceInstanceId
+        in: path
+        required: true
+        description: NetSlice Instance ID
+        schema:
+          type : string
+    post:
+      tags:
+        - "NetSlice instances"
+      summary: Execute an action on a NetSlice instance
+      description: |
+        Execute an action on a NetSlice instance.
+        The NetSlice instance must have been created and must be in INSTANTIATED state.
+      operationId: actionOnNSI
+      requestBody:
+        content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/NsiActionRequest'
+          application/yaml:
+            schema:
+              $ref: '#/components/schemas/NsiActionRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NS Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/netslice_instances_content':
+    get:
+      tags:
+        - "NetSlice instances"
+      summary: Query information about multiple NetSlice instances
+      description: Query information about multiple NetSlice isntances
+      operationId: getNSIsContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNetSliceInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNetSliceInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "NetSlice instances"
+      summary: Create a new NetSlice instance
+      description: Create a new NetSlice instance
+      operationId: createNSIContent
+      requestBody:
+        $ref: '#/components/requestBodies/CreateNsiContentRequest'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/CreateNsiContentResponse'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/CreateNsiContentResponse'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/netslice_instances_content/{netsliceInstanceContentId}':
+    parameters:
+      - name: netsliceInstanceContentId
+        in: path
+        required: true
+        description: NetSlice Instance Content ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice instances"
+      summary: Read an individual NetSlice instance resource
+      description: Read an individual NetSlice instance resource
+      operationId: getNSIContent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NetSliceInstance'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NetSliceInstance'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "NetSlice instances"
+      summary: Delete an individual NS instance resource
+      description: Delete an individual NS instance resource
+      operationId: deleteNSIContent
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/nsi_lcm_op_occs':
+    get:
+      tags:
+        - "NetSlice instances"
+      summary: Query information about multiple NetSlice LCM Operation Occurrences
+      description: Query information about multiple NetSlice LCM Operation Occurrences
+      operationId: getNsiLcmOpOccs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsiLcmOpOcc'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsiLcmOpOcc'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nsilcm/v1/nsi_lcm_op_occs/{nsiLcmOpOccId}':
+    parameters:
+      - name: nsiLcmOpOccId
+        in: path
+        required: true
+        description: NetSlice LCM Operation Occurrence ID
+        schema:
+          type : string
+    get:
+      tags:
+        - "NetSlice instances"
+      summary: Query information about an individual NetSlice LCM Operation Occurrence
+      description: Query information about an individual NetSlice LCM Operation Occurrence
+      operationId: getNsiLcmOpOcc
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsiLcmOpOcc'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsiLcmOpOcc'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+# END NetSlice Instances
+
+# BEGIN NSPM
+  # /nspm/v1/pm_jobs/{pmJobId}/reports/{reportId}
+# END NSPM
+
+# BEGIN PDU
+  # /pdu/v1/pdu_descriptors
+  # /pdu/v1/pdu_descriptors/{pduDescriptorId}
+# END PDU
+
+# BEGIN Admin
+  # /admin/v1/tokens
+  # /admin/v1/tokens/{tokenId}
+  # /admin/v1/users
+  # /admin/v1/users/{userId}
+  # /admin/v1/projects
+  # /admin/v1/projects/{projectId}
+  # /admin/v1/roles
+  # /admin/v1/roles/{roleId}
+  # /admin/v1/vims
+  # /admin/v1/vims/{vimId}
+  # /admin/v1/vim_accounts
+  # /admin/v1/vim_accounts/{vimAccountId}
+  # /admin/v1/wim_accounts
+  # /admin/v1/wim_accounts/{wimAccountId}
+  # /admin/v1/sdns
+  # /admin/v1/sdns/{sdnId}
+# END Admin
+
+externalDocs:
+  description: Find out more OSM
+  url: 'http://osm.etsi.org/wikipub'
+
+components:
+  responses:
+    BadRequest:
+      description: Bad request. The server cannot process the request due to a client error.
+      content:
+        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:
+          schema:
+            $ref: '#/components/schemas/ProblemDetails'
+    MethodNotAllowed:
+      description: This method is not supported for the requested resource.
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/ProblemDetails'
+    NotAcceptable:
+      description: The requested resource content cannot match the Accept headers sent in the request.
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/ProblemDetails'
+    Conflict:
+      description: The operation cannot be executed currently, due to a conflict with the state of the resource.
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/ProblemDetails'
+    UnprocessableEntity:
+      description: The request was well-formed but was unable to be followed due to semantic errors.
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/ProblemDetails'
+    InternalServerError:
+      description: Internal server error.
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/ProblemDetails'
+    ServiceUnavailable:
+      description: Service temporarily unavailable.
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/ProblemDetails'
+    UnexpectedError:
+      description: Unexpected error.
+      content:
+        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
+    CreateNsdInfoRequest:
+      # A free list of key:value pairs
+      type: object
+      additionalProperties: true
+    NsdInfoModifications:
+      description: |
+        NS Descriptor Information
+        Only generic fields (id, name, description) are described
+        For a full specification of the NS Descriptor see:
+        http://osm-download.etsi.org/ftp/osm-doc/nsd.html
+      type: object
+      properties:
+        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:
+          description: |
+            Identifier of the onboarded individual NS descriptor
+            resource. This identifier is allocated by the NFVO.
+          type: string
+          format: uuid
+        id:
+          description: |
+            This identifier, which is allocated by the NSD
+            designer, identifies the NSD in a globally unique
+            way. It is copied from the NSD content and shall be
+            present after the NSD content is on-boarded.
+          type: string
+        name:
+          description: |
+            Name of the onboarded NSD. This information is
+            copied from the NSD content and shall be present
+            after the NSD content is on-boarded.
+          type: string
+        description:
+          description: |
+            Description of the onboarded NSD.
+            This information is copied from the NSD content.
+          type: string
+        nsd:
+          $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsd.html'
+      required:
+        - _id
+        - id
+    ArrayOfNsdInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/NsdInfo'
+    ProblemDetails:
+      type: object
+      properties:
+        type:
+          type: string
+          format: uri
+        title:
+          type: string
+        status:
+          type: integer
+        detail:
+          type: string
+        instance:
+          type: string
+          format: uri
+      additionalProperties: true
+      required:
+        - status
+        - detail
+    VnfDescriptor:
+      type: string
+      format: yaml|json
+    VnfPackage:
+      type: string
+      format: binary
+    CreateVnfPkgInfoRequest:
+      # 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:
+        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:
+          description: |
+            Identifier of the VNF package. This identifier is allocated by the NFVO.
+          type: string
+          format: uuid
+        id:
+          description: VNF Package Identifier
+          type: string
+        name:
+          description: VNF Package Name
+          type: string
+        description:
+          description: VNF Package description
+          type: string
+        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: |
+            Identifier of the NSD that defines the NS instance to be created.
+          type: string
+          format: uuid
+        nsName:
+          description: |
+            Human-readable name of the NS instance to be created.
+          type: string
+        nsDescription:
+          description: |
+            Human-readable description of the NS instance to be created.
+          type: string
+        vimAccountId:
+          description: |
+            Identifier of the VIM Account where the NS instance shall be created.
+          type: string
+          format: uuid
+      required:
+        - nsdId
+        - nsName
+        - vimAccountId
+    NsInstance:
+      description: |
+        NS Instance Information
+        Only generic fields (_id, id, name, description) are described
+        For a full specification of the NS Instance see:
+        http://osm-download.etsi.org/ftp/osm-doc/nsr.html
+      type: object
+      properties:
+        _id:
+          description: Identifier of the NS instance.
+          type: string
+          format: uuid
+        id:
+          description: Identifier of the NS instance.
+          type: string
+          format: uuid
+        name:
+          description: Human readable name of the NS instance.
+          type: string
+        description:
+          description: Human readable description of the NS instance.
+          type: string
+        nsr:
+          $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsr.html'
+      required:
+        - _id
+        - id
+        - name
+    InstantiateNsRequest:
+      type: object
+      properties:
+        nsName:
+          description: |
+            Human-readable name of the NS instance to be created.
+          type: string
+        nsdId:
+          description: |
+            Identifier of the NSD that defines the NS instance to be created.
+          type: string
+          format: uuid
+        vimAccountId:
+          description: |
+            Identifier of the VIM Account where the NS instance shall be created.
+          type: string
+          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: |
+            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: date-time
+    ArrayOfNsInstance:
+      type: array
+      items:
+        $ref: '#/components/schemas/NsInstance'
+    NSinstanceActionRequest:
+      type: object
+      properties:
+        primitive:
+          type: string
+        primitive_params:
+          $ref: '#/components/schemas/KeyValuePairs'
+        lcmOperationType:
+          type: string
+        nsInstanceId:
+          type: string
+          format: uuid
+        member_vnf_index:
+          type: string
+        vdu_id:
+          type: string
+        vdu_count_index:
+          type: integer
+      required:
+        - primitive
+        - primitive_params
+      additionalProperties: false
+    CreateNSinstanceContentRequest:
+      type: object
+      properties:
+        nsdId:
+          description: |
+            Identifier of the NSD that defines the NS instance to be created.
+          type: string
+          format: uuid
+        nsName:
+          description: |
+            Human-readable name of the NS instance to be created.
+          type: string
+        vimAccountId:
+          description: |
+            Identifier of the VIM Account where the NS instance shall be created.
+          type: string
+          format: uuid
+      required:
+        - nsdId
+        - nsName
+        - vimAccountId
+    CreateNSinstanceContentResponse:
+      type: object
+      properties:
+        id:
+          type: string
+          format: uuid
+        nslcmop_id:
+          type: string
+          format: uuid
+    NsLcmOpOcc:
+      type: object
+      properties:
+        _id:
+          type: string
+          format: uuid
+        id:
+          type: string
+          format: uuid
+        lcmOperationType:
+          type: string
+        nsInstanceId:
+          type: string
+          format: uuid
+        isAutomaticInvocation:
+          type: boolean
+        isCancelPending:
+          type: boolean
+        startTime:
+          type: number
+          format: float
+        statusEnteredTime:
+          type: number
+          format: float
+        operationParams:
+          type: object
+          properties:
+            nsName:
+              type: string
+            nsdId:
+              type: string
+              format: uuid
+            vimAccountId:
+              type: string
+              format: uuid
+            nsInstanceId:
+              type: string
+              format: uuid
+            lcmOperationType:
+              type: string
+        operationState:
+          type: string
+        detailed-status:
+          type: string
+        links:
+          type: object
+          properties:
+            self:
+              type: string
+              format: path   # uri?
+            nsInstance:
+              type: string
+              format: path   # uri?
+    ArrayOfNsLcmOpOcc:
+      type: array
+      items:
+        $ref: '#/components/schemas/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: uuid
+        id:
+          type: string
+          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: uuid
+        id:
+          description: Human readable NetSlice Template Identifier
+          type: string
+        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
+    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
+      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
+      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:
+        nstId:
+          description: |
+            Identifier of the NST that defines the NetSlice instance to be created.
+          type: string
+          format: uuid
+        nsiName:
+          description: |
+            Human-readable name of the NetSlice instance to be created.
+          type: string
+        nsiDescription:
+          description: |
+            Human-readable description of the NetSlice instance to be created.
+          type: string
+        vimAccountId:
+          description: |
+            Identifier of the VIM Account where the NetSlice instance shall be created.
+          type: string
+          format: uuid
+      required:
+        - nstId
+        - nsiName
+        - vimAccountId
+    InstantiateNsiRequest:
+      type: object
+      properties:
+        nsiName:
+          description: |
+            Human-readable name of the NetSlice instance to be created.
+          type: string
+        nstId:
+          description: |
+            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:
+        - nsiName
+        - nstId
+        - vimAccountId
+    TerminateNsiRequest:
+      type: object
+      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
+      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:
+        nstId:
+          description: |
+            Identifier of the NST that defines the NetSlice instance to be created.
+          type: string
+          format: uuid
+        nsiName:
+          description: |
+            Human-readable name of the NetSlice instance to be created.
+          type: string
+        vimAccountId:
+          description: |
+            Identifier of the VIM Account where the NetSlice instance shall be created.
+          type: string
+          format: uuid
+      required:
+        - nsdId
+        - nsName
+        - vimAccountId
+    CreateNsiContentResponse:
+      type: object
+      properties:
+        id:
+          type: string
+          format: uuid
+        nsilcmop_id:
+          type: string
+          format: uuid
+    NsiLcmOpOcc:
+      type: object
+      properties:
+        _id:
+          type: string
+          format: uuid
+        id:
+          type: string
+          format: uuid
+        lcmOperationType:
+          type: string
+        netsliceInstanceId:
+          type: string
+          format: uuid
+        isAutomaticInvocation:
+          type: boolean
+        isCancelPending:
+          type: boolean
+        startTime:
+          type: number
+          format: float
+        statusEnteredTime:
+          type: number
+          format: float
+        operationParams:
+          type: object
+          properties:
+            nsiName:
+              type: string
+            nstId:
+              type: string
+              format: uuid
+            vimAccountId:
+              type: string
+              format: uuid
+            netsliceInstanceId:
+              type: string
+              format: uuid
+            lcmOperationType:
+              type: string
+            nslcmops_ids:
+              type: array
+              items:
+                type: string
+                format: uuid
+        operationState:
+          type: string
+        detailed-status:
+          type: string
+        links:
+          type: object
+          properties:
+            self:
+              type: string
+              format: path   # uri?
+            netsliceInstanceId:
+              type: string
+              format: path   # uri?
+    ArrayOfNsiLcmOpOcc:
+      type: array
+      items:
+        $ref: '#/components/schemas/NsiLcmOpOcc'
+  # END SCHEMAS
+
+  requestBodies:
+    CreateNsdInfoRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateNsdInfoRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateNsdInfoRequest'
+    NsdInfoModifications:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/NsdInfoModifications'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/NsdInfoModifications'
+    NsDescriptor:
+      content:
+        text/plain:
+          schema:
+            $ref: '#/components/schemas/NsDescriptor'
+    NsPackage:
+      content:
+        application/zip:
+          schema:
+            $ref: '#/components/schemas/NsPackage'
+    CreateVnfPkgInfoRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateVnfPkgInfoRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateVnfPkgInfoRequest'
+    VnfPkgInfoModifications:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/VnfPkgInfoModifications'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/VnfPkgInfoModifications'
+    VnfPackage:
+      content:
+        application/zip:
+          schema:
+            $ref: '#/components/schemas/VnfPackage'
+    VnfDescriptor:
+      content:
+        text/plain:
+          schema:
+            $ref: '#/components/schemas/VnfDescriptor'
+    CreateNsRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateNsRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateNsRequest'
+    InstantiateNsRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/InstantiateNsRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/InstantiateNsRequest'
+    ScaleNsRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/ScaleNsRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/ScaleNsRequest'
+    TerminateNsRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/TerminateNsRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/TerminateNsRequest'
+    CreateNSinstanceContentRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateNSinstanceContentRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateNSinstanceContentRequest'
+    CreateNstInfoRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateNstInfoRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateNstInfoRequest'
+    NetSliceTemplate:
+      content:
+        text/plain:
+          schema:
+            $ref: '#/components/schemas/NetSliceTemplate'
+    NetSlicePackage:
+      content:
+        application/zip:
+          schema:
+            $ref: '#/components/schemas/NetSlicePackage'
+    NstInfoModifications:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/NstInfoModifications'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/NstInfoModifications'
+    CreateNsiRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateNsiRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateNsiRequest'
+    InstantiateNsiRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/InstantiateNsiRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/InstantiateNsiRequest'
+    TerminateNsiRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/TerminateNsiRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/TerminateNsiRequest'
+    NsiActionRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/NsiActionRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/NsiActionRequest'
+    CreateNsiContentRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateNsiContentRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateNsiContentRequest'
+  # END REQUEST BODIES
+
+  securitySchemes:
+    bearerAuth:
+      type: http
+      scheme: bearer