Feature 10997: add oci flag as new property in k8s repos
[osm/SOL005.git] / osm-openapi.yaml
index 24120ea..e9eaad4 100644 (file)
@@ -2,7 +2,7 @@ openapi: 3.0.0
 
 servers:
   - description: OSM NB API
-    url: https://osm.etsi.org/nbapi/v1.0.0
+    url: 'https://osm.etsi.org/nbapi/v1.0.0'
 
 info:
   description: |
@@ -29,12 +29,20 @@ tags:
     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
+  - name: 'NS Performance Management'
+    description: Management operations related to Performance Mangement of NS instances
+  - name: 'Physical Data Units (PDU)'
+    description: Management operations of PDUs
+  - name: 'Authentication'
+    description: Authentication operations
+  - name: 'Identity'
+    description: Management operations of users, projects and roles
+  - name: 'Infrastructure'
+    description: Management operations of VIM, VIM accounts, WIM and SDN controllers
+  - name: 'Repositories'
+    description: Management operations of repositories
+  - name: 'Admin'
+    description: Management operations of Administration items
 
 security:
   - bearerAuth: []
@@ -137,7 +145,7 @@ paths:
         required: true
         description: NSD Info ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS packages"
@@ -253,7 +261,7 @@ paths:
         required: true
         description: NSD Info ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS packages"
@@ -345,13 +353,13 @@ paths:
         required: true
         description: NS Package ID
         schema:
-          type : string
+          type: string
       - name: artifactPath
         in: path
         required: true
         description: Artifact Path
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS packages"
@@ -408,7 +416,7 @@ paths:
         required: true
         description: NS Package ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS packages"
@@ -559,7 +567,7 @@ paths:
         required: true
         description: NS Package ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS packages"
@@ -766,7 +774,7 @@ paths:
         required: true
         description: VNF Package ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "VNF packages"
@@ -882,7 +890,7 @@ paths:
         required: true
         description: VNF Package ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "VNF packages"
@@ -927,7 +935,7 @@ paths:
         required: true
         description: VNF Package ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "VNF packages"
@@ -1022,13 +1030,13 @@ paths:
         required: true
         description: VNF Package ID
         schema:
-          type : string
+          type: string
       - name: artifactPath
         in: path
         required: true
         description: Artifact Path
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "VNF packages"
@@ -1191,7 +1199,7 @@ paths:
         required: true
         description: VNF Package Content ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "VNF packages"
@@ -1351,7 +1359,7 @@ paths:
       description: Create a new NS instance resource
       operationId: addNSinstance
       requestBody:
-        $ref: '#/components/requestBodies/CreateNsRequest'
+        $ref: '#/components/requestBodies/InstantiateNsRequest'
       responses:
         '201':
           description: Created
@@ -1398,7 +1406,13 @@ paths:
         required: true
         description: NS Instance ID
         schema:
-          type : string
+          type: string
+      - name: vcaStatusRefresh
+        in: query
+        required: false
+        description: Set to true if vca status needs to be refreshed.
+        schema:
+          type: boolean
     get:
       tags:
         - "NS instances"
@@ -1479,7 +1493,7 @@ paths:
         required: true
         description: NS Instance ID
         schema:
-          type : string
+          type: string
     post:
       tags:
         - "NS instances"
@@ -1542,7 +1556,7 @@ paths:
         required: true
         description: NS Instance ID
         schema:
-          type : string
+          type: string
     post:
       tags:
         - "NS instances"
@@ -1591,6 +1605,118 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}/heal':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type: string
+    post:
+      tags:
+        - "NS instances"
+      summary: Heal a NS instance
+      description: |
+        Heal a NS instance. The precondition is that the NS instance must have
+        been created and must be in INSTANTIATED state. As a result of the
+        success of this operation, the NFVO creates a "NS Lifecycle Operation
+        Occurrence" resource for the request, and the NS instance state remains
+        INSTANTIATED.
+      operationId: healNSinstance
+      requestBody:
+        $ref: '#/components/requestBodies/HealNsRequest'
+      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}/migrate':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type: string
+    post:
+      tags:
+        - "NS instances"
+      summary: Migrate VNFs in a NS instance
+      description: |
+        Migrate the VNFs and VDUs in 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: migrateNSinstance
+      requestBody:
+        $ref: '#/components/requestBodies/NSinstanceMigrateRequest'
+      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
@@ -1598,7 +1724,7 @@ paths:
         required: true
         description: NS Instance ID
         schema:
-          type : string
+          type: string
     post:
       tags:
         - "NS instances"
@@ -1662,7 +1788,7 @@ paths:
         required: true
         description: NS Instance ID
         schema:
-          type : string
+          type: string
     post:
       tags:
         - "NS instances"
@@ -1721,6 +1847,115 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}/update':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type: string
+    post:
+      tags:
+        - "NS instances"
+      summary: Update a NS instance
+      description: |
+        Update a NS instance. The precondition is that the NS instance must have
+        been created and must be in INSTANTIATED state. As a result of the
+        success of this operation, the NFVO creates a "NS Lifecycle Operation
+        Occurrence" resource for the request, and the NS instance state remains
+        INSTANTIATED.
+      operationId: updateNSinstance
+      requestBody:
+        $ref: '#/components/requestBodies/UpdateNsRequest'
+      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}/verticalscale':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type: string
+    post:
+      tags:
+        - "NS instances"
+      summary: Vertical scale a NS instance
+      description:
+        Execute an verticalscale on a NS instance.
+        The NS instance must have been created and must be in INSTANTIATED state.
+      operationId: verticalscaleNSinstance
+      requestBody:
+        $ref: '#/components/requestBodies/VerticalscaleNsRequest'
+      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_content':
     get:
       tags:
@@ -1769,7 +2004,7 @@ paths:
       description: Create a new NS instance
       operationId: createNSinstanceContent
       requestBody:
-        $ref: '#/components/requestBodies/CreateNSinstanceContentRequest'
+        $ref: '#/components/requestBodies/InstantiateNsRequest'
       responses:
         '201':
           description: Created
@@ -1816,7 +2051,7 @@ paths:
         required: true
         description: NS Instance Content ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS instances"
@@ -1947,7 +2182,7 @@ paths:
         required: true
         description: NS LCM Operation Occurrence ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS instances"
@@ -1988,23 +2223,25 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nslcm/v1/vnf_instances':
-    get:
+  '/nslcm/v1/ns_lcm_op_occs/{nsLcmOpOccId}/cancel':
+    parameters:
+      - name: nsLcmOpOccId
+        in: path
+        required: true
+        description: NS LCM Operation Occurrence ID
+        schema:
+          type: string
+    post:
       tags:
         - "NS instances"
-      summary: Query information about multiple VNF Instances
-      description: Query information about multiple VNF Instances
-      operationId: getVnfInstances
+      summary: Cancel an ongoing NS lifecycle management operation
+      description: Cancel an ongoing NS lifecycle management operation while it is being executed or rolled back
+      operationId: cancelNSLCMOpOcc
+      requestBody:
+        $ref: '#/components/requestBodies/CancelNSLCMOpOccRequest'
       responses:
-        '200':
-          description: OK
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/ArrayOfVnfInstanceInfo'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/ArrayOfVnfInstanceInfo'
+        '202':
+          description: Accepted
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2029,21 +2266,62 @@ paths:
           $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
+  '/nslcm/v1/vnf_instances':
     get:
       tags:
         - "NS instances"
-      summary: Query information about an individual VNF Instance
-      description: Query information about an individual VNF Instance
-      operationId: getVnfInstance
-      responses:
+      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:
@@ -2077,26 +2355,23 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-# END NS Instances
-
-# BEGIN NetSlice Templates
-  '/nst/v1/netslice_templates':
+  '/nslcm/v1/subscriptions':
     get:
       tags:
-        - "NetSlice templates"
-      summary: Query information about multiple NetSlice template resources
-      description: Query information about multiple NetSlice template resources
-      operationId: getNSTs
+        - NS instances
+      summary: Query information about multiple NS instance subscription
+      description: Query information about multiple NS instance subscription
+      operationId: getNsSubcriptions
       responses:
         '200':
           description: OK
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ArrayOfNstInfo'
+                $ref: '#/components/schemas/ArrayOfNslcmSubscriptionInfo'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/ArrayOfNstInfo'
+                $ref: '#/components/schemas/ArrayOfNslcmSubscriptionInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2117,33 +2392,32 @@ paths:
           $ref: '#/components/responses/InternalServerError'
         '503':
           $ref: '#/components/responses/ServiceUnavailable'
-        '5XX':
+        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
+        - NS instances
+      summary: Create a new subscription for the Network service
+      description: Create a new subscription for the Network service
+      operationId: addNsSubcriptions
       requestBody:
-        $ref: '#/components/requestBodies/CreateNstInfoRequest'
+        $ref: '#/components/requestBodies/NslcmSubscriptionRequest'
       responses:
         '201':
           description: Created
           headers:
             Location:
               schema:
-                type: string
-                format: uri
+                type: object
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ObjectId'
+                $ref: '#/components/schemas/NslcmSubscriptionResponse'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/ObjectId'
+                $ref: '#/components/schemas/NslcmSubscriptionResponse'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2164,34 +2438,34 @@ paths:
           $ref: '#/components/responses/InternalServerError'
         '503':
           $ref: '#/components/responses/ServiceUnavailable'
-        '5XX':
+        5XX:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nst/v1/netslice_templates/{netsliceTemplateId}':
+  '/nslcm/v1/subscriptions/{nsSubscriptionsId}':
     parameters:
-      - name: netsliceTemplateId
+      - name: nsSubscriptionsId
         in: path
         required: true
-        description: NetSlice Template ID
+        description: Network Service Subscription ID
         schema:
-          type : string
+          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
+        - NS instances
+      summary: Read information about an individual Network Service Subscription
+      description: Read information about an individual Network Service Subscription
+      operationId: getNsSubcriptionId
       responses:
         '200':
           description: OK
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/NstInfo'
+                $ref: '#/components/schemas/NslcmSubscriptionInfo'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/NstInfo'
+                $ref: '#/components/schemas/NslcmSubscriptionInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2212,16 +2486,16 @@ paths:
           $ref: '#/components/responses/InternalServerError'
         '503':
           $ref: '#/components/responses/ServiceUnavailable'
-        '5XX':
+        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
+        - NS instances
+      summary: Delete an individual Network Service Subscription
+      description: Delete an individual Network Service Subscription
+      operationId: deleteNsSubcriptionId
       responses:
         '204':
           description: No Content
@@ -2245,49 +2519,30 @@ paths:
           $ref: '#/components/responses/InternalServerError'
         '503':
           $ref: '#/components/responses/ServiceUnavailable'
-        '5XX':
+        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
+# END NS Instances
+
+# BEGIN Alarms
+  '/nsfm/v1/alarms':
     get:
       tags:
-        - "NetSlice templates"
-      summary: Fetch individual NetSlice Template artifact
-      description: Fetch individual NetSlice Template artifact
-      operationId: getNstArtifact
+        - "Alarms"
+      summary: Query information about multiple alarms
+      description: Query information about multiple alarms
+      operationId: getAlarms
       responses:
         '200':
           description: OK
           content:
-            application/octet-stream:
-              schema:
-                type: string
-                format: binary
-        '206':
-          description: Partial Content
-          headers:
-            Content-Range:
+            application/json:
               schema:
-                type: string
-          content:
-            application/octet-stream:
+                $ref: '#/components/schemas/ArrayOfAlarm'
+            application/yaml:
               schema:
-                type: string
-                format: binary
+                $ref: '#/components/schemas/ArrayOfAlarm'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2312,27 +2567,30 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nst/v1/netslice_templates/{netsliceTemplateId}/nst':
+  '/nsfm/v1/alarms/{uuid}':
     parameters:
-      - name: netsliceTemplateId
+      - name: uuid
         in: path
         required: true
-        description: NetSlice Template ID
+        description: Alarm UUID
         schema:
-          type : string
+          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
+        - "Alarms"
+      summary: Read an individual Alarm
+      description: Read an individual Alarm
+      operationId: getAlarm
       responses:
         '200':
           description: OK
           content:
-            text/plain:
+            application/json:
               schema:
-                $ref: '#/components/schemas/NetSliceTemplate'
+                $ref: '#/components/schemas/Alarm'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/Alarm'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2357,37 +2615,17 @@ paths:
           $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:
+    patch:
       tags:
-        - "NetSlice templates"
-      summary: Fetch the content of a NST
-      description: Fetch the content of a NST
-      operationId: getNSTcontent
+        - "Alarms"
+      summary: Modify the data of an  individual Alarm
+      description: Modify the data of an  individual Alarm
+      operationId: updateAlarm
+      requestBody:
+        $ref: '#/components/requestBodies/AlarmInfoModifications'
       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'
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2412,19 +2650,26 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    put:
+# END Alarms
+
+# BEGIN NetSlice Templates
+  '/nst/v1/netslice_templates':
+    get:
       tags:
         - "NetSlice templates"
-      summary: Upload the content of a NST
-      description: Upload the content of a NST
-      operationId: updateNSTcontent
-      requestBody:
-        $ref: '#/components/requestBodies/NetSlicePackage'
+      summary: Query information about multiple NetSlice template resources
+      description: Query information about multiple NetSlice template resources
+      operationId: getNSTs
       responses:
-        '202':
-          description: Accepted
-        '204':
-          description: No Content
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNstInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNstInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2449,18 +2694,14 @@ paths:
           $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
+      summary: Create a new NetSlice template resource
+      description: Create a new NetSlice template resource
+      operationId: addNST
       requestBody:
-        content:
-          application/zip:
-            schema:
-              $ref: '#/components/schemas/NetSlicePackage'
+        $ref: '#/components/requestBodies/CreateNstInfoRequest'
       responses:
         '201':
           description: Created
@@ -2476,10 +2717,6 @@ paths:
             application/yaml:
               schema:
                 $ref: '#/components/schemas/ObjectId'
-        '202':
-          description: Accepted
-        '204':
-          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2504,33 +2741,30 @@ paths:
           $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: Query information about multiple NetSlice Template resources
-      description: Query information about multiple NetSlice Template resources
-      operationId: getNstContent
+      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/ArrayOfNstInfo'
+                $ref: '#/components/schemas/NstInfo'
             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
+                $ref: '#/components/schemas/NstInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2555,30 +2789,15 @@ paths:
           $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:
+    delete:
       tags:
         - "NetSlice templates"
-      summary: Read information about an individual NetSlice Template resource
-      description: Read information about an individual NetSlice Template resource
-      operationId: getNstIdContent
+      summary: Delete an individual NetSlice template resource
+      description: Delete an individual NetSlice template resource
+      operationId: deleteNST
       responses:
-        '200':
-          description: OK
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/NstInfo'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/NstInfo'
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2603,17 +2822,45 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    put:
+  '/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: Modify an individual NetSlice Template resource
-      description: Modify an individual NetSlice Template resource
-      operationId: updateNstIdContent
-      requestBody:
-        $ref: '#/components/requestBodies/NstInfoModifications'
+      summary: Fetch individual NetSlice Template artifact
+      description: Fetch individual NetSlice Template artifact
+      operationId: getNstArtifact
       responses:
-        '204':
-          description: No Content
+        '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':
@@ -2638,15 +2885,27 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+  '/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: Delete an individual NetSlice Template resource
-      description: Delete an individual NetSlice Template resource
-      operationId: deleteNstIdContent
+      summary: Read NST of an on-boarded NetSlice Template
+      description: Read NST of an on-boarded NetSlice Template
+      operationId: getNstNst
       responses:
-        '204':
-          description: No Content
+        '200':
+          description: OK
+          content:
+            text/plain:
+              schema:
+                $ref: '#/components/schemas/NetSliceTemplate'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2671,26 +2930,37 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-# END NetSlice Templates
-
-# BEGIN NetSlice Instances
-  '/nsilcm/v1/netslice_instances':
+  '/nst/v1/netslice_templates/{netsliceTemplateId}/nst_content':
+    parameters:
+      - name: netsliceTemplateId
+        in: path
+        required: true
+        description: NetSlice Template ID
+        schema:
+          type: string
     get:
       tags:
-        - "NetSlice instances"
-      summary: Query information about multiple NetSlice instances
-      description: Query information about multiple NetSlice isntances
-      operationId: getNSIs
+        - "NetSlice templates"
+      summary: Fetch the content of a NST
+      description: Fetch the content of a NST
+      operationId: getNSTcontent
       responses:
         '200':
           description: OK
           content:
-            application/json:
+            application/zip:
               schema:
-                $ref: '#/components/schemas/ArrayOfNetSliceInstance'
-            application/yaml:
+                $ref: '#/components/schemas/NetSlicePackage'
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
               schema:
-                $ref: '#/components/schemas/ArrayOfNetSliceInstance'
+                type: string
+          content:
+            application/zip:
+              schema:
+                $ref: '#/components/schemas/NetSlicePackage'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2715,29 +2985,19 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    post:
+    put:
       tags:
-        - "NetSlice instances"
-      summary: Create a new NetSlice instance resource
-      description: Create a new NetSlice instance resource
-      operationId: addNSI
+        - "NetSlice templates"
+      summary: Upload the content of a NST
+      description: Upload the content of a NST
+      operationId: updateNSTcontent
       requestBody:
-        $ref: '#/components/requestBodies/CreateNsiRequest'
+        $ref: '#/components/requestBodies/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':
@@ -2762,30 +3022,37 @@ paths:
           $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:
+  '/nst/v1/netslice_templates_content':
+    post:
       tags:
-        - "NetSlice instances"
-      summary: Read an individual NetSlice instance resource
-      description: Read an individual NetSlice instance resource
-      operationId: getNSI
+        - "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:
-        '200':
-          description: OK
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/NetSliceInstance'
+                $ref: '#/components/schemas/ObjectId'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/NetSliceInstance'
+                $ref: '#/components/schemas/ObjectId'
+        '202':
+          description: Accepted
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2810,15 +3077,33 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+    get:
       tags:
-        - "NetSlice instances"
-      summary: Delete an individual NetSlice instance resource
-      description: Delete an individual NetSlice instance resource
-      operationId: deleteNSI
+        - "NetSlice templates"
+      summary: Query information about multiple NetSlice Template resources
+      description: Query information about multiple NetSlice Template resources
+      operationId: getNstContent
       responses:
-        '204':
-          description: No Content
+        '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':
@@ -2843,45 +3128,30 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/instantiate':
+  '/nst/v1/netslice_templates_content/{netsliceTemplateContentId}':
     parameters:
-      - name: netsliceInstanceId
+      - name: netsliceTemplateContentId
         in: path
         required: true
-        description: NetSlice Instance ID
+        description: NetSlice Template ID
         schema:
-          type : string
-    post:
+          type: string
+    get:
       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'
+        - "NetSlice templates"
+      summary: Read information about an individual NetSlice Template resource
+      description: Read information about an individual NetSlice Template resource
+      operationId: getNstIdContent
       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
+        '200':
+          description: OK
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ObjectId'
+                $ref: '#/components/schemas/NstInfo'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/ObjectId'
+                $ref: '#/components/schemas/NstInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2906,46 +3176,17 @@ paths:
           $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:
+    put:
       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
+        - "NetSlice templates"
+      summary: Modify an individual NetSlice Template resource
+      description: Modify an individual NetSlice Template resource
+      operationId: updateNstIdContent
       requestBody:
-        # Request data is not required
-        $ref: '#/components/requestBodies/TerminateNsiRequest'
+        $ref: '#/components/requestBodies/NstInfoModifications'
       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'
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -2970,48 +3211,15 @@ paths:
           $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:
+    delete:
       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'
+        - "NetSlice templates"
+      summary: Delete an individual NetSlice Template resource
+      description: Delete an individual NetSlice Template resource
+      operationId: deleteNstIdContent
       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'
+        '204':
+          description: No Content
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -3036,13 +3244,16 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nsilcm/v1/netslice_instances_content':
+# 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: getNSIsContent
+      operationId: getNSIs
       responses:
         '200':
           description: OK
@@ -3080,11 +3291,11 @@ paths:
     post:
       tags:
         - "NetSlice instances"
-      summary: Create a new NetSlice instance
-      description: Create a new NetSlice instance
-      operationId: createNSIContent
+      summary: Create a new NetSlice instance resource
+      description: Create a new NetSlice instance resource
+      operationId: addNSI
       requestBody:
-        $ref: '#/components/requestBodies/CreateNsiContentRequest'
+        $ref: '#/components/requestBodies/InstantiateNsiRequest'
       responses:
         '201':
           description: Created
@@ -3096,10 +3307,10 @@ paths:
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/CreateNsiContentResponse'
+                $ref: '#/components/schemas/ObjectId'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/CreateNsiContentResponse'
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -3124,20 +3335,20 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nsilcm/v1/netslice_instances_content/{netsliceInstanceContentId}':
+  '/nsilcm/v1/netslice_instances/{netsliceInstanceId}':
     parameters:
-      - name: netsliceInstanceContentId
+      - name: netsliceInstanceId
         in: path
         required: true
-        description: NetSlice Instance Content ID
+        description: NetSlice Instance ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NetSlice instances"
       summary: Read an individual NetSlice instance resource
       description: Read an individual NetSlice instance resource
-      operationId: getNSIContent
+      operationId: getNSI
       responses:
         '200':
           description: OK
@@ -3175,19 +3386,10 @@ paths:
     delete:
       tags:
         - "NetSlice instances"
-      summary: Delete an individual NS instance resource
-      description: Delete an individual NS instance resource
-      operationId: deleteNSIContent
+      summary: Delete an individual NetSlice instance resource
+      description: Delete an individual NetSlice instance resource
+      operationId: deleteNSI
       responses:
-        '202':
-          description: Accepted
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/ObjectId'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/ObjectId'
         '204':
           description: No Content
         '400':
@@ -3214,23 +3416,45 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nsilcm/v1/nsi_lcm_op_occs':
-    get:
+  '/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: Query information about multiple NetSlice LCM Operation Occurrences
-      description: Query information about multiple NetSlice LCM Operation Occurrences
-      operationId: getNsiLcmOpOccs
+      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:
-        '200':
-          description: OK
+        '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/ArrayOfNsiLcmOpOcc'
+                $ref: '#/components/schemas/ObjectId'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/ArrayOfNsiLcmOpOcc'
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -3255,30 +3479,46 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nsilcm/v1/nsi_lcm_op_occs/{nsiLcmOpOccId}':
+  '/nsilcm/v1/netslice_instances/{netsliceInstanceId}/terminate':
     parameters:
-      - name: nsiLcmOpOccId
+      - name: netsliceInstanceId
         in: path
         required: true
-        description: NetSlice LCM Operation Occurrence ID
+        description: NetSlice Instance ID
         schema:
-          type : string
-    get:
+          type: string
+    post:
       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
+      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:
-        '200':
-          description: OK
+        '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/NsiLcmOpOcc'
+                $ref: '#/components/schemas/ObjectId'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/NsiLcmOpOcc'
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -3303,76 +3543,2941 @@ paths:
           $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:
+  '/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/InstantiateNsiRequest'
+      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/{nsId}':
+    parameters:
+      - name: pmJobId
+        in: path
+        required: true
+        description: NS PM Job ID
+        schema:
+          type: string
+      - name: nsId
+        in: path
+        required: true
+        description: NS ID
+        schema:
+          type: string
+    get:
+      tags:
+        - "NS Performance Management"
+      summary: Query information about an individual NS PM Job Report
+      description: Query information about an individual NS PM Job Report
+      operationId: getNsPmJobReport
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsPmJobReportInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsPmJobReportInfo'
+        '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 NSPM
+
+# BEGIN PDU
+  '/pdu/v1/pdu_descriptors':
+    get:
+      tags:
+        - "Physical Data Units (PDU)"
+      summary: Query information about multiple PDU Descriptors
+      description: Query information about multiple PDU Descriptors
+      operationId: getPDUs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfPduInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfPduInfo'
+        '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:
+        - "Physical Data Units (PDU)"
+      summary: Create a new PDU
+      description: Create a new PDU Descriptor
+      operationId: createPDU
+      requestBody:
+        $ref: '#/components/requestBodies/CreatePduRequest'
+      responses:
+        '200':
+          description: OK
+          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'
+  '/pdu/v1/pdu_descriptors/{pduDescriptorId}':
+    parameters:
+      - name: pduDescriptorId
+        in: path
+        required: true
+        description: PDU Descriptor ID
+        schema:
+          type: string
+    get:
+      tags:
+        - "Physical Data Units (PDU)"
+      summary: Query information about an individual PDU Descriptor
+      description: Query information about an individual PDU Descriptor
+      operationId: getPDU
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/PduInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/PduInfo'
+        '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:
+        - "Physical Data Units (PDU)"
+      summary: Modify an individual PDU Descriptor
+      description: Modify an individual PDU Descriptor
+      operationId: editPDU
+      requestBody:
+        $ref: '#/components/requestBodies/EditPduRequest'
+      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:
+        - "Physical Data Units (PDU)"
+      summary: Delete an individual PDU Descriptor
+      description: Delete an individual PDU Descriptor
+      operationId: deletePDU
+      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 PDU
+
+# BEGIN Admin
+  '/admin/v1/tokens':
+    get:
+      tags:
+        - "Authentication"
+        - "Admin"
+      summary: Query information about multiple Tokens
+      description: Query information about multiple Tokens
+      operationId: getTokens
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfTokenInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfTokenInfo'
+        '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:
+        - "Authentication"
+        - "Admin"
+      summary: Request a new Token
+      description: Request a new Token
+      operationId: createToken
+      requestBody:
+        $ref: '#/components/requestBodies/CreateTokenRequest'
+      responses:
+        '200':
+          description: OK
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                oneOf:
+                  - $ref: '#/components/schemas/TokenInfo'
+                  - $ref: '#/components/schemas/PasswordExpiryInfo'
+            application/yaml:
+              schema:
+                oneOf:
+                  - $ref: '#/components/schemas/TokenInfo'
+                  - $ref: '#/components/schemas/PasswordExpiryInfo'
+        '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:
+        - "Authentication"
+        - "Admin"
+      summary: Delete the Token indicated in the Authorization Header
+      description: Delete the Token indicated in the Authorization Header
+      operationId: deleteAuthToken
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                type: string
+            application/yaml:
+              schema:
+                type: string
+        '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'
+  '/admin/v1/tokens/{tokenId}':
+    parameters:
+      - name: tokenId
+        in: path
+        required: true
+        description: Token ID
+        schema:
+          type: string
+    get:
+      tags:
+        - "Authentication"
+        - "Admin"
+      summary: Query information about an individual Token
+      description: Query information about an individual Token
+      operationId: getToken
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TokenInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/TokenInfo'
+        '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:
+        - "Authentication"
+        - "Admin"
+      summary: Delete the Token indicated as parameter
+      description: Delete the Token indicated as parameter
+      operationId: deleteToken
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                type: string
+            application/yaml:
+              schema:
+                type: string
+        '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'
+  '/admin/v1/users':
+    get:
+      tags:
+        - "Identity"
+        - "Admin"
+      summary: Query information about multiple Users
+      description: Query information about multiple Users
+      operationId: getUsers
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfUserInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfUserInfo'
+        '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:
+        - "Identity"
+        - "Admin"
+      summary: Create a new User
+      description: Create a new User
+      operationId: createUser
+      requestBody:
+        $ref: '#/components/requestBodies/CreateUserRequest'
+      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'
+  '/admin/v1/users/{userId}':
+    parameters:
+      - name: userId
+        in: path
+        required: true
+        description: User ID/Name
+        schema:
+          type: string
+    get:
+      tags:
+        - "Identity"
+        - "Admin"
+      summary: Query information about an individual User
+      description: Query information about an individual User
+      operationId: getUser
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/UserInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/UserInfo'
+        '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:
+        - "Identity"
+        - "Admin"
+      summary: Modify a User
+      description: Modify a User
+      operationId: editUser
+      requestBody:
+        $ref: '#/components/requestBodies/EditUserRequest'
+      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:
+        - "Identity"
+        - "Admin"
+      summary: Delete a User
+      description: Delete a User
+      operationId: deleteUser
+      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'
+  '/admin/v1/projects':
+    get:
+      tags:
+        - "Identity"
+        - "Admin"
+      summary: Query information about multiple Projects
+      description: Query information about multiple Projects
+      operationId: getProjects
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfProjectInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfProjectInfo'
+        '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:
+        - "Identity"
+        - "Admin"
+      summary: Create a new Project
+      description: Create a new Project
+      operationId: createProject
+      requestBody:
+        $ref: '#/components/requestBodies/CreateProjectRequest'
+      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'
+  '/admin/v1/projects/{projectId}':
+    parameters:
+      - name: projectId
+        in: path
+        required: true
+        description: Project ID/Name
+        schema:
+          type: string
+    get:
+      tags:
+        - "Identity"
+        - "Admin"
+      summary: Query information about an individual Project
+      description: Query information about an individual Project
+      operationId: getProject
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ProjectInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ProjectInfo'
+        '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:
+        - "Identity"
+        - "Admin"
+      summary: Modify a Project
+      description: Modify a Project
+      operationId: editProject
+      requestBody:
+        $ref: '#/components/requestBodies/EditProjectRequest'
+      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:
+        - "Identity"
+        - "Admin"
+      summary: Delete a Project
+      description: Delete a Project
+      operationId: deleteProject
+      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'
+  '/admin/v1/roles':
+    get:
+      tags:
+        - "Identity"
+        - "Admin"
+      summary: Query information about multiple Roles
+      description: Query information about multiple Roles
+      operationId: getRoles
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfRoleInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfRoleInfo'
+        '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:
+        - "Identity"
+        - "Admin"
+      summary: Create a new Role
+      description: Create a new Role
+      operationId: createRole
+      requestBody:
+        $ref: '#/components/requestBodies/CreateRoleRequest'
+      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'
+  '/admin/v1/roles/{roleId}':
+    parameters:
+      - name: roleId
+        in: path
+        required: true
+        description: Role ID/Name
+        schema:
+          type: string
+    get:
+      tags:
+        - "Identity"
+        - "Admin"
+      summary: Query information about an individual Role
+      description: Query information about an individual Role
+      operationId: getRole
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/RoleInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/RoleInfo'
+        '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:
+        - "Identity"
+        - "Admin"
+      summary: Modify a Role
+      description: Modify a Role
+      operationId: editRole
+      requestBody:
+        $ref: '#/components/requestBodies/EditRoleRequest'
+      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:
+        - "Identity"
+        - "Admin"
+      summary: Delete a Role
+      description: Delete a Role
+      operationId: deleteRole
+      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'
+  '/admin/v1/vims':
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about multiple VIMs
+      description: Query information about multiple VIMs
+      operationId: getVIMs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVimInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVimInfo'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Create a new VIM
+      description: Create a new VIM
+      operationId: createVIM
+      requestBody:
+        $ref: '#/components/requestBodies/CreateVimRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+        '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'
+  '/admin/v1/vims/{vimId}':
+    parameters:
+      - name: vimId
+        in: path
+        required: true
+        description: VIM ID
+        schema:
+          type: string
+          format: uuid
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about an individual VIM
+      description: Query information about an individual VIM
+      operationId: getVIM
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/VimInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/VimInfo'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Modify a VIM
+      description: Modify a VIM
+      operationId: editVIM
+      requestBody:
+        $ref: '#/components/requestBodies/EditVimRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/OpId'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Delete a VIM
+      description: Delete a VIM
+      operationId: deleteVIM
+      responses:
+        '202':
+          description: Accepted
+        '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'
+  '/admin/v1/vim_accounts':
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about multiple VIM Accounts
+      description: Query information about multiple VIM Accounts
+      operationId: getVimAccounts
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVimInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVimInfo'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Create a new VIM Account
+      description: Create a new VIM Account
+      operationId: createVimAccount
+      requestBody:
+        $ref: '#/components/requestBodies/CreateVimRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+        '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'
+  '/admin/v1/vim_accounts/{vimAccountId}':
+    parameters:
+      - name: vimAccountId
+        in: path
+        required: true
+        description: VIM Account ID
+        schema:
+          type: string
+          format: uuid
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about an individual VIM Account
+      description: Query information about an individual VIM Account
+      operationId: getVimAccount
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/VimInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/VimInfo'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Modify a VIM Account
+      description: Modify a VIM Account
+      operationId: editVimAccount
+      requestBody:
+        $ref: '#/components/requestBodies/EditVimRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/OpId'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Delete a VIM Account
+      description: Delete a VIM Account
+      operationId: deleteVimAccount
+      responses:
+        '202':
+          description: Accepted
+        '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'
+  '/admin/v1/wim_accounts':
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about multiple WIM Accounts
+      description: Query information about multiple WIM Accounts
+      operationId: getWimAccounts
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfWimInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfWimInfo'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Create a new WIM Account
+      description: Create a new WIM Account
+      operationId: createWimAccount
+      requestBody:
+        $ref: '#/components/requestBodies/CreateWimRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+        '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'
+  '/admin/v1/wim_accounts/{wimAccountId}':
+    parameters:
+      - name: wimAccountId
+        in: path
+        required: true
+        description: WIM Account ID
+        schema:
+          type: string
+          format: uuid
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about an individual WIM Account
+      description: Query information about an individual WIM Account
+      operationId: getWimAccount
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/WimInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/WimInfo'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Modify a WIM Account
+      description: Modify a WIM Account
+      operationId: editWimAccount
+      requestBody:
+        $ref: '#/components/requestBodies/EditWimRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/OpId'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Delete a WIM Account
+      description: Delete a WIM Account
+      operationId: deleteWimAccount
+      responses:
+        '202':
+          description: Accepted
+        '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'
+  '/admin/v1/sdns':
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about multiple SDNs
+      description: Query information about multiple SDNs
+      operationId: getSDNs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfSdnInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfSdnInfo'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Create a new SDN
+      description: Create a new SDN
+      operationId: createSDN
+      requestBody:
+        $ref: '#/components/requestBodies/CreateSdnRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+        '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'
+  '/admin/v1/sdns/{sdnId}':
+    parameters:
+      - name: sdnId
+        in: path
+        required: true
+        description: SDN ID
+        schema:
+          type: string
+          format: uuid
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about an individual SDN
+      description: Query information about an individual SDN
+      operationId: getSDN
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/SdnInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/SdnInfo'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Modify a SDN
+      description: Modify a SDN
+      operationId: editSDN
+      requestBody:
+        $ref: '#/components/requestBodies/EditSdnRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/OpId'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Delete a SDN
+      description: Delete a SDN
+      operationId: deleteSDN
+      responses:
+        '202':
+          description: Accepted
+        '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'
+  '/admin/v1/k8sclusters':
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about multiple K8s Clusters
+      description: Query information about multiple K8s Clusters
+      operationId: getK8sClusters
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfK8sClusterInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfK8sClusterInfo'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Create a new K8s Cluster
+      description: Create a new K8s Cluster
+      operationId: createK8sCluster
+      requestBody:
+        $ref: '#/components/requestBodies/CreateK8sClusterRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+        '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'
+  '/admin/v1/k8sclusters/{k8sClusterId}':
+    parameters:
+      - name: k8sClusterId
+        in: path
+        required: true
+        description: K8s Cluster ID
+        schema:
+          type: string
+          format: uuid
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about an individual K8s Cluster
+      description: Query information about an individual K8s Cluster
+      operationId: getK8sCluster
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/K8sClusterInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/K8sClusterInfo'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Modify a K8s Cluster
+      description: Modify a K8s Cluster
+      operationId: editK8sCluster
+      requestBody:
+        $ref: '#/components/requestBodies/EditK8sClusterRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/OpId'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Delete a K8s Cluster
+      description: Delete a K8s Cluster
+      operationId: deleteK8sCluster
+      responses:
+        '202':
+          description: Accepted
+        '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'
+  '/admin/v1/vca':
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about multiple VCAs
+      description: Query information about multiple VCAs
+      operationId: getVcas
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVcaInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfVcaInfo'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Create a new VCA
+      description: Create a new VCA
+      operationId: createVca
+      requestBody:
+        $ref: '#/components/requestBodies/CreateVcaRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+        '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'
+  '/admin/v1/vca/{vcaId}':
+    parameters:
+      - name: vcaId
+        in: path
+        required: true
+        description: VCA ID
+        schema:
+          type: string
+          format: uuid
+    get:
+      tags:
+        - "Infrastructure"
+        - "Admin"
+      summary: Query information about an individual VCA
+      description: Query information about an individual VCA
+      operationId: getVca
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/VcaInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/VcaInfo'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Modify a VCA
+      description: Modify a VCA
+      operationId: editVca
+      requestBody:
+        $ref: '#/components/requestBodies/EditVcaRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/OpId'
+        '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:
+        - "Infrastructure"
+        - "Admin"
+      summary: Delete a VCA
+      description: Delete a VCA
+      operationId: deleteVca
+      responses:
+        '202':
+          description: Accepted
+        '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'
+  '/admin/v1/k8srepos':
+    get:
+      tags:
+        - "Repositories"
+        - "Admin"
+      summary: Query information about multiple K8s Repos
+      description: Query information about multiple K8s Repos
+      operationId: getK8sRepos
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfK8sRepoInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfK8sRepoInfo'
+        '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:
+        - "Repositories"
+        - "Admin"
+      summary: Create a new K8s Repo
+      description: Create a new K8s Repo
+      operationId: createK8sRepo
+      requestBody:
+        $ref: '#/components/requestBodies/CreateK8sRepoRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId_plus_OpId'
+        '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'
+  '/admin/v1/k8srepos/{k8sRepoId}':
+    parameters:
+      - name: k8sRepoId
+        in: path
+        required: true
+        description: K8s Repo ID
+        schema:
+          type: string
+          format: uuid
+    get:
+      tags:
+        - "Repositories"
+        - "Admin"
+      summary: Query information about an individual K8s Repo
+      description: Query information about an individual K8s Repo
+      operationId: getK8sRepo
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/K8sRepoInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/K8sRepoInfo'
+        '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:
+        - "Repositories"
+        - "Admin"
+      summary: Delete a K8s Repo
+      description: Delete a K8s Repo
+      operationId: deleteK8sRepo
+      responses:
+        '202':
+          description: Accepted
+        '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 Admin
+
+externalDocs:
+  description: Find out more about OSM
+  url: 'https://osm.etsi.org/docs/user-guide/'
+
+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:
@@ -3430,666 +6535,2710 @@ components:
           schema:
             $ref: '#/components/schemas/NsPackage'
     NetSliceTemplate:
-      description: NetSlice Template (plaintext)
-      content:
-        text/plain:
-          schema:
-            $ref: '#/components/schemas/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'
+    NslcmSubscriptionResponse:
+      description: NslcmSubscriptionResponse
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/NslcmSubscriptionResponse'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/NslcmSubscriptionResponse'
+  # 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
+    AlarmInfoModifications:
+      description: |
+        Alarm Information
+      type: object
+      properties:
+        id:
+          description: UUID
+          type: string
+        is_enable:
+          description: To enable/disable the alarm.
+          type: string
+        threshold:
+          description: Threshold value of the Alarm
+          type: string
+    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
+      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
+    VnfPkgInfo:
+      description: |
+        VNF Package Information
+        Only generic fields (_id, id, name, description) are described
+        For a full specification of the VNF Descriptor see:
+        http://osm-download.etsi.org/ftp/osm-doc/vnfd.html
+      type: object
+      properties:
+        _id:
+          description: |
+            Identifier of the VNF package. This identifier is allocated by the NFVO.
+          type: string
+          format: uuid
+        id:
+          description: VNF Package Identifier
+          type: string
+        name:
+          description: VNF Package Name
+          type: string
+        description:
+          description: VNF Package description
+          type: string
+      required:
+        - _id
+        - id
+    ArrayOfVnfPkgInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/VnfPkgInfo'
+    # CreateNsRequest:
+      # Substituted by InstantiateNsRequest
+    NsInstance:
+      description: |
+        NS Instance Information
+        Only generic fields (_id, id, name, description) are described
+        For a full specification of the NS Instance see:
+        http://osm-download.etsi.org/ftp/osm-doc/nsr.html
+      type: object
+      properties:
+        _id:
+          description: Identifier of the NS instance.
+          type: string
+          format: uuid
+        id:
+          description: Identifier of the NS instance.
+          type: string
+          format: uuid
+        name:
+          description: Human readable name of the NS instance.
+          type: string
+        description:
+          description: Human readable description of the NS instance.
+          type: string
+      required:
+        - _id
+        - id
+        - name
+    InstantiateNsRequest:
+      type: object
+      properties:
+        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
+        lcmOperationType:
+          type: string
+        nsInstanceId:
+          type: string
+          format: uuid
+        netsliceInstanceId:
+          type: string
+          format: uuid
+        nsDescription:
+          type: string
+          nullable: true
+        wimAccountId:
+          oneOf:
+            - type: string
+            - type: boolean
+          nullable: true
+        additionalParamsForNs:
+          type: object
+          additionalProperties: true
+        additionalParamsForVnf: &additionalparamsforvnf
+          type: array
+          items:
+            type: object
+            properties:
+              member-vnf-index:
+                type: string
+              additionalParams:
+                type: object
+                additionalProperties: true
+              k8s-namespace:
+                type: string
+                description: |
+                  use this namespace for all the KDU deployed in this VNF
+                  (if any). By default it is used the id of the project
+              additionalParamsForVdu:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    vdu_id:
+                      type: string
+                    additionalParams:
+                      type: object
+                      additionalProperties: true
+                  required:
+                    - vdu_id
+                    - additionalParams
+                  additionalProperties: false
+              additionalParamsForKdu:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    kdu_name:
+                      type: string
+                    k8s-namespace:
+                      type: string
+                      description: use this namespace for this KDU
+                    kdu_model:
+                      type: string
+                    additionalParams:
+                      type: object
+                      additionalProperties: true
+                  required:
+                    - kdu_name
+                  minProperties: 2
+                  additionalProperties: false
+            required:
+              - member-vnf-index
+            minProperties: 2
+            additionalProperties: false
+        ssh_keys:
+          type: array
+          items:
+            type: string
+        nsr_id:
+          type: string
+          format: uuid
+        vduImage:
+          type: string
+        placement-engine:
+          type: string
+          description: |
+           To compute automatically the target VIM for each VNF based on 
+           constrains, e.g. latency. Currently only 'PLA' is supported
+        placement-constraints:
+          type: object
+          additionalProperties: true
+        k8s-namespace:
+          type: string
+        timeout_ns_deploy:
+          type: integer
+        vnf:
+          type: array
+          items:
+            type: object
+            properties:
+              member-vnf-index:
+                type: string
+              vimAccountId:
+                type: string
+                format: uuid
+              vdu:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    id:
+                      type: string
+                    volume:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          name:
+                            type: string
+                          vim-volume-id:
+                            type: string
+                        required:
+                          - name
+                          - vim-volume-id
+                        additionalProperties: false
+                      minItems: 1
+                    interface:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          name:
+                            type: string
+                          ip-address:
+                            type: string
+                            format: ipv4
+                          mac-address:
+                            type: string
+                            format: mac_address
+                          floating-ip-required:
+                            type: boolean
+                        required:
+                          - name
+                        additionalProperties: false
+                      minItems: 1
+                  required:
+                    - id
+                  additionalProperties: false
+                minItems: 1
+              internal-vld:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    name:
+                      type: string
+                    vim-network-name:
+                      type: string
+                    vim-network-id:
+                      type: string
+                    ip-profile:
+                      type: object
+                      properties:
+                        ip-version:
+                          type: string
+                          enum:
+                            - ipv4
+                            - ipv6
+                        subnet-address:
+                          type: string
+                          format: ip_prefix
+                          nullable: true
+                        gateway-address:
+                          type: string
+                          format: ipv4
+                          nullable: true
+                        dns-server:
+                          type: array
+                          items:
+                            type: object
+                            properties:
+                              address:
+                                type: string
+                                format: ipv4
+                            required:
+                              - address
+                            additionalProperties: false
+                          minItems: 1
+                          nullable: true
+                        dhcp-params:
+                          type: object
+                          properties:
+                            enabled:
+                              type: boolean
+                            count:
+                              type: integer
+                              minimum: 1
+                            start-address:
+                              type: string
+                              format: ipv4
+                          additionalProperties: false
+                          nullable: true
+                      additionalProperties: false
+                    provider-network:
+                      type: object
+                      properties:
+                        physical-network:
+                          type: string
+                        segmentation-id:
+                          type: string
+                        network-type:
+                          type: string
+                        sdn-ports:
+                          description: |
+                            connect additional ports to the created underlay SDN connectivity.
+                            Normally for external connectivy.
+                          type: array
+                          items:
+                            type: object
+                            properties:
+                              switch_id:
+                                type: string
+                              switch_port:
+                                type: string
+                              mac_address:
+                                type: string
+                                format: mac_address
+                              vlan:
+                                type: integer
+                            additionalProperties: true
+                            required:
+                              - switch_id
+                              - switch_port
+                          minItems: 1
+                      additionalProperties: false
+                    internal-connection-point:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          id-ref:
+                            type: string
+                          ip-address:
+                            type: string
+                            format: ipv4
+                        required:
+                          - id-ref
+                        minProperties: 2
+                        additionalProperties: False
+                      minItems: 1
+                  required:
+                    - name
+                  minProperties: 2
+                  additionalProperties: false
+                minItems: 1
+            required:
+              - member-vnf-index
+            minProperties: 2
+            additionalProperties: false
+          minItems: 1
+        vld:
+          type: array
+          items:
+            type: object
+            properties:
+              name:
+                type: string
+              vim-network-name:
+                oneOf:
+                  - type: string
+                  - type: object
+              vim-network-id:
+                oneOf:
+                  - type: string
+                  - type: object
+              ns-net:
+                type: object
+                additionalProperties: true
+              wimAccountId:
+                oneOf:
+                  - type: string
+                  - type: boolean
+                nullable: true
+              ip-profile:
+                type: object
+                additionalProperties: true
+              provider-network:
+                type: object
+                properties:
+                  physical-network:
+                    type: string
+                  segmentation-id:
+                    type: string
+                additionalProperties: false
+              vnfd-connection-point-ref:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    member-vnf-index-ref:
+                      type: string
+                    vnfd-connection-point-ref:
+                      type: string
+                    ip-address:
+                      type: string
+                      format: ipv4
+                  required:
+                    - member-vnf-index-ref
+                    - vnfd-connection-point-ref
+                  minProperties: 3
+                  additionalProperties: false
+                minItems: 1
+            required:
+              - name
+            additionalProperties: false
+          minItems: 1
+      required:
+        - nsName
+        - nsdId
+        - vimAccountId
+      additionalProperties: false
+    ScaleNsRequest:
+      type: object
+      properties:
+        scaleType:
+          type: string
+          enum:
+            - SCALE_VNF
+        timeout_ns_scale:
+          description: timeout for the scale operation
+          type: integer
+        scaleVnfData:
+          type: object
+          properties:
+            scaleVnfType:
+              type: string
+              enum:
+                - SCALE_IN
+                - SCALE_OUT
+            scaleByStepData:
+              type: object
+              properties:
+                scaling-group-descriptor:
+                  type: string
+                scaling-policy:
+                  type: string
+                member-vnf-index:
+                  type: string
+              required:
+                - scaling-group-descriptor
+                - member-vnf-index
+              additionalProperties: false
+          required:
+            - scaleVnfType
+            - scaleByStepData
+          additionalProperties: false
+      required:
+        - scaleType
+        - scaleVnfData
+      additionalProperties: false
+    HealNsRequest:
+      description: >
+        This type represents request parameters for the "Heal NS" operation. This operation supports the healing of an NS
+        instance by healing one or more of the VNF that are part of this NS.
+      type: object
+      properties:
+        timeout_ns_heal:
+          description: timeout for the heal operation in seconds
+          type: integer
+        healVnfData:
+          description: >
+            List of VNF to be healed, together with the information needed to heal each.
+          type: array
+          items:
+            $ref: "#/components/schemas/HealVnfData"
+      required:
+        - healVnfData
+    HealVnfData:
+      description: >
+        This type represents the information to heal a VNF that is part of an NS.
+      type: object
+      required:
+        - vnfInstanceId
+      properties:
+        vnfInstanceId:
+          description: >
+            Identifies the VNF instance, part of the NS, requiring a
+            healing action.
+          type: string
+          format: uuid
+        cause:
+          description: >
+            Indicates the reason why a healing procedure is required.
+          type: string
+        additionalParams:
+          description: >
+            Additional parameters passed by the NFVO as input to
+            the healing process, specific to the VNF being healed.
+          type: object
+          properties:
+            run-day1:
+              description: >
+                Flag to indicate whether or not to run day1 primitives for the VNF (default: false).
+              type: boolean
+              default: false
+            vdu:
+              description: >
+                List of VDU to be healed, together with the information needed to heal each.
+              type: array
+              items:
+                $ref: "#/components/schemas/HealVduData"
+    HealVduData:
+      description: >
+        This type represents the information to heal a VDU that is part of a VNF.
+      type: object
+      required:
+        - vdu-id
+      properties:
+        vdu-id:
+          description: >
+            Identifies the VDU id, part of the VNF, requiring a healing action.
+          type: string
+          format: uuid
+        count-index:
+          description: >
+            Indicates the VDU number when the VDU is part of a scale-group.
+          type: integer
+          minimum: 0
+        run-day1:
+          description: >
+            Flag to indicate whether or not to run day1 primitives for the VDU (default: false).
+          type: boolean
+          default: false
+    NSinstanceMigrateRequest:
+      description: >
+        This type represents request parameters for the "Migrate" operation. This operation supports the migration of an NS
+        instance by migrating one or more of the VDUs that are part of this NS.
+      type: object
+      properties:
+        vnfInstanceId:
+          type: string
+        migrateToHost:
+          type: string
+        vdu:
+          type: object
+          properties:
+            vduId:
+              type: string
+            vduCountIndex:
+              type: integer
+          required:
+            - vduId
+      required:
+        - vnfInstanceId
+      additionalProperties: false
+    TerminateNsRequest:
+      type: object
+      properties:
+        timeout_ns_terminate:
+          description: timeout for terminate operation
+          type: integer
+        autoremove:
+          description: remove network service if termination end without error
+          type: boolean
+        skip_terminate_primitives:
+          description: Do not execute network service termination primitives
+          type: boolean
+      additionalProperties: false
+    ArrayOfNsInstance:
+      type: array
+      items:
+        $ref: '#/components/schemas/NsInstance'
+    NSinstanceActionRequest:
+      type: object
+      properties:
+        primitive:
+          type: string
+          description: |
+            name of the primitive in the 'config-descriptor'. If the target is
+            a kdu it can be also 'status', 'rollback' or 'upgrade'
+        primitive_params:
+          description: parameters of this primitive
+          $ref: '#/components/schemas/KeyValuePairs'
+        member_vnf_index:
+          type: string
+          description: provide if the target action is for a vnf, vdu or kdu
+        vdu_id:
+          type: string
+          description: provide if the target action is for a vdu
+        kdu_name:
+          type: string
+          description: provide if the target action is for a kdu
+        vdu_count_index:
+          type: integer
+        timeout_ns_action:
+          description: timeout for the day 1/2 operation
+          type: integer
+      required:
+        - primitive
+        - primitive_params
+      additionalProperties: false
+    UpdateNsRequest:
+      description: >
+        This type represents request parameters for the "Update NS" operation. This operation supports the update of an NS
+        instance by updating one or more of the VNFs that are part of this NS.
+      type: object
+      properties:
+        updateType:
+          type: string
+          enum:
+            - CHANGE_VNFPKG
+            - REMOVE_VNF
+            - MODIFY_VNF_INFORMATION
+            - OPERATE_VNF
+        changeVnfPackageData:
+          type: object
+          properties:
+            vnfInstanceId:
+              type: string
+            vnfdId:
+              type: string
+          required:
+            - vnfInstanceId
+            - vnfdId
+        removeVnfInstanceId:
+          type: string
+        modifyVnfInfoData:
+          type: object
+          properties:
+            vnfInstanceId:
+              type: string
+            vnfdId:
+              type: string
+          required:
+            - vnfInstanceId
+            - vnfdId
+        operateVnfData:
+          type: object
+          properties:
+            vnfInstanceId:
+              type: string
+            changeStateTo:
+              type: string
+            additionalParam:
+              type: object
+              properties:
+                run-day1:
+                  type: boolean
+                vdu_id:
+                  type: string
+                count-index:
+                  type: number
+              required:
+                - vdu_id
+                - count-index
+          required:
+            - vnfInstanceId
+            - changeStateTo
+          additionalProperties: false
+      required:
+        - updateType
+      additionalProperties: false
+    VerticalscaleNsRequest:
+      description: >
+        This type represents request parameters for the "Vertical Scale NS" operation.
+        This operation supports the vertical scale of an NS instance by verticalscaling
+        one or more of the VNFs that are part of this NS.
+      type: object
+      properties:
+        verticalScale:
+          type: string
+        changeVnfFlavorData:
+          type: object
+          properties:
+            vnfInstanceId:
+              type: string
+              format: uuid
+            additionalParams:
+              type: object
+              properties:
+                vduid:
+                  type: string
+                  format: uuid
+                vduCountIndex:
+                  type: integer
+                virtualMemory:
+                  type: integer
+                sizeOfStorage:
+                  type: integer
+                numVirtualCpu:
+                  type: integer
+          required:
+            - vnfInstanceId
+            - additionalParams
+          additionalProperties: false
+      required:
+        - verticalScale
+      additionalProperties: false
+    # CreateNSinstanceContentRequest:
+      # Substituted by InstantiateNsRequest
+    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
+    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
+    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:
-      description: NetSlice Package (compressed)
-      content:
-        application/zip:
-          schema:
-            $ref: '#/components/schemas/NetSlicePackage'
-  # END RESPONSES
-
-  schemas:
-    ObjectId:
+      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
+    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
+      required:
+        - _id
+        - id
+        - name
+    ArrayOfNetSliceInstance:
+      type: array
+      items:
+        $ref: '#/components/schemas/NetSliceInstance'
+    Alarm:
+      description: |
+        Alarm Information
+      type: object
+      properties:
+        _id:
+          description: Identifier of the Alarm.
+          type: string
+          format: uuid
+        id:
+          description: Identifier of the Alarm.
+          type: string
+          format: uuid
+        metric:
+          description: Alarm metric.
+          type: string
+        threshold:
+          description: Threshold value of the Alarm.
+          type: number
+          format: float
+        operation:
+          description: Operation to be applied.
+          type: string
+        action:
+          description: Action to be taken.
+          type: string
+        status:
+          description: Current status of the alarm.
+          type: string
+      required:
+        - _id
+        - id
+        - metric
+        - threshold
+        - operation
+    ArrayOfAlarm:
+      type: array
+      items:
+        $ref: '#/components/schemas/Alarm'
+    # CreateNsiRequest:
+      # Substituted by InstantiateNsiRequest
+    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
+        lcmOperationType:
+          type: string
+        netsliceInstanceId:
+          type: string
+          format: uuid
+        nsiDescription:
+          type: string
+          nullable: true
+        ssh_keys:
+          type: string
+        nsi_id:
+          type: string
+          format: uuid
+        additionalParamsForNsi:
+          type: object
+          additionalProperties: true
+        netslice-subnet:
+          type: array
+          items:
+            type: object
+            properties:
+              id:
+                type: string
+              nsName:
+                type: string
+              nsdId:
+                type: string
+                format: uuid
+              vimAccountId:
+                type: string
+                format: uuid
+              lcmOperationType:
+                type: string
+              nsInstanceId:
+                type: string
+                format: uuid
+              netsliceInstanceId:
+                type: string
+                format: uuid
+              nsDescription:
+                type: string
+                nullable: true
+              wimAccountId:
+                oneOf:
+                  - type: string
+                  - type: boolean
+                nullable: true
+              additionalParamsForNs:
+                type: object
+                additionalProperties: true
+              additionalParamsForVnf: *additionalparamsforvnf
+              ssh_keys:
+                type: array
+                items:
+                  type: string
+              nsr_id:
+                type: string
+                format: uuid
+              vduImage:
+                type: string
+              vnf:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    member-vnf-index:
+                      type: string
+                    vimAccountId:
+                      type: string
+                      format: uuid
+                    vdu:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          id:
+                            type: string
+                          volume:
+                            type: array
+                            items:
+                              type: object
+                              properties:
+                                name:
+                                  type: string
+                                vim-volume-id:
+                                  type: string
+                              required:
+                                - name
+                                - vim-volume-id
+                              additionalProperties: false
+                            minItems: 1
+                          interface:
+                            type: array
+                            items:
+                              type: object
+                              properties:
+                                name:
+                                  type: string
+                                ip-address:
+                                  type: string
+                                  format: ipv4
+                                mac-address:
+                                  type: string
+                                  format: mac_address
+                                floating-ip-required:
+                                  type: boolean
+                              required:
+                                - name
+                              additionalProperties: false
+                            minItems: 1
+                        required:
+                          - id
+                        additionalProperties: false
+                      minItems: 1
+                    internal-vld:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          name:
+                            type: string
+                          vim-network-name:
+                            type: string
+                          vim-network-id:
+                            type: string
+                          ip-profile:
+                            type: object
+                            properties:
+                              ip-version:
+                                type: string
+                                enum:
+                                  - ipv4
+                                  - ipv6
+                              subnet-address:
+                                type: string
+                                format: ip_prefix
+                                nullable: true
+                              gateway-address:
+                                type: string
+                                format: ipv4
+                                nullable: true
+                              dns-server:
+                                type: array
+                                items:
+                                  type: object
+                                  properties:
+                                    address:
+                                      type: string
+                                      format: ipv4
+                                  required:
+                                    - address
+                                  additionalProperties: false
+                                minItems: 1
+                                nullable: true
+                              dhcp-params:
+                                type: object
+                                properties:
+                                  enabled:
+                                    type: boolean
+                                  count:
+                                    type: integer
+                                    minimum: 1
+                                  start-address:
+                                    type: string
+                                    format: ipv4
+                                additionalProperties: false
+                                nullable: true
+                            additionalProperties: false
+                          provider-network:
+                            type: object
+                            properties:
+                              physical-network:
+                                type: string
+                              segmentation-id:
+                                type: string
+                            additionalProperties: false
+                          internal-connection-point:
+                            type: array
+                            items:
+                              type: object
+                              properties:
+                                id-ref:
+                                  type: string
+                                ip-address:
+                                  type: string
+                                  format: ipv4
+                              required:
+                                - id-ref
+                              minProperties: 2
+                              additionalProperties: False
+                            minItems: 1
+                        required:
+                          - name
+                        minProperties: 2
+                        additionalProperties: false
+                      minItems: 1
+                  required:
+                    - member-vnf-index
+                  minProperties: 2
+                  additionalProperties: false
+                minItems: 1
+              vld:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    name:
+                      type: string
+                    vim-network-name:
+                      oneOf:
+                        - type: string
+                        - type: object
+                    vim-network-id:
+                      oneOf:
+                        - type: string
+                        - type: object
+                    ns-net:
+                      type: object
+                      additionalProperties: true
+                    wimAccountId:
+                      oneOf:
+                        - type: string
+                        - type: boolean
+                      nullable: true
+                    ip-profile:
+                      type: object
+                      additionalProperties: true
+                    provider-network:
+                      type: object
+                      properties:
+                        physical-network:
+                          type: string
+                        segmentation-id:
+                          type: string
+                      additionalProperties: false
+                    vnfd-connection-point-ref:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          member-vnf-index-ref:
+                            type: string
+                          vnfd-connection-point-ref:
+                            type: string
+                          ip-address:
+                            type: string
+                            format: ipv4
+                        required:
+                          - member-vnf-index-ref
+                          - vnfd-connection-point-ref
+                        minProperties: 3
+                        additionalProperties: false
+                      minItems: 1
+                  required:
+                    - name
+                  additionalProperties: false
+                minItems: 1
+            additionalProperties: false
+          minItems: 1
+        netslice-vld:
+          type: array
+          items:
+            type: object
+            properties:
+              name:
+                type: string
+              vim-network-name:
+                oneOf:
+                  - type: string
+                  - type: object
+              vim-network-id:
+                oneOf:
+                  - type: string
+                  - type: object
+              ip-profile:
+                type: object
+                additionalProperties: true
+            required:
+              - name
+            additionalProperties: false
+          minItems: 1
+      required:
+        - nsiName
+        - nstId
+        - vimAccountId
+      additionalProperties: false
+    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:
+      # Substituted by InstantiateNsiRequest
+    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'
+    TokenInfo:
+      type: object
+      properties:
+        _id:
+          type: string
+        id:
+          type: string
+        admin:
+          type: boolean
+        admin_show:
+          type: boolean
+        project_id:
+          type: string
+          format: uuid
+        user_id:
+          type: string
+          format: uuid
+        project_name:
+          type: string
+        username:
+          type: string
+        issued_at:
+          type: number
+          format: float
+        user_show:
+          type: boolean
+        last_login:
+          type: number
+          format: float
+        login_count:
+          type: number
+        expires:
+          type: number
+          format: float
+        remote_host:
+          type: string
+          format: ipv4
+        remote_port:
+          type: integer
+        roles:
+          type: array
+          items:
+            type: object
+            properties:
+              id:
+                type: string
+                format: uuid
+              name:
+                type: string
+    PasswordExpiryInfo:
+      type: object
+      properties:
+        id:
+          type: string
+        message:
+          type: string
+        user_id:
+          type: string
+          format: uuid
+    ArrayOfTokenInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/TokenInfo'
+    CreateTokenRequest:
+      type: object
+      properties:
+        username:
+          type: string
+        password:
+          type: string
+        project_id:
+          type: string
+      required:
+        - username
+        - password
+    UserInfo:
+      type: object
+      properties:
+        _id:
+          type: string
+          format: uuid
+        username:
+          type: string
+        password:
+          type: string
+        project_role_mappings:
+          type: array
+          items:
+            type: object
+            properties:
+              project:
+                type: string
+                format: uuid
+              role:
+                type: string
+                format: uuid
+              project_name:
+                type: string
+              role_name:
+                type: string
+        projects:
+          type: array
+          items:
+            type: string
+    ArrayOfUserInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/UserInfo'
+    ProjectRoleMappings:
+      type: array
+      items:
+        type: object
+        properties:
+          project:
+            type: string
+          role:
+            type: string
+      required:
+        - project
+        - role
+      additionalProperties: false
+    ProjectRoleMappingsOpt:
+      type: array
+      items:
+        type: object
+        properties:
+          project:
+            type: string
+          role:
+            type: string
+      required:
+        - project
+      additionalProperties: false
+    CreateUserRequest:
+      type: object
+      properties:
+        username:
+          type: string
+        password:
+          type: string
+        projects:
+          type: array
+          items:
+            type: string
+        project_role_mappings:
+          $ref: '#/components/schemas/ProjectRoleMappings'
+      required:
+        - username
+        - password
+      additionalProperties: false
+    ShortNameList:
+      type: array
+      items:
+        type: string
+    ArrayEditionSchema:
+      type: object
+      additionalProperties: true
+      minProperties: 1
+      description: |
+        Array edition keys must start with '$'
+        and follow the syntax defined in: https://osm.etsi.org/wikipub/index.php/NBI_API_Description
+    EditUserRequest:
+      type: object
+      properties:
+        username:
+          type: string
+        password:
+          type: string
+        old_password:
+          type: string
+        system_admin_id:
+          type: string
+          format: uuid
+        unlock:
+          type: boolean
+        renew:
+          type: boolean
+        projects:
+          oneOf:
+            - $ref: '#/components/schemas/ShortNameList'
+            - $ref: '#/components/schemas/ArrayEditionSchema'
+        project_role_mappings:
+          $ref: '#/components/schemas/ProjectRoleMappings'
+        add_project_role_mappings:
+          $ref: '#/components/schemas/ProjectRoleMappings'
+        remove_project_role_mappings:
+          $ref: '#/components/schemas/ProjectRoleMappingsOpt'
+    QuotasInfo:
+      type: object
+      properties:
+        vnfds:
+          type: integer
+          minimum: 0
+          nullable: false
+        nsds:
+          type: integer
+          minimum: 0
+          nullable: false
+        slice_templates:
+          type: integer
+          minimum: 0
+          nullable: false
+        pduds:
+          type: integer
+          minimum: 0
+          nullable: false
+        ns_instances:
+          type: integer
+          minimum: 0
+          nullable: false
+        slice_instances:
+          type: integer
+          minimum: 0
+          nullable: false
+        vim_accounts:
+          type: integer
+          minimum: 0
+          nullable: false
+        wim_accounts:
+          type: integer
+          minimum: 0
+          nullable: false
+        sdn_controllers:
+          type: integer
+          minimum: 0
+          nullable: false
+        k8sclusters:
+          type: integer
+          minimum: 0
+          nullable: false
+        vca:
+          type: integer
+          minimum: 0
+          nullable: false
+        k8srepos:
+          type: integer
+          minimum: 0
+          nullable: false
+        osmrepos:
+          type: integer
+          minimum: 0
+          nullable: false
+      additionalProperties: false
+    EditQuotasInfo:
+      type: object
+      properties:
+        vnfds:
+          type: integer
+          minimum: 0
+          nullable: true
+        nsds:
+          type: integer
+          minimum: 0
+          nullable: true
+        slice_templates:
+          type: integer
+          minimum: 0
+          nullable: true
+        pduds:
+          type: integer
+          minimum: 0
+          nullable: true
+        ns_instances:
+          type: integer
+          minimum: 0
+          nullable: true
+        slice_instances:
+          type: integer
+          minimum: 0
+          nullable: true
+        vim_accounts:
+          type: integer
+          minimum: 0
+          nullable: true
+        wim_accounts:
+          type: integer
+          minimum: 0
+          nullable: true
+        sdn_controllers:
+          type: integer
+          minimum: 0
+          nullable: true
+        k8sclusters:
+          type: integer
+          minimum: 0
+          nullable: true
+        vca:
+          type: integer
+          minimum: 0
+          nullable: true
+        k8srepos:
+          type: integer
+          minimum: 0
+          nullable: true
+        osmrepos:
+          type: integer
+          minimum: 0
+          nullable: true
+      additionalProperties: false
+    ProjectInfo:
+      type: object
+      properties:
+        _id:
+          type: string
+          format: uuid
+        name:
+          type: string
+        quotas:
+          $ref: '#/components/schemas/QuotasInfo'
+    ArrayOfProjectInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/ProjectInfo'
+    CreateProjectRequest:
+      type: object
+      properties:
+        name:
+          type: string
+        admin:
+          type: boolean
+        quotas:
+          $ref: '#/components/schemas/QuotasInfo'
+      required:
+        - name
+      additionalProperties: false
+    EditProjectRequest:
+      type: object
+      properties:
+        name:
+          type: string
+        admin:
+          type: boolean
+        quotas:
+          $ref: '#/components/schemas/EditQuotasInfo'
+      additionalProperties: false
+    PermissionsInfo:
+      type: object
+      additionalProperties:
+        type: boolean
+        nullable: false
+      description: |
+        Permissions keys must follow the syntax 'main_topic[:subtopic[:id[:component|action|etc]]]'
+        Permission values are either true or false
+    EditPermissionsInfo:
+      type: object
+      additionalProperties:
+        type: boolean
+        nullable: true
+      description: |
+        Permissions keys must follow the syntax 'main_topic[:subtopic[:id[:component|action|etc]]]'
+        Permission values are either true, false, or null
+    RoleInfo:
+      type: object
+      properties:
+        _id:
+          type: string
+          format: uuid
+        name:
+          type: string
+        permissions:
+          $ref: '#/components/schemas/PermissionsInfo'
+    ArrayOfRoleInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/RoleInfo'
+    CreateRoleRequest:
+      type: object
+      properties:
+        name:
+          type: string
+        permissions:
+          $ref: '#/components/schemas/PermissionsInfo'
+      required:
+        - name
+      additionalProperties: false
+    EditRoleRequest:
+      type: object
+      properties:
+        name:
+          type: string
+        permissions:
+          $ref: '#/components/schemas/EditPermissionsInfo'
+      additionalProperties: false
+    VimType:
+      type: string
+      enum:
+        - openvim
+        - openstack
+        - vmware
+        - opennebula
+        - aws
+        - azure
+        - fos
+    VimInfo:
+      type: object
+      properties:
+        _id:
+          type: string
+          format: uuid
+        schema_version:
+          type: string
+          format: X.Y[.Z]
+        schema_type:
+          type: string
+        name:
+          type: string
+        description:
+          type: string
+        vim:
+          type: string
+        datacenter:
+          type: string
+        vim_type:
+          $ref: '#/components/schemas/VimType'
+        vim_url:
+          type: string
+          format: uri
+        vim_tenant_name:
+          type: string
+        vim_user:
+          type: string
+        vim_password:
+          type: string
+        vca:
+          type: string
+          format: uuid
+        config:
+          type: object
+          additionalProperties: true
+        resources:
+          type: object
+    ArrayOfVimInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/VimInfo'
+    CreateVimRequest:
+      type: object
+      properties:
+        schema_version:
+          type: string
+          format: X.Y[.Z]
+        schema_type:
+          type: string
+        name:
+          type: string
+        description:
+          type: string
+        vim:
+          type: string
+        datacenter:
+          type: string
+        vim_type:
+          $ref: '#/components/schemas/VimType'
+        vim_url:
+          type: string
+          format: uri
+        vim_tenant_name:
+          type: string
+        vim_user:
+          type: string
+        vim_password:
+          type: string
+        vca:
+          type: string
+          format: uuid
+        config:
+          type: object
+          additionalProperties: true
+        prometheus-config:
+          type: object
+          additionalProperties: true
+        resources:
+          type: object
+      required:
+        - name
+        - vim_url
+        - vim_type
+        - vim_user
+        - vim_password
+        - vim_tenant_name
+      additionalProperties: false
+    EditVimRequest:
+      type: object
+      properties:
+        name:
+          type: string
+        description:
+          type: string
+        vim:
+          type: string
+        datacenter:
+          type: string
+        vim_type:
+          $ref: '#/components/schemas/VimType'
+        vim_url:
+          type: string
+          format: uri
+        vim_tenant_name:
+          type: string
+        vim_user:
+          type: string
+        vim_password:
+          type: string
+        vca:
+          type: string
+          format: uuid
+        prometheus-config:
+          type: object
+          additionalProperties: true
+        config:
+          type: object
+          additionalProperties: true
+      additionalProperties: false
+    ObjectId_plus_OpId:
+      type: object
+      properties:
+        id:
+          type: string
+          format: uuid
+        op_id:
+          type: string
+          format: uuid
+    OpId:
       type: object
       properties:
-        id:
+        op_id:
           type: string
           format: uuid
-    KeyValuePairs:
-      # A free list of key:value pairs
-      type: object
-      additionalProperties: true
-    NsDescriptor:
-      type: string
-      format: yaml|json
-    NsPackage:
+    WimType:
       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
+      enum:
+        - onos
+        - odl
+        - tapi
+        - dynpac
+        - fake
+    WimInfo:
       type: object
       properties:
-        id:
-          description: NSD Identifier
+        _id:
+          type: string
+          format: uuid
+        schema_version:
+          type: string
+          format: X.Y[.Z]
+        schema_type:
           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
+        wim:
+          type: string
+        wim_type:
+          $ref: '#/components/schemas/WimType'
+        wim_url:
+          type: string
+          format: uri
+        user:
+          type: string
+        password:
+          type: string
+        config:
+          type: object
+          additionalProperties: true
+    ArrayOfWimInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/WimInfo'
+    CreateWimRequest:
       type: object
       properties:
-        _id:
-          description: |
-            Identifier of the onboarded individual NS descriptor
-            resource. This identifier is allocated by the NFVO.
+        schema_version:
           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.
+          format: X.Y[.Z]
+        schema_type:
           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'
+        wim:
+          type: string
+        wim_type:
+          $ref: '#/components/schemas/WimType'
+        wim_url:
+          type: string
+          format: uri
+        user:
+          type: string
+        password:
+          type: string
+        config:
+          type: object
+          additionalProperties: true
       required:
-        - _id
-        - id
-    ArrayOfNsdInfo:
-      type: array
-      items:
-        $ref: '#/components/schemas/NsdInfo'
-    ProblemDetails:
+        - name
+        - wim_url
+        - wim_type
+      additionalProperties: false
+    EditWimRequest:
       type: object
       properties:
-        type:
+        name:
           type: string
-          format: uri
-        title:
+        description:
           type: string
-        status:
-          type: integer
-        detail:
+        wim:
           type: string
-        instance:
+        wim_type:
+          type: string
+        wim_url:
           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
+        user:
+          type: string
+        password:
+          type: string
+        config:
+          type: object
+          additionalProperties: true
+      additionalProperties: false
+    SdnBasicProperties:
       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
+        dpid:
+          type: string
+          format: mac_address
+        ip:
+          type: string
+          format: ipv4
+        port:
+          type: integer
+        type:
+          type: string
+          enum:
+            - floodlight
+            - opendaylight
+            - onos
+        version:
+          type: string
+        user:
+          type: string
+        password:
+          type: string
+    SdnExtraProperties:
       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
+        schema_version:
           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'
+          format: X.Y[.Z]
+    SdnInfo:
+      allOf:
+        - $ref: '#/components/schemas/SdnExtraProperties'
+        - $ref: '#/components/schemas/SdnBasicProperties'
+    ArrayOfSdnInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/SdnInfo'
+    CreateSdnRequest:
+      allOf:
+        - $ref: '#/components/schemas/SdnBasicProperties'
       required:
-        - _id
-        - id
-    ArrayOfVnfPkgInfo:
+        - name
+        - type
+        - ip
+        - port
+        - dpid
+      additionalProperties: false
+    EditSdnRequest:
+      allOf:
+        - $ref: '#/components/schemas/SdnBasicProperties'
+      additionalProperties: false
+    NsPmJobReportInfo:
+      type: object
+      properties:
+        entries:
+          type: array
+          items:
+            type: object
+            properties:
+              objectInstanceId:
+                type: string
+                format: uuid
+              performanceMetric:
+                type: string
+              performanceValue:
+                type: object
+                properties:
+                  performanceValue:
+                    type: object
+                    properties:
+                      performanceValue:
+                        type: number
+                      vnfMemberIndex:
+                        type: string
+                      vduName:
+                        type: string
+                  timestamp:
+                    type: number
+    PduInterfaces:
       type: array
       items:
-        $ref: '#/components/schemas/VnfPkgInfo'
-    CreateNsRequest:
+        type: object
+        properties:
+          name:
+            type: string
+          mgmt:
+            type: boolean
+          type:
+            type: string
+            enum:
+              - overlay
+              - underlay
+          ip-address:
+            type: string
+            format: ipv4
+          mac-address:
+            type: string
+            format: mac_address
+          vim-network-name:
+            type: string
+          vim-network-id:
+            type: string
+        required:
+          - name
+          - mgmt
+          - ip-address
+        additionalProperties: false
+    PduInfo:
       type: object
       properties:
-        nsdId:
-          description: |
-            Identifier of the NSD that defines the NS instance to be created.
+        _id:
           type: string
           format: uuid
-        nsName:
-          description: |
-            Human-readable name of the NS instance to be created.
+        name:
           type: string
-        nsDescription:
-          description: |
-            Human-readable description of the NS instance to be created.
+        type:
           type: string
-        vimAccountId:
-          description: |
-            Identifier of the VIM Account where the NS instance shall be created.
+        description:
           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
+        shared:
+          type: boolean
+        vims:
+          type: array
+          items:
+            type: string
+        vim_accounts:
+          type: array
+          items:
+            type: string
+        interfaces:
+          $ref: '#/components/schemas/PduInterfaces'
+    ArrayOfPduInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/PduInfo'
+    CreatePduRequest:
       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
+        type:
           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'
+        shared:
+          type: boolean
+        vims:
+          type: array
+          items:
+            type: string
+        vim_accounts:
+          type: array
+          items:
+            type: string
+        interfaces:
+          $ref: '#/components/schemas/PduInterfaces'
       required:
-        - _id
-        - id
         - name
-    InstantiateNsRequest:
+        - type
+        - interfaces
+      additionalProperties: false
+    EditPduRequest:
       type: object
       properties:
-        nsName:
-          description: |
-            Human-readable name of the NS instance to be created.
+        name:
           type: string
-        nsdId:
-          description: |
-            Identifier of the NSD that defines the NS instance to be created.
+        type:
           type: string
-          format: uuid
-        vimAccountId:
-          description: |
-            Identifier of the VIM Account where the NS instance shall be created.
+        description:
           type: string
-          format: uuid
-      required:
-        - nsName
-        - nsdId
-        - vimAccountId
-    ScaleNsRequest:
+        shared:
+          type: boolean
+        vims:
+          type: array
+          items:
+            type: string
+        vim_accounts:
+          type: array
+          items:
+            type: string
+        interfaces:
+          $ref: '#/components/schemas/PduInterfaces'
+      additionalProperties: false
+    K8sClusterNetList:
+      type: array
+      items:
+        type: object
+        additionalProperties: false
+    K8sClusterDeploymentMethods:
       type: object
       properties:
-        scaleType:
+        juju-bundle:
+          type: boolean
+        helm-chart-v3:
+          type: boolean
+      additionalProperties: false
+      minProperties: 3
+    K8sClusterInfo:
+      type: object
+      properties:
+        _id:
           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
+          format: uuid
+        schema_version:
+          type: string
+          format: X.Y[.Z]
+        schema_type:
+          type: string
+        name:
+          type: string
+        description:
+          type: string
+        credentials:
+          type: object
           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.
+        vim_account:
           type: string
-          format: date-time
-    ArrayOfNsInstance:
+          format: uuid
+        k8s_version:
+          type: string
+        nets:
+          $ref: '#/components/schemas/K8sClusterNetList'
+        deployment_methods:
+          $ref: '#/components/schemas/K8sClusterDeploymentMethods'
+        namespace:
+          type: string
+        cni:
+          type: array
+          items:
+            type: string
+    ArrayOfK8sClusterInfo:
       type: array
       items:
-        $ref: '#/components/schemas/NsInstance'
-    NSinstanceActionRequest:
+        $ref: '#/components/schemas/K8sClusterInfo'
+    CreateK8sClusterRequest:
       type: object
       properties:
-        primitive:
+        schema_version:
           type: string
-        primitive_params:
-          $ref: '#/components/schemas/KeyValuePairs'
-        lcmOperationType:
+          format: X.Y[.Z]
+        schema_type:
           type: string
-        nsInstanceId:
+        name:
+          type: string
+        description:
+          type: string
+        credentials:
+          type: object
+          additionalProperties: true
+        vim_account:
           type: string
           format: uuid
-        member_vnf_index:
+        k8s_version:
           type: string
-        vdu_id:
+        nets:
+          $ref: '#/components/schemas/K8sClusterNetList'
+        namespace:
           type: string
-        vdu_count_index:
-          type: integer
+        cni:
+          type: array
+          items:
+            type: string
       required:
-        - primitive
-        - primitive_params
+        - name
+        - credentials
+        - vim_account
+        - k8s_version
+        - nets
       additionalProperties: false
-    CreateNSinstanceContentRequest:
+    EditK8sClusterRequest:
       type: object
       properties:
-        nsdId:
-          description: |
-            Identifier of the NSD that defines the NS instance to be created.
+        name:
           type: string
-          format: uuid
-        nsName:
-          description: |
-            Human-readable name of the NS instance to be created.
+        description:
           type: string
-        vimAccountId:
-          description: |
-            Identifier of the VIM Account where the NS instance shall be created.
+        credentials:
+          type: object
+          additionalProperties: true
+        vim_account:
           type: string
           format: uuid
-      required:
-        - nsdId
-        - nsName
-        - vimAccountId
-    CreateNSinstanceContentResponse:
-      type: object
-      properties:
-        id:
+        k8s_version:
           type: string
-          format: uuid
-        nslcmop_id:
+        nets:
+          $ref: '#/components/schemas/K8sClusterNetList'
+        namespace:
           type: string
-          format: uuid
-    NsLcmOpOcc:
+        cni:
+          type: array
+          items:
+            type: string
+      additionalProperties: false
+    VcaInfo:
       type: object
       properties:
         _id:
           type: string
           format: uuid
-        id:
+        schema_version:
           type: string
-          format: uuid
-        lcmOperationType:
+          format: X.Y[.Z]
+        schema_type:
           type: string
-        nsInstanceId:
+        name:
           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:
+        description:
           type: string
-        detailed-status:
+        endpoints:
           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:
+        user:
           type: string
-          format: uuid
-        id:
+        secret:
           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
+        cacert:
           type: string
-          format: uuid
-        id:
-          description: Human readable NetSlice Template Identifier
+        lxd-cloud:
           type: string
-        name:
-          description: Human readable name of the NetSlice Template
+        lxd-credentials:
           type: string
-        nst:
-          $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nst.html'
-    ArrayOfNstInfo:
+        k8s-cloud:
+          type: string
+        k8s-credentials:
+          type: string
+        model-config:
+          type: object
+          additionalProperties: true
+    ArrayOfVcaInfo:
       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
+        $ref: '#/components/schemas/VcaInfo'
+    CreateVcaRequest:
       type: object
       properties:
-        id:
-          description: NST Identifier
+        schema_version:
+          type: string
+          format: X.Y[.Z]
+        schema_type:
           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.
+        description:
           type: string
-          format: uuid
-        id:
-          description: Identifier of the NetSlice instance.
+        endpoints:
           type: string
-          format: uuid
-        name:
-          description: Human readable name of the NetSlice instance.
+        user:
           type: string
-        description:
-          description: Human readable description of the NetSlice instance.
+        secret:
           type: string
-        nsi:
-          $ref: 'http://osm-download.etsi.org/ftp/osm-doc/nsi.html'
+        cacert:
+          type: string
+        lxd-cloud:
+          type: string
+        lxd-credentials:
+          type: string
+        k8s-cloud:
+          type: string
+        k8s-credentials:
+          type: string
+        model-config:
+          type: object
+          additionalProperties: true
       required:
-        - _id
-        - id
         - name
-    ArrayOfNetSliceInstance:
-      type: array
-      items:
-        $ref: '#/components/schemas/NetSliceInstance'
-    CreateNsiRequest:
+        - endpoints
+        - user
+        - secret
+        - cacert
+        - lxd-cloud
+        - lxd-credentials
+        - k8s-cloud
+        - k8s-credentials
+      additionalProperties: false
+    EditVcaRequest:
       type: object
       properties:
-        nstId:
-          description: |
-            Identifier of the NST that defines the NetSlice instance to be created.
+        name:
           type: string
-          format: uuid
-        nsiName:
-          description: |
-            Human-readable name of the NetSlice instance to be created.
+        description:
           type: string
-        nsiDescription:
-          description: |
-            Human-readable description of the NetSlice instance to be created.
+        endpoints:
           type: string
-        vimAccountId:
-          description: |
-            Identifier of the VIM Account where the NetSlice instance shall be created.
+        user:
           type: string
-          format: uuid
-      required:
-        - nstId
-        - nsiName
-        - vimAccountId
-    InstantiateNsiRequest:
-      type: object
-      properties:
-        nsiName:
-          description: |
-            Human-readable name of the NetSlice instance to be created.
+        secret:
           type: string
-        nstId:
-          description: |
-            Identifier of the NST that defines the NetSlice instance to be created.
+        cacert:
           type: string
-          format: uuid
-        vimAccountId:
-          description: |
-            Identifier of the VIM Account where the NetSlice instance shall be created.
+        lxd-cloud:
           type: string
-          format: uuid
-      required:
-        - nsiName
-        - nstId
-        - vimAccountId
-    TerminateNsiRequest:
+        lxd-credentials:
+          type: string
+        k8s-cloud:
+          type: string
+        k8s-credentials:
+          type: string
+        model-config:
+          type: object
+          additionalProperties: true
+      additionalProperties: false
+    K8sRepoType:
+      type: string
+      enum:
+        - chart
+        - bundle
+    K8sRepoInfo:
       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.
+        _id:
+          type: string
+          format: uuid
+        name:
+          type: string
+        description:
+          type: string
+        type:
+          $ref: '#/components/schemas/K8sRepoType'
+        url:
           type: string
-          format: date-time
-    NsiActionRequest:
-      type: object
-      properties:
-        primitive:
+          format: uri
+        username:
           type: string
-        primitive_params:
-          $ref: '#/components/schemas/KeyValuePairs'
-        lcmOperationType:
+          description: repository username
+        password:
           type: string
-        netsliceInstanceId:
+          description: repository password
+        ca-file:
           type: string
-          format: uuid
+          description: verify certificates of HTTPS-enabled servers using this CA bundle
+        cert-file:
+          type: string
+          description: identify HTTPS client using this SSL certificate file
+        skip-tls-verify:
+          type: boolean
+          description: skip tls certificate checks for the repository
+        key-file:
+          type: string
+          description: identify HTTPS client using this SSL key file
+        oci:
+          type: boolean
+          default: false
+          description: >
+            Flag to indicate whether or not it is an OCI-enabled repo (default: false)
       required:
-        - primitive
-        - primitive_params
-    CreateNsiContentRequest:
+        - name
+        - type
+        - url
+      additionalProperties: false
+    ArrayOfK8sRepoInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/K8sRepoInfo'
+    CreateK8sRepoRequest:
       type: object
       properties:
-        nstId:
-          description: |
-            Identifier of the NST that defines the NetSlice instance to be created.
+        name:
           type: string
-          format: uuid
-        nsiName:
-          description: |
-            Human-readable name of the NetSlice instance to be created.
+        description:
           type: string
-        vimAccountId:
-          description: |
-            Identifier of the VIM Account where the NetSlice instance shall be created.
+        type:
+          $ref: '#/components/schemas/K8sRepoType'
+        url:
           type: string
-          format: uuid
+          format: uri
       required:
-        - nsdId
-        - nsName
-        - vimAccountId
-    CreateNsiContentResponse:
+        - name
+        - type
+        - url
+      additionalProperties: false
+    NslcmSubscriptionResponse:
       type: object
       properties:
         id:
           type: string
           format: uuid
-        nsilcmop_id:
+        filter:
+          type: object
+        CallbackUri:
           type: string
-          format: uuid
-    NsiLcmOpOcc:
+          format: uri
+        _links:
+          type: object
+    NslcmSubscriptionInfo:
       type: object
       properties:
         _id:
           type: string
           format: uuid
-        id:
+        _admin:
+          type: object
+        schema_version:
           type: string
-          format: uuid
-        lcmOperationType:
+          format: 'X.Y[.Z]'
+        CallbackUri:
           type: string
-        netsliceInstanceId:
+          format: uri
+        filter:
+          type: object
+        authentication:
+          $ref: '#/components/schemas/Authenticationschema'
+    ArrayOfNslcmSubscriptionInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/NslcmSubscriptionInfo'
+    NsInstanceSubscriptionFilter:
+      description: |
+        used to identify the network service
+      type: object
+      oneOf:
+        - $ref: '#/components/schemas/nsdIds'
+        - $ref: '#/components/schemas/vnfdIds'
+        - $ref: '#/components/schemas/pnfdIds'
+        - $ref: '#/components/schemas/nsInstanceIds'
+        - $ref: '#/components/schemas/nsInstanceNames'
+    nsdIds:
+      type: array
+      items:
+        type: string
+    vnfdIds:
+      type: array
+      items:
+        type: string
+    pnfdIds:
+      type: array
+      items:
+        type: string
+    nsInstanceIds:
+      type: array
+      items:
+        type: string
+    nsInstanceNames:
+      type: array
+      items:
+        type: string
+    Nslcmsubschema:
+      type: object
+      properties:
+        nsInstanceSubscriptionFilter:
+           $ref: '#/components/schemas/NsInstanceSubscriptionFilter'
+        notificationTypes:
+          description: |
+            If NsLcmOperationOccurrenceNotification is selected then at least operationTypes or states is required. If NsLcmOperationOccurrenceNotification is selected then at least nsComponentTypes, lcmOpName and lcmOpOccStatus is required
+          type: array
+          items:
+            type: string
+            enum:
+              - NsIdentifierCreationNotification
+              - NsIdentifierDeletionNotification
+              - NsLcmOperationOccurrenceNotification
+              - NsChangeNotification
+        operationTypes:
+          type: array
+          items:
+            type: string
+            enum:
+              - INSTANTIATE
+              - SCALE
+              - TERMINATE
+              - UPDATE
+              - HEAL
+        operationStates:
+          type: array
+          items:
+            type: string
+            enum:
+              - PROCESSING
+              - COMPLETED
+              - PARTIALLY_COMPLETED
+              - FAILED
+              - FAILED_TEMP
+              - ROLLING_BACK
+              - ROLLED_BACK
+        nsComponentTypes:
+          type: array
+          items:
+            type: string
+            enum:
+              - VNF
+              - NS
+              - PNF
+        lcmOpNameImpactingNsComponent:
+          type: array
+          items:
+            type: string
+            enum:
+              - VNF_INSTANTIATE
+              - VNF_SCALE
+              - VNF_SCALE_TO_LEVEL
+              - VNF_CHANGE_FLAVOUR
+              - VNF_TERMINATE
+              - VNF_HEAL
+              - VNF_OPERATE
+              - VNF_CHANGE_EXT_CONN
+              - VNF_MODIFY_INFO
+              - NS_INSTANTIATE
+              - NS_SCALE
+              - NS_UPDATE
+              - NS_TERMINATE
+              - NS_HEAL
+        lcmOpOccStatusImpactingNsComponent:
+          type: array
+          items:
+            type: string
+            enum:
+              - START
+              - COMPLETED
+              - PARTIALLY_COMPLETED
+              - FAILED
+              - ROLLED_BACK
+    Authenticationschema:
+      type: object
+      properties:
+        authType:
           type: string
-          format: uuid
-        isAutomaticInvocation:
-          type: boolean
-        isCancelPending:
-          type: boolean
-        startTime:
-          type: number
-          format: float
-        statusEnteredTime:
-          type: number
-          format: float
-        operationParams:
+          enum:
+            - basic
+        paramsBasic:
           type: object
           properties:
-            nsiName:
-              type: string
-            nstId:
-              type: string
-              format: uuid
-            vimAccountId:
-              type: string
-              format: uuid
-            netsliceInstanceId:
+            userName:
               type: string
-              format: uuid
-            lcmOperationType:
+            password:
               type: string
-            nslcmops_ids:
-              type: array
-              items:
-                type: string
-                format: uuid
-        operationState:
+    NslcmSubscriptionRequest:
+      type: object
+      properties:
+        filter:
+          $ref: '#/components/schemas/Nslcmsubschema'
+        CallbackUri:
           type: string
-        detailed-status:
+          format: uri
+        authentication:
+          $ref: '#/components/schemas/Authenticationschema'
+      required:
+        - CallbackUri
+    CancelNSLCMOpOccRequest:
+      type: object
+      properties:
+        cancelMode:
           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'
+          enum:
+            - GRACEFUL
+            - FORCEFUL
   # END SCHEMAS
 
   requestBodies:
@@ -4109,6 +9258,14 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/NsdInfoModifications'
+    AlarmInfoModifications:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/AlarmInfoModifications'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/AlarmInfoModifications'
     NsDescriptor:
       content:
         text/plain:
@@ -4145,22 +9302,32 @@ components:
         text/plain:
           schema:
             $ref: '#/components/schemas/VnfDescriptor'
-    CreateNsRequest:
+    # CreateNsRequest:
+      # Substituted by InstantiateNsRequest
+    InstantiateNsRequest:
       content:
         application/json:
           schema:
-            $ref: '#/components/schemas/CreateNsRequest'
+            $ref: '#/components/schemas/InstantiateNsRequest'
         application/yaml:
           schema:
-            $ref: '#/components/schemas/CreateNsRequest'
-    InstantiateNsRequest:
+            $ref: '#/components/schemas/InstantiateNsRequest'
+    HealNsRequest:
       content:
         application/json:
           schema:
-            $ref: '#/components/schemas/InstantiateNsRequest'
+            $ref: '#/components/schemas/HealNsRequest'
         application/yaml:
           schema:
-            $ref: '#/components/schemas/InstantiateNsRequest'
+            $ref: '#/components/schemas/HealNsRequest'
+    NSinstanceMigrateRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/NSinstanceMigrateRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/NSinstanceMigrateRequest'
     ScaleNsRequest:
       content:
         application/json:
@@ -4177,14 +9344,24 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/TerminateNsRequest'
-    CreateNSinstanceContentRequest:
+    UpdateNsRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/UpdateNsRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/UpdateNsRequest'
+    VerticalscaleNsRequest:
       content:
         application/json:
           schema:
-            $ref: '#/components/schemas/CreateNSinstanceContentRequest'
+            $ref: '#/components/schemas/VerticalscaleNsRequest'
         application/yaml:
           schema:
-            $ref: '#/components/schemas/CreateNSinstanceContentRequest'
+            $ref: '#/components/schemas/VerticalscaleNsRequest'
+    # CreateNSinstanceContentRequest:
+      # Substituted by InstantiateNsRequest
     CreateNstInfoRequest:
       content:
         application/json:
@@ -4211,14 +9388,8 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/NstInfoModifications'
-    CreateNsiRequest:
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/CreateNsiRequest'
-        application/yaml:
-          schema:
-            $ref: '#/components/schemas/CreateNsiRequest'
+    # CreateNsiRequest:
+      # Substituted by InstantiateNsiRequest
     InstantiateNsiRequest:
       content:
         application/json:
@@ -4243,14 +9414,184 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/NsiActionRequest'
-    CreateNsiContentRequest:
+    # CreateNsiContentRequest:
+      # Substituted by InstantiateNsiRequest
+    CreateTokenRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateTokenRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateTokenRequest'
+    CreateUserRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateUserRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateUserRequest'
+    EditUserRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditUserRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditUserRequest'
+    CreateProjectRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateProjectRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateProjectRequest'
+    EditProjectRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditProjectRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditProjectRequest'
+    CreateRoleRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateRoleRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateRoleRequest'
+    EditRoleRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditRoleRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditRoleRequest'
+    CreateVimRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateVimRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateVimRequest'
+    EditVimRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditVimRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditVimRequest'
+    CreateWimRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateWimRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateWimRequest'
+    EditWimRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditWimRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditWimRequest'
+    CreateSdnRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateSdnRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateSdnRequest'
+    EditSdnRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditSdnRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditSdnRequest'
+    CreatePduRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreatePduRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreatePduRequest'
+    EditPduRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditPduRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditPduRequest'
+    CreateK8sClusterRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateK8sClusterRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateK8sClusterRequest'
+    EditK8sClusterRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditK8sClusterRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditK8sClusterRequest'
+    CreateVcaRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateVcaRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateVcaRequest'
+    EditVcaRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditVcaRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditVcaRequest'
+    CreateK8sRepoRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateK8sRepoRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateK8sRepoRequest'
+    NslcmSubscriptionRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/NslcmSubscriptionRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/NslcmSubscriptionRequest'
+    CancelNSLCMOpOccRequest:
       content:
         application/json:
           schema:
-            $ref: '#/components/schemas/CreateNsiContentRequest'
+            $ref: '#/components/schemas/CancelNSLCMOpOccRequest'
         application/yaml:
           schema:
-            $ref: '#/components/schemas/CreateNsiContentRequest'
+            $ref: '#/components/schemas/CancelNSLCMOpOccRequest'
   # END REQUEST BODIES
 
   securitySchemes: