Feature 11022-11026: Advanced Cluster Management
[osm/SOL005.git] / osm-openapi.yaml
index 919223f..a8ad2be 100644 (file)
@@ -43,6 +43,12 @@ tags:
     description: Management operations of repositories
   - name: 'Admin'
     description: Management operations of Administration items
+  - name: 'K8s Cluster'
+    description: Management operations of k8s Cluster
+  - name: 'KSU'
+    description: Management operations of KSU
+  - name: 'OKA packages'
+    description: Management operations of OKA packages
 
 security:
   - bearerAuth: []
@@ -678,6 +684,282 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
 # END NS Packages
 
+# BEGIN Ns Config Templates
+  '/nsd/v1/ns_config_template':
+    get:
+      tags:
+        - "Ns packages"
+      summary: Query information about multiple Ns config templates
+      description: Query information about multiple Ns config templates
+      operationId: getNsconfigtemplates
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsConfigTemplateInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNsConfigTemplateInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "Ns packages"
+      summary: Create a new Ns config template
+      description: |
+        NS config templates are specific configuration templates
+        (instantiation parameters) to be applied to NS packages.
+        when they are instantiated.
+        Template consist of NSD ID, template name and instantiation parameters.
+      operationId: addNsconfigtemplate
+      requestBody:
+        $ref: '#/components/requestBodies/CreateNsConfigTemplateInfoRequest'
+      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'
+  '/nsd/v1/ns_config_template/{nsconfigTemplateId}':
+    parameters:
+      - name: nsconfigTemplateId
+        in: path
+        required: true
+        description: Ns config template ID
+        schema:
+          type: string
+    get:
+      tags:
+        - "Ns packages"
+      summary: Read information about an individual Ns config template resource
+      description: Read information about an individual Ns config template resource
+      operationId: getNsconfigtemplate
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsConfigTemplateInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsConfigTemplateInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "Ns packages"
+      summary: Delete an individual NS config template
+      description: Delete an individual NS config template
+      operationId: deleteNsconfigtemplate
+      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'
+  '/nsd/v1/ns_config_template/{nsconfigTemplateId}/template_content':
+    parameters:
+      - name: nsconfigTemplateId
+        in: path
+        required: true
+        description: Ns config template ID
+        schema:
+          type: string
+    get:
+      tags:
+        - "Ns packages"
+      summary: Fetch the content of a Ns config template
+      description: Fetch the content of a Ns config template
+      operationId: getTemplatecontent
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsConfigTemplateInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsConfigTemplateInfo'
+        '206':
+          description: Partial Content
+          headers:
+            Content-Range:
+              schema:
+                type: string
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsConfigTemplateInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsConfigTemplateInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    put:
+      tags:
+        - "Ns packages"
+      summary: Modify the content of a Ns config template
+      description: |
+        Template name and instantiation parameters
+        can be modified.
+      operationId: updateTemplatecontent
+      requestBody:
+        $ref: '#/components/requestBodies/NsConfigTemplateInfoModifications'
+      responses:
+        '202':
+          description: Accepted
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+# END Ns Config Templates
+
 # BEGIN VNF Packages
   '/vnfpkgm/v1/vnf_packages':
     get:
@@ -1407,6 +1689,12 @@ paths:
         description: NS Instance ID
         schema:
           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"
@@ -1599,7 +1887,7 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nslcm/v1/ns_instances/{nsInstanceId}/terminate':
+  '/nslcm/v1/ns_instances/{nsInstanceId}/heal':
     parameters:
       - name: nsInstanceId
         in: path
@@ -1610,17 +1898,16 @@ paths:
     post:
       tags:
         - "NS instances"
-      summary: Terminate a NS instance
+      summary: Heal a NS instance
       description: |
-        Terminate a NS instance. The precondition is that the NS instance must have
+        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 becomes
-        NOT_INSTANTIATED.
-      operationId: terminateNSinstance
+        Occurrence" resource for the request, and the NS instance state remains
+        INSTANTIATED.
+      operationId: healNSinstance
       requestBody:
-        # Request data is not required
-        $ref: '#/components/requestBodies/TerminateNsRequest'
+        $ref: '#/components/requestBodies/HealNsRequest'
       responses:
         '202':
           description: Accepted
@@ -1632,13 +1919,6 @@ paths:
               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':
@@ -1663,7 +1943,7 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/nslcm/v1/ns_instances/{nsInstanceId}/action':
+  '/nslcm/v1/ns_instances/{nsInstanceId}/migrate':
     parameters:
       - name: nsInstanceId
         in: path
@@ -1674,15 +1954,135 @@ paths:
     post:
       tags:
         - "NS instances"
-      summary: Execute an action on a NS instance
+      summary: Migrate VNFs in a NS instance
       description: |
-        Execute an action on a NS instance.
-        The NS instance must have been created and must be in INSTANTIATED state.
-      operationId: actionOnNSinstance
+        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:
-        content:
-          application/json:
-            schema:
+        $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
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type: string
+    post:
+      tags:
+        - "NS instances"
+      summary: Terminate a NS instance
+      description: |
+        Terminate a NS instance. The precondition is that the NS instance must have
+        been created and must be in INSTANTIATED state. As a result of the
+        success of this operation, the NFVO creates a "NS Lifecycle Operation
+        Occurrence" resource for the request, and the NS instance state becomes
+        NOT_INSTANTIATED.
+      operationId: terminateNSinstance
+      requestBody:
+        # Request data is not required
+        $ref: '#/components/requestBodies/TerminateNsRequest'
+      responses:
+        '202':
+          description: Accepted
+          headers:
+            Location:
+              description: |
+                It must point to the new "NS Lifecycle Operation Occurrence"
+                resource, i.e. an URI like ".../ns_lcm_op_occs/{nsLcmOpOccId}"
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/nslcm/v1/ns_instances/{nsInstanceId}/action':
+    parameters:
+      - name: nsInstanceId
+        in: path
+        required: true
+        description: NS Instance ID
+        schema:
+          type: string
+    post:
+      tags:
+        - "NS instances"
+      summary: Execute an action on a NS instance
+      description: |
+        Execute an action on a NS instance.
+        The NS instance must have been created and must be in INSTANTIATED state.
+      operationId: actionOnNSinstance
+      requestBody:
+        content:
+          application/json:
+            schema:
               $ref: '#/components/schemas/NSinstanceActionRequest'
           application/yaml:
             schema:
@@ -1729,6 +2129,105 @@ 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_terminate':
+    post:
+      tags:
+        - "NS instances"
+      summary: Terminates NS instances
+      description: Terminates multiple NS instances.
+      operationId: MultiNsTerminateRequest
+      requestBody:
+        $ref: '#/components/requestBodies/MultiNsTerminateRequest'
+      responses:
+        '202':
+          description: Accepted
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectIdList'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectIdList'
+        '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:
@@ -1996,6 +2495,49 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
+  '/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: 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:
+        '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'
   '/nslcm/v1/vnf_instances':
     get:
       tags:
@@ -2085,26 +2627,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':
@@ -2125,13 +2664,311 @@ 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"
+        - 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/NslcmSubscriptionRequest'
+      responses:
+        '201':
+          description: Created
+          headers:
+            Location:
+              schema:
+                type: object
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NslcmSubscriptionResponse'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NslcmSubscriptionResponse'
+        '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/subscriptions/{nsSubscriptionsId}':
+    parameters:
+      - name: nsSubscriptionsId
+        in: path
+        required: true
+        description: Network Service Subscription ID
+        schema:
+          type: string
+    get:
+      tags:
+        - 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/NslcmSubscriptionInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NslcmSubscriptionInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        5XX:
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - NS instances
+      summary: Delete an individual Network Service Subscription
+      description: Delete an individual Network Service Subscription
+      operationId: deleteNsSubcriptionId
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        5XX:
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+# END NS Instances
+
+# BEGIN Alarms
+  '/nsfm/v1/alarms':
+    get:
+      tags:
+        - "Alarms"
+      summary: Query information about multiple alarms
+      description: Query information about multiple alarms
+      operationId: getAlarms
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfAlarm'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfAlarm'
+        '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'
+  '/nsfm/v1/alarms/{uuid}':
+    parameters:
+      - name: uuid
+        in: path
+        required: true
+        description: Alarm UUID
+        schema:
+          type: string
+    get:
+      tags:
+        - "Alarms"
+      summary: Read an individual Alarm
+      description: Read an individual Alarm
+      operationId: getAlarm
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/Alarm'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/Alarm'
+        '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:
+        - "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:
+        '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 Alarms
+
+# BEGIN NetSlice Templates
+  '/nst/v1/netslice_templates':
+    get:
+      tags:
+        - "NetSlice templates"
+      summary: Query information about multiple NetSlice template resources
+      description: Query information about multiple NetSlice template resources
+      operationId: getNSTs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNstInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfNstInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "NetSlice templates"
       summary: Create a new NetSlice template resource
       description: Create a new NetSlice template resource
       operationId: addNST
@@ -3577,25 +4414,17 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
 # END PDU
 
-# BEGIN Admin
-  '/admin/v1/tokens':
+# BEGIN k8s Cluster
+  '/k8scluster/v1/clusters':
     get:
       tags:
-        - "Authentication"
-        - "Admin"
-      summary: Query information about multiple Tokens
-      description: Query information about multiple Tokens
-      operationId: getTokens
+        - 'K8s Cluster'
+      summary: Listing All Clusters
+      description: This API is used to obtain details about all clusters
+      operationId: listk8sCluster
       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':
@@ -3622,28 +4451,22 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
     post:
       tags:
-        - "Authentication"
-        - "Admin"
-      summary: Request a new Token
-      description: Request a new Token
-      operationId: createToken
+        - "K8s Cluster"
+      summary: Creating a Cluster
+      description: This API is used to create cluster
+      operationId: createk8sCluster
       requestBody:
-        $ref: '#/components/requestBodies/CreateTokenRequest'
+        $ref: '#/components/requestBodies/CreateCluster'
       responses:
-        '200':
-          description: OK
-          headers:
-            Location:
-              schema:
-                type: string
-                format: uri
+        '201':
+          description: Created
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/TokenInfo'
+                $ref: '#/components/schemas/ObjectId'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/TokenInfo'
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -3668,23 +4491,23 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+  '/k8scluster/v1/clusters/{cluster_id}':
+    parameters:
+      - name: cluster_id
+        in: path
+        required: true
+        description: cluster_id
+        schema:
+          type: string
+    get:
       tags:
-        - "Authentication"
-        - "Admin"
-      summary: Delete the Token indicated in the Authorization Header
-      description: Delete the Token indicated in the Authorization Header
-      operationId: deleteAuthToken
+        - 'K8s Cluster'
+      summary: Reading a Specific Cluster
+      description: This API is used to obtain details about a specified cluster.
+      operationId: readk8sCluster
       responses:
         '200':
           description: OK
-          content:
-            application/json:
-              schema:
-                type: string
-            application/yaml:
-              schema:
-                type: string
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -3709,31 +4532,15 @@ paths:
           $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:
+    delete:
       tags:
-        - "Authentication"
-        - "Admin"
-      summary: Query information about an individual Token
-      description: Query information about an individual Token
-      operationId: getToken
+        - "K8s Cluster"
+      summary: Deleting a Cluster
+      description: This API is used to delete a specified cluster.
+      operationId: deletek8sCluster
       responses:
-        '200':
-          description: OK
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/TokenInfo'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/TokenInfo'
+        '202':
+          description: Accepted
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -3758,23 +4565,23 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+  '/k8scluster/v1/clusters/{cluster_id}/get_creds':
+    parameters:
+      - name: cluster_id
+        in: path
+        required: true
+        description: cluster_id
+        schema:
+          type: string
+    get:
       tags:
-        - "Authentication"
-        - "Admin"
-      summary: Delete the Token indicated as parameter
-      description: Delete the Token indicated as parameter
-      operationId: deleteToken
+        - "K8s Cluster"
+      summary: Get Credentials of the cluster
+      description: This API is used to obtain a kube_config file of a specified cluster.
+      operationId: getCreds
       responses:
         '200':
           description: OK
-          content:
-            application/json:
-              schema:
-                type: string
-            application/yaml:
-              schema:
-                type: string
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -3799,24 +4606,25 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/admin/v1/users':
-    get:
+  '/k8scluster/v1/clusters/{cluster_id}/scale':
+    parameters:
+      - name: cluster_id
+        in: path
+        required: true
+        description: cluster_id
+        schema:
+          type: string
+    post:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Query information about multiple Users
-      description: Query information about multiple Users
-      operationId: getUsers
+        - "K8s Cluster"
+      summary: Scaling Node
+      description: This API is used to scale the node into a specified cluster
+      operationId: nodeScaling
+      requestBody:
+        $ref: '#/components/requestBodies/ScaleNode'
       responses:
-        '200':
-          description: OK
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/ArrayOfUserInfo'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/ArrayOfUserInfo'
+        '202':
+          description: Accepted
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -3828,43 +4636,38 @@ paths:
         '405':
           $ref: '#/components/responses/MethodNotAllowed'
         '406':
-          $ref: '#/components/responses/NotAcceptable'
+           $ref: '#/components/responses/NotAcceptable'
         '409':
-          $ref: '#/components/responses/Conflict'
+           $ref: '#/components/responses/Conflict'
         '422':
-          $ref: '#/components/responses/UnprocessableEntity'
+           $ref: '#/components/responses/UnprocessableEntity'
         '500':
           $ref: '#/components/responses/InternalServerError'
         '503':
-          $ref: '#/components/responses/ServiceUnavailable'
+           $ref: '#/components/responses/ServiceUnavailable'
         '5XX':
-          $ref: '#/components/responses/UnexpectedError'
+           $ref: '#/components/responses/UnexpectedError'
         default:
-          $ref: '#/components/responses/UnexpectedError'
+           $ref: '#/components/responses/UnexpectedError'
+  '/k8scluster/v1/clusters/{cluster_id}/upgrade':
+    parameters:
+      - name: cluster_id
+        in: path
+        required: true
+        description: cluster_id
+        schema:
+          type: string
     post:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Create a new User
-      description: Create a new User
-      operationId: createUser
+        - "K8s Cluster"
+      summary: Upgrading a Cluster
+      description: This API is used to Upgrade a Cluster
+      operationId: upgradeCluster
       requestBody:
-        $ref: '#/components/requestBodies/CreateUserRequest'
+        $ref: '#/components/requestBodies/UpgradeCluster'
       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
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -3889,31 +4692,25 @@ paths:
           $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:
+  '/k8scluster/v1/app_profiles':
+    post:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Query information about an individual User
-      description: Query information about an individual User
-      operationId: getUser
+        - "K8s Cluster"
+      summary: Creating App-profiles
+      description: This API is used to create App-profiles
+      operationId: createAppProfile
+      requestBody:
+        $ref: '#/components/requestBodies/ProfileInfo'
       responses:
-        '200':
-          description: OK
+        '201':
+          description: Created
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/UserInfo'
+                $ref: '#/components/schemas/ObjectId'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/UserInfo'
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -3938,18 +4735,15 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    patch:
+    get:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Modify a User
-      description: Modify a User
-      operationId: editUser
-      requestBody:
-        $ref: '#/components/requestBodies/EditUserRequest'
+        - "K8s Cluster"
+      summary: Listing App-profiles
+      description: This API is used to list all App-profiles
+      operationId: listAppProfile
       responses:
-        '204':
-          description: No Content
+        '200':
+          description: OK
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -3974,16 +4768,23 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+  '/k8scluster/v1/app_profiles/{app_profile_id}':
+    parameters:
+      - name: app_profile_id
+        in: path
+        required: true
+        description: app_profile_id
+        schema:
+          type: string
+    get:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Delete a User
-      description: Delete a User
-      operationId: deleteUser
+        - "K8s Cluster"
+      summary: Reading App-profiles
+      description: This API is used to reading specific App-profile
+      operationId: readAppProfile
       responses:
-        '204':
-          description: No Content
+        '200':
+          description: OK
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4008,24 +4809,17 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/admin/v1/projects':
-    get:
+    patch:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Query information about multiple Projects
-      description: Query information about multiple Projects
-      operationId: getProjects
+        - "K8s Cluster"
+      summary: Patching App-profiles
+      description: This API is used to patch specific App-profile
+      operationId: patchAppProfile
+      requestBody:
+        $ref: '#/components/requestBodies/ProfileInfo'
       responses:
-        '200':
-          description: OK
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/ArrayOfProjectInfo'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/ArrayOfProjectInfo'
+        '202':
+          description: Accepted
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4050,30 +4844,15 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    post:
+    delete:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Create a new Project
-      description: Create a new Project
-      operationId: createProject
-      requestBody:
-        $ref: '#/components/requestBodies/CreateProjectRequest'
+        - "K8s Cluster"
+      summary: Deleteing App-profiles
+      description: This API is used to delete specific App-profile
+      operationId: deleteAppProfile
       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
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4098,31 +4877,25 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/admin/v1/projects/{projectId}':
+  '/k8scluster/v1/clusters/{cluster_id}/app_profiles':
     parameters:
-      - name: projectId
+      - name: cluster_id
         in: path
         required: true
-        description: Project ID/Name
+        description: cluster_id
         schema:
           type: string
-    get:
+    patch:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Query information about an individual Project
-      description: Query information about an individual Project
-      operationId: getProject
+        - "K8s Cluster"
+      summary: Adding or Removing App profile to cluster
+      description: This API is used to add or remove app profiles to cluster
+      operationId: addRemoveAppProfile
+      requestBody:
+        $ref: '#/components/requestBodies/AttachDetachProfile'
       responses:
-        '200':
-          description: OK
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/ProjectInfo'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/ProjectInfo'
+        '202':
+          description: Accepted
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4147,18 +4920,15 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    patch:
+    get:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Modify a Project
-      description: Modify a Project
-      operationId: editProject
-      requestBody:
-        $ref: '#/components/requestBodies/EditProjectRequest'
+        - "K8s Cluster"
+      summary: Getting App-profile in cluster
+      description: This API is used to get app-profiles in specified cluster
+      operationId: getAppProfile
       responses:
-        '204':
-          description: No Content
+        '200':
+          description: OK
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4183,16 +4953,25 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+  '/k8scluster/v1/infra_controller_profiles':
+    post:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Delete a Project
-      description: Delete a Project
-      operationId: deleteProject
+        - "K8s Cluster"
+      summary: Creating Infra controller profiles
+      description: This API is used to create Infra controllerprofiles
+      operationId: createInfraControllerProfile
+      requestBody:
+        $ref: '#/components/requestBodies/ProfileInfo'
       responses:
-        '204':
-          description: No Content
+        '201':
+          description: Created
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4217,24 +4996,15 @@ paths:
           $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
+        - "K8s Cluster"
+      summary: Listing Infra controller profiles
+      description: This API is used to list all Infra controller profiles
+      operationId: listInfraControllerProfile
       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':
@@ -4259,30 +5029,23 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    post:
+  '/k8scluster/v1/infra_controller_profiles/{infra_controller_profile_id}':
+    parameters:
+      - name: infra_controller_profile_id
+        in: path
+        required: true
+        description: infra_controller_profile_id
+        schema:
+          type: string
+    get:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Create a new Role
-      description: Create a new Role
-      operationId: createRole
-      requestBody:
-        $ref: '#/components/requestBodies/CreateRoleRequest'
+        - "K8s Cluster"
+      summary: Reading Infra controller profiles
+      description: This API is used to reading specific Infra controller profile
+      operationId: readInfraControllerProfile
       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'
+        '200':
+          description: OK
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4307,31 +5070,17 @@ paths:
           $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:
+    patch:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Query information about an individual Role
-      description: Query information about an individual Role
-      operationId: getRole
+        - "K8s Cluster"
+      summary: Patching Infra controller profiles
+      description: This API is used to patch specific Infra controller profile
+      operationId: patchInfraControllerProfile
+      requestBody:
+        $ref: '#/components/requestBodies/ProfileInfo'
       responses:
-        '200':
-          description: OK
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/RoleInfo'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/RoleInfo'
+        '202':
+          description: Accepted
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4356,18 +5105,15 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    patch:
+    delete:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Modify a Role
-      description: Modify a Role
-      operationId: editRole
-      requestBody:
-        $ref: '#/components/requestBodies/EditRoleRequest'
+        - "K8s Cluster"
+      summary: Deleteing Infra controller profiles
+      description: This API is used to delete specific Infra controller profile
+      operationId: deleteInfraControllerProfile
       responses:
-        '204':
-          description: No Content
+        '202':
+          description: Accepted
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4392,16 +5138,25 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+  '/k8scluster/v1/clusters/{cluster_id}/infra_controller_profiles':
+    parameters:
+      - name: cluster_id
+        in: path
+        required: true
+        description: cluster_id
+        schema:
+          type: string
+    patch:
       tags:
-        - "Identity"
-        - "Admin"
-      summary: Delete a Role
-      description: Delete a Role
-      operationId: deleteRole
+        - "K8s Cluster"
+      summary: Adding or Removing Infra controller profile to cluster
+      description: This API is used to add or remove infra controller profile to cluster
+      operationId: addremoveInfraControllerProfile
+      requestBody:
+        $ref: '#/components/requestBodies/AttachDetachProfile'
       responses:
-        '204':
-          description: No Content
+        '202':
+          description: Accepted
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4426,24 +5181,15 @@ paths:
           $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
+        - "K8s Cluster"
+      summary: Getting Infra controller profile in cluster
+      description: This API is used to get infra controller profiles in specified cluster
+      operationId: getInfraControllerProfile
       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':
@@ -4468,25 +5214,25 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
+  '/k8scluster/v1/infra_config_profiles':
     post:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Create a new VIM
-      description: Create a new VIM
-      operationId: createVIM
+        - "K8s Cluster"
+      summary: Creating Infra config profiles
+      description: This API is used to create Infra config profiles
+      operationId: createInfraConfigProfile
       requestBody:
-        $ref: '#/components/requestBodies/CreateVimRequest'
+        $ref: '#/components/requestBodies/ProfileInfo'
       responses:
-        '202':
-          description: Accepted
+        '201':
+          description: Created
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ObjectId_plus_OpId'
+                $ref: '#/components/schemas/ObjectId'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/ObjectId_plus_OpId'
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4511,32 +5257,15 @@ paths:
           $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
+        - "K8s Cluster"
+      summary: Listing Infra config profiles
+      description: This API is used to list all Infra config profiles
+      operationId: listInfraConfigProfile
       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':
@@ -4561,25 +5290,23 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    patch:
+  '/k8scluster/v1/infra_config_profiles/{infra_config_profile_id}':
+    parameters:
+      - name: infra_config_profile_id
+        in: path
+        required: true
+        description: infra_config_profile_id
+        schema:
+          type: string
+    get:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Modify a VIM
-      description: Modify a VIM
-      operationId: editVIM
-      requestBody:
-        $ref: '#/components/requestBodies/EditVimRequest'
+        - "K8s Cluster"
+      summary: Reading Infra config profiles
+      description: This API is used to reading specific Infra config profile
+      operationId: readInfraConfigProfile
       responses:
-        '202':
-          description: Accepted
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/OpId'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/OpId'
+        '200':
+          description: OK
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4604,13 +5331,14 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+    patch:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Delete a VIM
-      description: Delete a VIM
-      operationId: deleteVIM
+        - "K8s Cluster"
+      summary: Patching Infra config profiles
+      description: This API is used to patch specific Infra config profile
+      operationId: patchInfraConfigProfile
+      requestBody:
+        $ref: '#/components/requestBodies/ProfileInfo'
       responses:
         '202':
           description: Accepted
@@ -4638,24 +5366,15 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/admin/v1/vim_accounts':
-    get:
+    delete:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Query information about multiple VIM Accounts
-      description: Query information about multiple VIM Accounts
-      operationId: getVimAccounts
+        - "K8s Cluster"
+      summary: Deleteing Infra config profiles
+      description: This API is used to delete specific Infra config profile
+      operationId: deleteInfraConfigProfile
       responses:
-        '200':
-          description: OK
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/ArrayOfVimInfo'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/ArrayOfVimInfo'
+        '202':
+          description: Accepted
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4680,25 +5399,25 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    post:
+  '/k8scluster/v1/clusters/{cluster_id}/infra_config_profiles':
+    parameters:
+      - name: cluster_id
+        in: path
+        required: true
+        description: cluster_id
+        schema:
+          type: string
+    patch:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Create a new VIM Account
-      description: Create a new VIM Account
-      operationId: createVimAccount
+        - "K8s Cluster"
+      summary: Adding or Removing Infra config profile to cluster
+      description: This API is used to add or remove infra config profile to cluster
+      operationId: addremoveInfraConfigProfile
       requestBody:
-        $ref: '#/components/requestBodies/CreateVimRequest'
+        $ref: '#/components/requestBodies/AttachDetachProfile'
       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':
@@ -4723,32 +5442,15 @@ paths:
           $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
+        - "K8s Cluster"
+      summary: Getting Infra config profile in cluster
+      description: This API is used to get infra config profiles in specified cluster
+      operationId: getInfraConfigProfile
       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':
@@ -4773,25 +5475,25 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    patch:
+  '/k8scluster/v1/resource_profiles':
+    post:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Modify a VIM Account
-      description: Modify a VIM Account
-      operationId: editVimAccount
+        - "K8s Cluster"
+      summary: Creating resource profiles
+      description: This API is used to create resource profiles
+      operationId: createResourceProfile
       requestBody:
-        $ref: '#/components/requestBodies/EditVimRequest'
+        $ref: '#/components/requestBodies/ProfileInfo'
       responses:
-        '202':
-          description: Accepted
+        '201':
+          description: Created
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/OpId'
+                $ref: '#/components/schemas/ObjectId'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/OpId'
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4816,16 +5518,15 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+    get:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Delete a VIM Account
-      description: Delete a VIM Account
-      operationId: deleteVimAccount
+        - "K8s Cluster"
+      summary: Listing resource profiles
+      description: This API is used to list all resource profiles
+      operationId: listResourceProfile
       responses:
-        '202':
-          description: Accepted
+        '200':
+          description: OK
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4850,24 +5551,23 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/admin/v1/wim_accounts':
+  '/k8scluster/v1/resource_profiles/{resource_profile_id}':
+    parameters:
+      - name: resource_profile_id
+        in: path
+        required: true
+        description: resource_profile_id
+        schema:
+          type: string
     get:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Query information about multiple WIM Accounts
-      description: Query information about multiple WIM Accounts
-      operationId: getWimAccounts
+        - "K8s Cluster"
+      summary: Reading resource profiles
+      description: This API is used to reading specific resource profile
+      operationId: readResourceProfile
       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':
@@ -4892,25 +5592,17 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    post:
+    patch:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Create a new WIM Account
-      description: Create a new WIM Account
-      operationId: createWimAccount
+        - "K8s Cluster"
+      summary: Patching resource profiles
+      description: This API is used to patch specific resource profile
+      operationId: patchResourceProfile
       requestBody:
-        $ref: '#/components/requestBodies/CreateWimRequest'
+        $ref: '#/components/requestBodies/ProfileInfo'
       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':
@@ -4935,32 +5627,15 @@ paths:
           $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:
+    delete:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Query information about an individual WIM Account
-      description: Query information about an individual WIM Account
-      operationId: getWimAccount
+        - "K8s Cluster"
+      summary: Deleteing resource profiles
+      description: This API is used to delete specific resource profile
+      operationId: deleteResourceProfile
       responses:
-        '200':
-          description: OK
-          content:
-            application/json:
-              schema:
-                $ref: '#/components/schemas/WimInfo'
-            application/yaml:
-              schema:
-                $ref: '#/components/schemas/WimInfo'
+        '202':
+          description: Accepted
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -4985,25 +5660,25 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
+  '/k8scluster/v1/clusters/{cluster_id}/resource_profiles':
+    parameters:
+      - name: cluster_id
+        in: path
+        required: true
+        description: cluster_id
+        schema:
+          type: string
     patch:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Modify a WIM Account
-      description: Modify a WIM Account
-      operationId: editWimAccount
+        - "K8s Cluster"
+      summary: Adding or Removing Resource profile to cluster
+      description: This API is used to add or remove resource profiles to cluster
+      operationId: addremoveResourceProfile
       requestBody:
-        $ref: '#/components/requestBodies/EditWimRequest'
+        $ref: '#/components/requestBodies/AttachDetachProfile'
       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':
@@ -5028,16 +5703,15 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+    get:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Delete a WIM Account
-      description: Delete a WIM Account
-      operationId: deleteWimAccount
+        - "K8s Cluster"
+      summary: Getting Resource profile in cluster
+      description: This API is used to get resource profiles in specified cluster
+      operationId: getResourceProfile
       responses:
-        '202':
-          description: Accepted
+        '200':
+          description: OK
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -5062,24 +5736,19 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/admin/v1/sdns':
+#END k8s Cluster
+
+# BEGIN OKA packages
+  '/oka/v1/oka_packages':
     get:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Query information about multiple SDNs
-      description: Query information about multiple SDNs
-      operationId: getSDNs
+        - "OKA packages"
+      summary: List OKA package
+      description: This API is used to List OKA packages
+      operationId: getOKAPackage
       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':
@@ -5106,23 +5775,25 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
     post:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Create a new SDN
-      description: Create a new SDN
-      operationId: createSDN
+        - "OKA packages"
+      summary: Add OKA package
+      description: This API is used to add OKA packages
+      operationId: addOKAPackage
       requestBody:
-        $ref: '#/components/requestBodies/CreateSdnRequest'
+        content:
+          application/zip:
+            schema:
+              $ref: '#/components/schemas/OkaPackage'
       responses:
-        '202':
-          description: Accepted
+        '201':
+          description: Created
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ObjectId_plus_OpId'
+                $ref: '#/components/schemas/ObjectId'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/ObjectId_plus_OpId'
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -5147,32 +5818,23 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/admin/v1/sdns/{sdnId}':
+  '/oka/v1/oka_packages/{oka_pkg_id}':
     parameters:
-      - name: sdnId
+      - name: oka_pkg_id
         in: path
         required: true
-        description: SDN ID
+        description: oka_pkg_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
+        - "OKA packages"
+      summary: Read OKA package
+      description: This API is used to Read OKA packages
+      operationId: readOKAPackage
       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':
@@ -5199,23 +5861,18 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
     patch:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Modify a SDN
-      description: Modify a SDN
-      operationId: editSDN
+        - "OKA packages"
+      summary: Update OKA package
+      description: This API is used to Update OKA packages
+      operationId: updateOKAPackage
       requestBody:
-        $ref: '#/components/requestBodies/EditSdnRequest'
+        content:
+          application/zip:
+            schema:
+              $ref: '#/components/schemas/OkaPackage'
       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':
@@ -5242,11 +5899,10 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
     delete:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Delete a SDN
-      description: Delete a SDN
-      operationId: deleteSDN
+        - "OKA packages"
+      summary: Delete OKA package
+      description: This API is used to Delete OKA packages
+      operationId: deleteOKAPackage
       responses:
         '202':
           description: Accepted
@@ -5274,24 +5930,19 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/admin/v1/k8sclusters':
+# END OKA packages
+
+# BEGIN KSU
+  '/ksu/v1/ksus':
     get:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Query information about multiple K8s Clusters
-      description: Query information about multiple K8s Clusters
-      operationId: getK8sClusters
+        - "KSU"
+      summary: Get KSU
+      description: This API is used to Get KSU
+      operationId: getKSU
       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':
@@ -5318,23 +5969,22 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
     post:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Create a new K8s Cluster
-      description: Create a new K8s Cluster
-      operationId: createK8sCluster
+        - "KSU"
+      summary: Add KSU
+      description: This API is used to Add KSU
+      operationId: addKSU
       requestBody:
-        $ref: '#/components/requestBodies/CreateK8sClusterRequest'
+        $ref: '#/components/requestBodies/MultipleKsu'
       responses:
-        '202':
-          description: Accepted
+        '201':
+          description: Created
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ObjectId_plus_OpId'
+                $ref: '#/components/schemas/ObjectId'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/ObjectId_plus_OpId'
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -5359,32 +6009,23 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/admin/v1/k8sclusters/{k8sClusterId}':
+  '/ksu/v1/ksus/{ksu_id}':
     parameters:
-      - name: k8sClusterId
+      - name: ksu_id
         in: path
         required: true
-        description: K8s Cluster ID
+        description: ksu_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
+        - "KSU"
+      summary: Read KSU
+      description: This API is used to Read KSU
+      operationId: readKSU
       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':
@@ -5411,23 +6052,170 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
     patch:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Modify a K8s Cluster
-      description: Modify a K8s Cluster
-      operationId: editK8sCluster
+        - "KSU"
+      summary: Update KSU
+      description: This API is used to Update KSU
+      operationId: updateKSU
       requestBody:
-        $ref: '#/components/requestBodies/EditK8sClusterRequest'
+        $ref: '#/components/requestBodies/Ksu'
+      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'
+    delete:
+      tags:
+        - "KSU"
+      summary: Delete KSU
+      description: This API is used to Delete KSU
+      operationId: deleteKSU
+      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'
+  '/ksu/v1/ksus/update':
+    post:
+      tags:
+        - "KSU"
+      summary: Update multiple KSU
+      description: This API is used to Update multiple KSU
+      operationId: updateMultipleKSU
+      requestBody:
+        $ref: '#/components/requestBodies/MultipleKsu'
+      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'
+  '/ksu/v1/ksus/delete':
+    post:
+      tags:
+        - "KSU"
+      summary: Delete multiple KSU
+      description: This API is used to Delete multiple KSU
+      operationId: deleteMultipleKSU
+      requestBody:
+        $ref: '#/components/requestBodies/DeleteMultipleKsu'
+      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'
+  '/ksu/v1/ksus/{ksu_id}/clone':
+    parameters:
+      - name: ksu_id
+        in: path
+        required: true
+        description: ksu_id
+        schema:
+          type: string
+    post:
+      tags:
+        - "KSU"
+      summary: Clone KSU
+      description: This API is used to Clone KSU
+      operationId: cloneKSU
+      requestBody:
+        $ref: '#/components/requestBodies/CloneKsu'
       responses:
         '202':
           description: Accepted
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/OpId'
+                $ref: '#/components/schemas/ObjectId'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/OpId'
+                $ref: '#/components/schemas/ObjectId'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -5452,13 +6240,22 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+  '/ksu/v1/ksus/{ksu_id}/move':
+    parameters:
+      - name: ksu_id
+        in: path
+        required: true
+        description: ksu_id
+        schema:
+          type: string
+    post:
       tags:
-        - "Infrastructure"
-        - "Admin"
-      summary: Delete a K8s Cluster
-      description: Delete a K8s Cluster
-      operationId: deleteK8sCluster
+        - "KSU"
+      summary: Move KSU
+      description: This API is used to Move KSU
+      operationId: moveKSU
+      requestBody:
+        $ref: '#/components/requestBodies/MoveKsu'
       responses:
         '202':
           description: Accepted
@@ -5486,24 +6283,27 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-  '/admin/v1/k8srepos':
+# END KSU
+
+# BEGIN Admin
+  '/admin/v1/tokens':
     get:
       tags:
-        - "Repositories"
+        - "Authentication"
         - "Admin"
-      summary: Query information about multiple K8s Repos
-      description: Query information about multiple K8s Repos
-      operationId: getK8sRepos
+      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/ArrayOfK8sRepoInfo'
+                $ref: '#/components/schemas/ArrayOfTokenInfo'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/ArrayOfK8sRepoInfo'
+                $ref: '#/components/schemas/ArrayOfTokenInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -5530,23 +6330,32 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
     post:
       tags:
-        - "Repositories"
+        - "Authentication"
         - "Admin"
-      summary: Create a new K8s Repo
-      description: Create a new K8s Repo
-      operationId: createK8sRepo
+      summary: Request a new Token
+      description: Request a new Token
+      operationId: createToken
       requestBody:
-        $ref: '#/components/requestBodies/CreateK8sRepoRequest'
+        $ref: '#/components/requestBodies/CreateTokenRequest'
       responses:
-        '202':
-          description: Accepted
+        '200':
+          description: OK
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
           content:
             application/json:
               schema:
-                $ref: '#/components/schemas/ObjectId_plus_OpId'
+                oneOf:
+                  - $ref: '#/components/schemas/TokenInfo'
+                  - $ref: '#/components/schemas/PasswordExpiryInfo'
             application/yaml:
               schema:
-                $ref: '#/components/schemas/ObjectId_plus_OpId'
+                oneOf:
+                  - $ref: '#/components/schemas/TokenInfo'
+                  - $ref: '#/components/schemas/PasswordExpiryInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -5571,32 +6380,23 @@ paths:
           $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:
+    delete:
       tags:
-        - "Repositories"
+        - "Authentication"
         - "Admin"
-      summary: Query information about an individual K8s Repo
-      description: Query information about an individual K8s Repo
-      operationId: getK8sRepo
+      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:
-                $ref: '#/components/schemas/K8sRepoInfo'
+                type: string
             application/yaml:
               schema:
-                $ref: '#/components/schemas/K8sRepoInfo'
+                type: string
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -5621,16 +6421,31 @@ paths:
           $ref: '#/components/responses/UnexpectedError'
         default:
           $ref: '#/components/responses/UnexpectedError'
-    delete:
+  '/admin/v1/tokens/{tokenId}':
+    parameters:
+      - name: tokenId
+        in: path
+        required: true
+        description: Token ID
+        schema:
+          type: string
+    get:
       tags:
-        - "Repositories"
+        - "Authentication"
         - "Admin"
-      summary: Delete a K8s Repo
-      description: Delete a K8s Repo
-      operationId: deleteK8sRepo
+      summary: Query information about an individual Token
+      description: Query information about an individual Token
+      operationId: getToken
       responses:
-        '202':
-          description: Accepted
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TokenInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/TokenInfo'
         '400':
           $ref: '#/components/responses/BadRequest'
         '401':
@@ -5655,19 +6470,2128 @@ paths:
           $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:
+    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.
@@ -5765,6 +8689,15 @@ components:
         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:
@@ -5774,6 +8707,14 @@ components:
         id:
           type: string
           format: uuid
+    ObjectIdList:
+      type: object
+      properties:
+        ns_ids:
+          type: array
+          items:
+            type: string
+            format: uuid
     KeyValuePairs:
       # A free list of key:value pairs
       type: object
@@ -5805,6 +8746,20 @@ components:
         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
@@ -5863,6 +8818,73 @@ components:
       required:
         - status
         - detail
+    CreateNsConfigTemplateInfoRequest:
+      type: object
+      properties:
+        name:
+          description: Ns Config Template name
+          type: string
+        nsdId:
+          description: |
+            ID of NS descriptor to which
+            template is associated
+          type: string
+        config:
+          description: Instantiation parameters
+          type: object
+          additionalProperties: false
+      required:
+        - name
+        - nsdId
+        - config
+      additionalProperties: false
+    NsConfigTemplateInfo:
+      description: |
+        Ns Config template information includes NSD ID, name
+        and instantiation parameters of vld, vnf, additionParamForVnf,
+        additionalParamsForNs.
+      type: object
+      properties:
+        _id:
+          description: |
+           Identifier of the inboarded Ns config template resource.
+          type: string
+          format: uuid
+        name:
+          description: |
+            Name of the onboarded Ns config template. This information
+            is given by the user and it is unique.
+          type: string
+        nsdId:
+          description: |
+           Identifier of the NS descriptor, which is associated
+           with Ns config template
+          type: string
+        config:
+          description: |
+            It includes instantiation parameters such as
+            vld, vnf, additionalParamforVnf.
+          type: object
+    ArrayOfNsConfigTemplateInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/NsConfigTemplateInfo'
+    NsConfigTemplateInfoModifications:
+      description: |
+        Ns Config Template information
+        It includes name of the template and instantiation parameters.
+        Ns descriptor id cannot be edited.
+      type: object
+      properties:
+        name:
+          description: |
+            Name of the template
+          type: string
+        config:
+          description: |
+            Instantiation parameters such as vld, vnf, additionalParamsForVnf
+            can be edit.
+          type: object
     VnfDescriptor:
       type: string
       format: yaml|json
@@ -5964,6 +8986,12 @@ components:
             Identifier of the VIM Account where the NS instance shall be created.
           type: string
           format: uuid
+        nsConfigTemplateId:
+          description: |
+            Identifier of the Ns config template which is selected
+            while instantiation
+          type: string
+          format: uuid
         lcmOperationType:
           type: string
         nsInstanceId:
@@ -6321,6 +9349,101 @@ components:
         - 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:
@@ -6364,8 +9487,98 @@ components:
           description: timeout for the day 1/2 operation
           type: integer
       required:
-        - primitive
-        - primitive_params
+        - 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
+            - VERTICAL_SCALE
+        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
+        verticalScaleVnf:
+          type: object
+          properties:
+            vnfInstanceId:
+              type: string
+            vnfdId:
+              type: string
+            vduId:
+              type: string
+            countIndex:
+              type: number
+          required:
+            - vnfInstanceId
+            - vnfdId
+            - vduId
+      required:
+        - updateType
+      additionalProperties: false
+    MultiNsTerminateRequest:
+      type: object
+      properties:
+        ns_ids:
+          description: List of Ns instance Ids to be deleted
+          type: array
+          items:
+            type: string
+            format: uuid
+        autoremove:
+          description: remove network service if termination end without error
+          type: boolean
       additionalProperties: false
     # CreateNSinstanceContentRequest:
       # Substituted by InstantiateNsRequest
@@ -6529,6 +9742,45 @@ components:
       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:
@@ -6941,6 +10193,8 @@ components:
           type: string
         admin:
           type: boolean
+        admin_show:
+          type: boolean
         project_id:
           type: string
           format: uuid
@@ -6954,6 +10208,13 @@ components:
         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
@@ -6972,6 +10233,16 @@ components:
                 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:
@@ -7081,6 +10352,15 @@ components:
           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'
@@ -7134,6 +10414,10 @@ components:
           type: integer
           minimum: 0
           nullable: false
+        vca:
+          type: integer
+          minimum: 0
+          nullable: false
         k8srepos:
           type: integer
           minimum: 0
@@ -7186,6 +10470,10 @@ components:
           type: integer
           minimum: 0
           nullable: true
+        vca:
+          type: integer
+          minimum: 0
+          nullable: true
         k8srepos:
           type: integer
           minimum: 0
@@ -7195,59 +10483,446 @@ components:
           minimum: 0
           nullable: true
       additionalProperties: false
-    ProjectInfo:
+    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
+        creds:
+          type: string
+      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:
+        op_id:
+          type: string
+          format: uuid
+    WimType:
+      type: string
+      enum:
+        - onos
+        - odl
+        - tapi
+        - dynpac
+        - fake
+    WimInfo:
       type: object
       properties:
         _id:
           type: string
           format: uuid
+        schema_version:
+          type: string
+          format: X.Y[.Z]
+        schema_type:
+          type: string
         name:
           type: string
-        quotas:
-          $ref: '#/components/schemas/QuotasInfo'
-    ArrayOfProjectInfo:
+        description:
+          type: string
+        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/ProjectInfo'
-    CreateProjectRequest:
+        $ref: '#/components/schemas/WimInfo'
+    CreateWimRequest:
       type: object
       properties:
+        schema_version:
+          type: string
+          format: X.Y[.Z]
+        schema_type:
+          type: string
         name:
           type: string
-        admin:
-          type: boolean
-        quotas:
-          $ref: '#/components/schemas/QuotasInfo'
+        description:
+          type: string
+        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:
         - name
+        - wim_url
+        - wim_type
       additionalProperties: false
-    EditProjectRequest:
+    EditWimRequest:
       type: object
       properties:
         name:
           type: string
-        admin:
-          type: boolean
-        quotas:
-          $ref: '#/components/schemas/EditQuotasInfo'
+        description:
+          type: string
+        wim:
+          type: string
+        wim_type:
+          type: string
+        wim_url:
+          type: string
+          format: uri
+        user:
+          type: string
+        password:
+          type: string
+        config:
+          type: object
+          additionalProperties: true
       additionalProperties: false
-    PermissionsInfo:
+    SdnBasicProperties:
       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:
+      properties:
+        name:
+          type: string
+        description:
+          type: string
+        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
-      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:
+      properties:
+        _id:
+          type: string
+          format: uuid
+        schema_version:
+          type: string
+          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:
+        - 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:
+        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:
         _id:
@@ -7255,41 +10930,89 @@ components:
           format: uuid
         name:
           type: string
-        permissions:
-          $ref: '#/components/schemas/PermissionsInfo'
-    ArrayOfRoleInfo:
+        type:
+          type: string
+        description:
+          type: string
+        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/RoleInfo'
-    CreateRoleRequest:
+        $ref: '#/components/schemas/PduInfo'
+    CreatePduRequest:
       type: object
       properties:
         name:
           type: string
-        permissions:
-          $ref: '#/components/schemas/PermissionsInfo'
+        type:
+          type: string
+        description:
+          type: string
+        shared:
+          type: boolean
+        vims:
+          type: array
+          items:
+            type: string
+        vim_accounts:
+          type: array
+          items:
+            type: string
+        interfaces:
+          $ref: '#/components/schemas/PduInterfaces'
       required:
         - name
+        - type
+        - interfaces
       additionalProperties: false
-    EditRoleRequest:
+    EditPduRequest:
       type: object
       properties:
         name:
           type: string
-        permissions:
-          $ref: '#/components/schemas/EditPermissionsInfo'
+        type:
+          type: string
+        description:
+          type: string
+        shared:
+          type: boolean
+        vims:
+          type: array
+          items:
+            type: string
+        vim_accounts:
+          type: array
+          items:
+            type: string
+        interfaces:
+          $ref: '#/components/schemas/PduInterfaces'
       additionalProperties: false
-    VimType:
-      type: string
-      enum:
-        - openvim
-        - openstack
-        - vmware
-        - opennebula
-        - aws
-        - azure
-        - fos
-    VimInfo:
+    K8sClusterNetList:
+      type: array
+      items:
+        type: object
+        additionalProperties: false
+    K8sClusterDeploymentMethods:
+      type: object
+      properties:
+        juju-bundle:
+          type: boolean
+        helm-chart-v3:
+          type: boolean
+      additionalProperties: false
+      minProperties: 3
+    K8sClusterInfo:
       type: object
       properties:
         _id:
@@ -7304,29 +11027,29 @@ components:
           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:
+        credentials:
+          type: object
+          additionalProperties: true
+        vim_account:
           type: string
-        vim_user:
+          format: uuid
+        k8s_version:
           type: string
-        vim_password:
+        nets:
+          $ref: '#/components/schemas/K8sClusterNetList'
+        deployment_methods:
+          $ref: '#/components/schemas/K8sClusterDeploymentMethods'
+        namespace:
           type: string
-        config:
-          type: object
-          additionalProperties: true
-    ArrayOfVimInfo:
+        cni:
+          type: array
+          items:
+            type: string
+    ArrayOfK8sClusterInfo:
       type: array
       items:
-        $ref: '#/components/schemas/VimInfo'
-    CreateVimRequest:
+        $ref: '#/components/schemas/K8sClusterInfo'
+    CreateK8sClusterRequest:
       type: object
       properties:
         schema_version:
@@ -7338,82 +11061,54 @@ components:
           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:
+        credentials:
+          type: object
+          additionalProperties: true
+        vim_account:
           type: string
-        vim_user:
+          format: uuid
+        k8s_version:
           type: string
-        vim_password:
+        nets:
+          $ref: '#/components/schemas/K8sClusterNetList'
+        namespace:
           type: string
-        config:
-          type: object
-          additionalProperties: true
+        cni:
+          type: array
+          items:
+            type: string
       required:
         - name
-        - vim_url
-        - vim_type
-        - vim_user
-        - vim_password
-        - vim_tenant_name
+        - credentials
+        - vim_account
+        - k8s_version
+        - nets
       additionalProperties: false
-    EditVimRequest:
+    EditK8sClusterRequest:
       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
-        config:
+        credentials:
           type: object
           additionalProperties: true
-      additionalProperties: false
-    ObjectId_plus_OpId:
-      type: object
-      properties:
-        id:
+        vim_account:
           type: string
           format: uuid
-        op_id:
+        k8s_version:
           type: string
-          format: uuid
-    OpId:
-      type: object
-      properties:
-        op_id:
+        nets:
+          $ref: '#/components/schemas/K8sClusterNetList'
+        namespace:
           type: string
-          format: uuid
-    WimType:
-      type: string
-      enum:
-        - onos
-        - odl
-        - tapi
-        - dynpac
-        - fake
-    WimInfo:
+        cni:
+          type: array
+          items:
+            type: string
+      additionalProperties: false
+    VcaInfo:
       type: object
       properties:
         _id:
@@ -7428,25 +11123,30 @@ components:
           type: string
         description:
           type: string
-        wim:
-          type: string
-        wim_type:
-          $ref: '#/components/schemas/WimType'
-        wim_url:
+        endpoints:
           type: string
-          format: uri
         user:
           type: string
-        password:
+        secret:
           type: string
-        config:
+        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
-    ArrayOfWimInfo:
+    ArrayOfVcaInfo:
       type: array
       items:
-        $ref: '#/components/schemas/WimInfo'
-    CreateWimRequest:
+        $ref: '#/components/schemas/VcaInfo'
+    CreateVcaRequest:
       type: object
       properties:
         schema_version:
@@ -7458,377 +11158,474 @@ components:
           type: string
         description:
           type: string
-        wim:
-          type: string
-        wim_type:
-          $ref: '#/components/schemas/WimType'
-        wim_url:
+        endpoints:
           type: string
-          format: uri
         user:
           type: string
-        password:
+        secret:
           type: string
-        config:
+        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:
         - name
-        - wim_url
-        - wim_type
+        - endpoints
+        - user
+        - secret
+        - cacert
+        - lxd-cloud
+        - lxd-credentials
+        - k8s-cloud
+        - k8s-credentials
       additionalProperties: false
-    EditWimRequest:
+    EditVcaRequest:
       type: object
       properties:
         name:
           type: string
         description:
           type: string
-        wim:
+        endpoints:
+          type: string
+        user:
+          type: string
+        secret:
+          type: string
+        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
+      additionalProperties: false
+    K8sRepoType:
+      type: string
+      enum:
+        - chart
+        - bundle
+    K8sRepoInfo:
+      type: object
+      properties:
+        _id:
+          type: string
+          format: uuid
+        name:
           type: string
-        wim_type:
+        description:
           type: string
-        wim_url:
+        type:
+          $ref: '#/components/schemas/K8sRepoType'
+        url:
           type: string
           format: uri
-        user:
+        username:
           type: string
+          description: repository username
         password:
           type: string
-        config:
-          type: object
-          additionalProperties: true
+          description: repository password
+        ca-file:
+          type: string
+          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:
+        - name
+        - type
+        - url
       additionalProperties: false
-    SdnBasicProperties:
+    ArrayOfK8sRepoInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/K8sRepoInfo'
+    CreateK8sRepoRequest:
       type: object
       properties:
         name:
           type: string
         description:
           type: string
-        dpid:
-          type: string
-          format: mac_address
-        ip:
-          type: string
-          format: ipv4
-        port:
-          type: integer
         type:
+          $ref: '#/components/schemas/K8sRepoType'
+        url:
           type: string
-          enum:
-            - floodlight
-            - opendaylight
-            - onos
-        version:
-          type: string
-        user:
+          format: uri
+      required:
+        - name
+        - type
+        - url
+      additionalProperties: false
+    NslcmSubscriptionResponse:
+      type: object
+      properties:
+        id:
           type: string
-        password:
+          format: uuid
+        filter:
+          type: object
+        CallbackUri:
           type: string
-    SdnExtraProperties:
+          format: uri
+        _links:
+          type: object
+    NslcmSubscriptionInfo:
       type: object
       properties:
         _id:
           type: string
           format: uuid
+        _admin:
+          type: object
         schema_version:
           type: string
-          format: X.Y[.Z]
-    SdnInfo:
-      allOf:
-        - $ref: '#/components/schemas/SdnExtraProperties'
-        - $ref: '#/components/schemas/SdnBasicProperties'
-    ArrayOfSdnInfo:
+          format: 'X.Y[.Z]'
+        CallbackUri:
+          type: string
+          format: uri
+        filter:
+          type: object
+        authentication:
+          $ref: '#/components/schemas/Authenticationschema'
+    ArrayOfNslcmSubscriptionInfo:
       type: array
       items:
-        $ref: '#/components/schemas/SdnInfo'
-    CreateSdnRequest:
-      allOf:
-        - $ref: '#/components/schemas/SdnBasicProperties'
-      required:
-        - name
-        - type
-        - ip
-        - port
-        - dpid
-      additionalProperties: false
-    EditSdnRequest:
-      allOf:
-        - $ref: '#/components/schemas/SdnBasicProperties'
-      additionalProperties: false
-    NsPmJobReportInfo:
+        $ref: '#/components/schemas/NslcmSubscriptionInfo'
+    NsInstanceSubscriptionFilter:
+      description: |
+        used to identify the network service
       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:
+      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: 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: 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:
-        _id:
-          type: string
-          format: uuid
-        name:
-          type: string
-        type:
-          type: string
-        description:
-          type: string
-        shared:
-          type: boolean
-        vims:
+        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
-        vim_accounts:
+            enum:
+              - NsIdentifierCreationNotification
+              - NsIdentifierDeletionNotification
+              - NsLcmOperationOccurrenceNotification
+              - NsChangeNotification
+        operationTypes:
           type: array
           items:
             type: string
-        interfaces:
-          $ref: '#/components/schemas/PduInterfaces'
-    ArrayOfPduInfo:
-      type: array
-      items:
-        $ref: '#/components/schemas/PduInfo'
-    CreatePduRequest:
-      type: object
-      properties:
-        name:
-          type: string
-        type:
-          type: string
-        description:
-          type: string
-        shared:
-          type: boolean
-        vims:
+            enum:
+              - INSTANTIATE
+              - SCALE
+              - TERMINATE
+              - UPDATE
+              - HEAL
+        operationStates:
           type: array
           items:
             type: string
-        vim_accounts:
+            enum:
+              - PROCESSING
+              - COMPLETED
+              - PARTIALLY_COMPLETED
+              - FAILED
+              - FAILED_TEMP
+              - ROLLING_BACK
+              - ROLLED_BACK
+        nsComponentTypes:
           type: array
           items:
             type: string
-        interfaces:
-          $ref: '#/components/schemas/PduInterfaces'
-      required:
-        - name
-        - type
-        - interfaces
-      additionalProperties: false
-    EditPduRequest:
-      type: object
-      properties:
-        name:
-          type: string
-        type:
-          type: string
-        description:
-          type: string
-        shared:
-          type: boolean
-        vims:
+            enum:
+              - VNF
+              - NS
+              - PNF
+        lcmOpNameImpactingNsComponent:
           type: array
           items:
             type: string
-        vim_accounts:
+            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
-        interfaces:
-          $ref: '#/components/schemas/PduInterfaces'
-      additionalProperties: false
-    K8sClusterNetList:
-      type: array
-      items:
-        type: object
-        additionalProperties: true
-    K8sClusterInfo:
+            enum:
+              - START
+              - COMPLETED
+              - PARTIALLY_COMPLETED
+              - FAILED
+              - ROLLED_BACK
+    Authenticationschema:
       type: object
       properties:
-        _id:
-          type: string
-          format: uuid
-        schema_version:
-          type: string
-          format: X.Y[.Z]
-        schema_type:
-          type: string
-        name:
+        authType:
           type: string
-        description:
-          type: string
-        credentials:
+          enum:
+            - basic
+        paramsBasic:
           type: object
-          additionalProperties: true
-        vim_account:
-          type: string
-          format: uuid
-        k8s_version:
-          type: string
-        nets:
-          $ref: '#/components/schemas/K8sClusterNetList'
-        namespace:
+          properties:
+            userName:
+              type: string
+            password:
+              type: string
+    NslcmSubscriptionRequest:
+      type: object
+      properties:
+        filter:
+          $ref: '#/components/schemas/Nslcmsubschema'
+        CallbackUri:
           type: string
-        cni:
-          type: array
-          items:
-            type: string
-    ArrayOfK8sClusterInfo:
-      type: array
-      items:
-        $ref: '#/components/schemas/K8sClusterInfo'
-    CreateK8sClusterRequest:
+          format: uri
+        authentication:
+          $ref: '#/components/schemas/Authenticationschema'
+      required:
+        - CallbackUri
+    CancelNSLCMOpOccRequest:
       type: object
       properties:
-        schema_version:
-          type: string
-          format: X.Y[.Z]
-        schema_type:
+        cancelMode:
           type: string
+          enum:
+            - GRACEFUL
+            - FORCEFUL
+    CreateClusterInfo:
+      type: object
+      properties:
         name:
           type: string
-        description:
-          type: string
-        credentials:
-          type: object
-          additionalProperties: true
         vim_account:
           type: string
-          format: uuid
+        location:
+          type: string
         k8s_version:
           type: string
-        nets:
-          $ref: '#/components/schemas/K8sClusterNetList'
-        namespace:
+        node_size:
           type: string
-        cni:
+        node_count:
+          type: string
+        description:
+          type: string
+        region_name:
+          type: string
+        resource_group:
+          type: string
+        infra_controller_profiles:
           type: array
           items:
             type: string
-      required:
-        - name
-        - credentials
-        - vim_account
-        - k8s_version
-        - nets
-      additionalProperties: false
-    EditK8sClusterRequest:
+        infra_config_profiles:
+          type: array
+          items:
+            type: string
+        resource_profiles:
+          type: array
+          items:
+            type: string
+        app_profiles:
+          type: array
+          items:
+            type: string
+    ScaleNodeInfo:
+      type: object
+      properties:
+        node_count:
+          type: integer
+    ProfileInfo:
       type: object
       properties:
         name:
           type: string
         description:
           type: string
-        credentials:
-          type: object
-          additionalProperties: true
-        vim_account:
-          type: string
-          format: uuid
+    UpgradeClusterInfo:
+      type: object
+      properties:
         k8s_version:
           type: string
-        nets:
-          $ref: '#/components/schemas/K8sClusterNetList'
-        namespace:
-          type: string
-        cni:
-          type: array
-          items:
-            type: string
-      additionalProperties: false
-    K8sRepoType:
-      type: string
-      enum:
-        - chart
-        - bundle
-    K8sRepoInfo:
+    AttachDetachProfile:
+      type: object
+      properties:
+        add_profile:
+            type: array
+            items:
+              type: object
+              properties:
+                _id:
+                  type: string
+        remove_profile:
+            type: array
+            items:
+              type: object
+              properties:
+                _id:
+                  type: string
+    OkaPackage:
       type: object
       properties:
-        _id:
-          type: string
-          format: uuid
         name:
           type: string
         description:
           type: string
-        type:
-          $ref: '#/components/schemas/K8sRepoType'
-        url:
+        package:
           type: string
-          format: uri
-    ArrayOfK8sRepoInfo:
-      type: array
-      items:
-        $ref: '#/components/schemas/K8sRepoInfo'
-    CreateK8sRepoRequest:
+          format: binary
+    MultipleKsu:
+      type: object
+      properties:
+        ksus:
+          type: array
+          items:
+            type: object
+            properties:
+              name:
+                type: string
+              profile:
+                type: object
+                properties:
+                  _id:
+                    type: string
+                  profile_type:
+                    type: string
+              oka:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    _id:
+                      type: string
+                    sw_catalog_path:
+                      type: string
+                    transformation:
+                      type: object
+              description:
+                type: string
+    Ksu:
       type: object
       properties:
         name:
           type: string
         description:
           type: string
-        type:
-          $ref: '#/components/schemas/K8sRepoType'
-        url:
+        profile:
+          type: object
+          properties:
+            id:
+              type: string
+            profile_type:
+                type: string
+        oka:
+          type: array
+          items:
+            type: object
+            properties:
+              _id:
+                type: string
+              sw_catalog_path:
+                type: string
+              transformation:
+                type: object
+    DeleteMultipleKsu:
+      type: object
+      properties:
+        ksus:
+          type: array
+          items:
+            type: object
+            properties:
+              _id:
+                type: string
+    CloneKsu:
+      type: object
+      properties:
+        name:
           type: string
-          format: uri
-      required:
-        - name
-        - type
-        - url
-      additionalProperties: false
+        profile:
+          type: object
+          properties:
+            _id:
+              type: string
+            profile_type:
+              type: string
+    MoveKsu:
+      type: object
+      properties:
+        profile:
+          type: object
+          properties:
+            _id:
+              type: string
+            profile_type:
+              type: string
   # END SCHEMAS
 
   requestBodies:
@@ -7848,6 +11645,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:
@@ -7858,6 +11663,22 @@ components:
         application/zip:
           schema:
             $ref: '#/components/schemas/NsPackage'
+    CreateNsConfigTemplateInfoRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateNsdInfoRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateNsdInfoRequest'
+    NsConfigTemplateInfoModifications:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/NsdInfoModifications'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/NsdInfoModifications'
     CreateVnfPkgInfoRequest:
       content:
         application/json:
@@ -7894,6 +11715,22 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/InstantiateNsRequest'
+    HealNsRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/HealNsRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/HealNsRequest'
+    NSinstanceMigrateRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/NSinstanceMigrateRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/NSinstanceMigrateRequest'
     ScaleNsRequest:
       content:
         application/json:
@@ -7910,6 +11747,22 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/TerminateNsRequest'
+    UpdateNsRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/UpdateNsRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/UpdateNsRequest'
+    MultiNsTerminateRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/MultiNsTerminateRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/MultiNsTerminateRequest'
     # CreateNSinstanceContentRequest:
       # Substituted by InstantiateNsRequest
     CreateNstInfoRequest:
@@ -8102,6 +11955,22 @@ components:
         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:
@@ -8110,6 +11979,102 @@ components:
         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/CancelNSLCMOpOccRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CancelNSLCMOpOccRequest'
+    CreateCluster:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateClusterInfo'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateClusterInfo'
+    ScaleNode:
+      content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/ScaleNodeInfo'
+          application/yaml:
+            schema:
+              $ref: '#/components/schemas/ScaleNodeInfo'
+    UpgradeCluster:
+      content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/UpgradeClusterInfo'
+          application/yaml:
+            schema:
+              $ref: '#/components/schemas/UpgradeClusterInfo'
+    ProfileInfo:
+      content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/ProfileInfo'
+          application/yaml:
+            schema:
+              $ref: '#/components/schemas/ProfileInfo'
+    AttachDetachProfile:
+      content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/AttachDetachProfile'
+          application/yaml:
+            schema:
+              $ref: '#/components/schemas/AttachDetachProfile'
+    MultipleKsu:
+      content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/MultipleKsu'
+          application/yaml:
+            schema:
+              $ref: '#/components/schemas/MultipleKsu'
+    Ksu:
+      content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/Ksu'
+          application/yaml:
+            schema:
+              $ref: '#/components/schemas/Ksu'
+    DeleteMultipleKsu:
+      content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/DeleteMultipleKsu'
+          application/yaml:
+            schema:
+              $ref: '#/components/schemas/DeleteMultipleKsu'
+    CloneKsu:
+      content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/CloneKsu'
+          application/yaml:
+            schema:
+              $ref: '#/components/schemas/CloneKsu'
+    MoveKsu:
+      content:
+          application/json:
+            schema:
+              $ref: '#/components/schemas/MoveKsu'
+          application/yaml:
+            schema:
+              $ref: '#/components/schemas/MoveKsu'
   # END REQUEST BODIES
 
   securitySchemes: