Additional Update to NBI OpenAPI description 71/8071/7
authordelacruzram <e.nvi002.tid@telefonica.com>
Tue, 22 Oct 2019 11:13:01 +0000 (13:13 +0200)
committerdelacruzram <e.nvi002.tid@telefonica.com>
Thu, 2 Jan 2020 11:42:36 +0000 (11:42 +0000)
Change-Id: Ic4fcb7ded8382049e8935258e7a02e55f6147c91
Signed-off-by: delacruzram <e.nvi002.tid@telefonica.com>
osm-openapi.yaml

index 8c57f43..eb3f7c6 100644 (file)
@@ -29,12 +29,12 @@ tags:
     description: Management operations of NetSlice Templates
   - name: 'NetSlice instances'
     description: Management operations of NetSlice Instances
-# - name: 'NSPM'
-#   description: Management operations of NSPMs
-# - name: 'PDU'
-#   description: Management operations of PDUs
-# - name: 'Admin'
-#   description: Management operations of Administration items
+  - name: 'NSPM'
+    description: Management operations of NSPMs
+  - name: 'PDU'
+    description: Management operations of PDUs
+  - name: 'Admin'
+    description: Management operations of Administration items
 
 security:
   - bearerAuth: []
@@ -137,7 +137,7 @@ paths:
         required: true
         description: NSD Info ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS packages"
@@ -253,7 +253,7 @@ paths:
         required: true
         description: NSD Info ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS packages"
@@ -345,13 +345,13 @@ paths:
         required: true
         description: NS Package ID
         schema:
-          type : string
+          type: string
       - name: artifactPath
         in: path
         required: true
         description: Artifact Path
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS packages"
@@ -408,7 +408,7 @@ paths:
         required: true
         description: NS Package ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS packages"
@@ -559,7 +559,7 @@ paths:
         required: true
         description: NS Package ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS packages"
@@ -766,7 +766,7 @@ paths:
         required: true
         description: VNF Package ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "VNF packages"
@@ -882,7 +882,7 @@ paths:
         required: true
         description: VNF Package ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "VNF packages"
@@ -927,7 +927,7 @@ paths:
         required: true
         description: VNF Package ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "VNF packages"
@@ -1022,13 +1022,13 @@ paths:
         required: true
         description: VNF Package ID
         schema:
-          type : string
+          type: string
       - name: artifactPath
         in: path
         required: true
         description: Artifact Path
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "VNF packages"
@@ -1191,7 +1191,7 @@ paths:
         required: true
         description: VNF Package Content ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "VNF packages"
@@ -1351,7 +1351,7 @@ paths:
       description: Create a new NS instance resource
       operationId: addNSinstance
       requestBody:
-        $ref: '#/components/requestBodies/CreateNsRequest'
+        $ref: '#/components/requestBodies/InstantiateNsRequest'
       responses:
         '201':
           description: Created
@@ -1398,7 +1398,7 @@ paths:
         required: true
         description: NS Instance ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS instances"
@@ -1479,7 +1479,7 @@ paths:
         required: true
         description: NS Instance ID
         schema:
-          type : string
+          type: string
     post:
       tags:
         - "NS instances"
@@ -1542,7 +1542,7 @@ paths:
         required: true
         description: NS Instance ID
         schema:
-          type : string
+          type: string
     post:
       tags:
         - "NS instances"
@@ -1598,7 +1598,7 @@ paths:
         required: true
         description: NS Instance ID
         schema:
-          type : string
+          type: string
     post:
       tags:
         - "NS instances"
@@ -1662,7 +1662,7 @@ paths:
         required: true
         description: NS Instance ID
         schema:
-          type : string
+          type: string
     post:
       tags:
         - "NS instances"
@@ -1769,7 +1769,7 @@ paths:
       description: Create a new NS instance
       operationId: createNSinstanceContent
       requestBody:
-        $ref: '#/components/requestBodies/CreateNSinstanceContentRequest'
+        $ref: '#/components/requestBodies/InstantiateNsRequest'
       responses:
         '201':
           description: Created
@@ -1816,7 +1816,7 @@ paths:
         required: true
         description: NS Instance Content ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS instances"
@@ -1947,7 +1947,7 @@ paths:
         required: true
         description: NS LCM Operation Occurrence ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS instances"
@@ -2036,7 +2036,7 @@ paths:
         required: true
         description: VNF Instance ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NS instances"
@@ -2175,7 +2175,7 @@ paths:
         required: true
         description: NetSlice Template ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NetSlice templates"
@@ -2256,13 +2256,13 @@ paths:
         required: true
         description: NetSlice Template ID
         schema:
-          type : string
+          type: string
       - name: artifactPath
         in: path
         required: true
         description: Artifact Path
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NetSlice templates"
@@ -2319,7 +2319,7 @@ paths:
         required: true
         description: NetSlice Template ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NetSlice templates"
@@ -2364,7 +2364,7 @@ paths:
         required: true
         description: NetSlice Template ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NetSlice templates"
@@ -2562,7 +2562,7 @@ paths:
         required: true
         description: NetSlice Template ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NetSlice templates"
@@ -2722,7 +2722,7 @@ paths:
       description: Create a new NetSlice instance resource
       operationId: addNSI
       requestBody:
-        $ref: '#/components/requestBodies/CreateNsiRequest'
+        $ref: '#/components/requestBodies/InstantiateNsiRequest'
       responses:
         '201':
           description: Created
@@ -2769,7 +2769,7 @@ paths:
         required: true
         description: NetSlice Instance ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NetSlice instances"
@@ -2850,7 +2850,7 @@ paths:
         required: true
         description: NetSlice Instance ID
         schema:
-          type : string
+          type: string
     post:
       tags:
         - "NetSlice instances"
@@ -2913,7 +2913,7 @@ paths:
         required: true
         description: NetSlice Instance ID
         schema:
-          type : string
+          type: string
     post:
       tags:
         - "NetSlice instances"
@@ -2977,7 +2977,7 @@ paths:
         required: true
         description: NetSlice Instance ID
         schema:
-          type : string
+          type: string
     post:
       tags:
         - "NetSlice instances"
@@ -3084,7 +3084,7 @@ paths:
       description: Create a new NetSlice instance
       operationId: createNSIContent
       requestBody:
-        $ref: '#/components/requestBodies/CreateNsiContentRequest'
+        $ref: '#/components/requestBodies/InstantiateNsiRequest'
       responses:
         '201':
           description: Created
@@ -3131,7 +3131,7 @@ paths:
         required: true
         description: NetSlice Instance Content ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NetSlice instances"
@@ -3262,7 +3262,7 @@ paths:
         required: true
         description: NetSlice LCM Operation Occurrence ID
         schema:
-          type : string
+          type: string
     get:
       tags:
         - "NetSlice instances"
@@ -3306,35 +3306,2302 @@ paths:
 # END NetSlice Instances
 
 # BEGIN NSPM
-  # /nspm/v1/pm_jobs/{pmJobId}/reports/{reportId}
+  '/nspm/v1/pm_jobs/{pmJobId}/reports/{nsId}':
+    parameters:
+      - name: pmJobId
+        in: path
+        required: true
+        description: NS PM Job ID
+        schema:
+          type: string
+      - name: nsId
+        in: path
+        required: true
+        description: NS ID
+        schema:
+          type: string
+    get:
+      tags:
+        - "NSPM"
+      summary: Query information about an individual NS PM Job Report
+      description: Query information about an individual NS PM Job Report
+      operationId: getNsPmJobReport
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/NsPmJobReportInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/NsPmJobReportInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
 # END NSPM
 
 # BEGIN PDU
-  # /pdu/v1/pdu_descriptors
-  # /pdu/v1/pdu_descriptors/{pduDescriptorId}
+  '/pdu/v1/pdu_descriptors':
+    get:
+      tags:
+        - "PDU"
+      summary: Query information about multiple PDU Descriptors
+      description: Query information about multiple PDU Descriptors
+      operationId: getPDUs
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfPduInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfPduInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "PDU"
+      summary: Create a new PDU
+      description: Create a new PDU Descriptor
+      operationId: createPDU
+      requestBody:
+        $ref: '#/components/requestBodies/CreatePduRequest'
+      responses:
+        '200':
+          description: OK
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ObjectId'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/pdu/v1/pdu_descriptors/{pduDescriptorId}':
+    parameters:
+      - name: pduDescriptorId
+        in: path
+        required: true
+        description: PDU Descriptor ID
+        schema:
+          type: string
+    get:
+      tags:
+        - "PDU"
+      summary: Query information about an individual PDU Descriptor
+      description: Query information about an individual PDU Descriptor
+      operationId: getPDU
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/PduInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/PduInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    patch:
+      tags:
+        - "PDU"
+      summary: Modify an individual PDU Descriptor
+      description: Modify an individual PDU Descriptor
+      operationId: editPDU
+      requestBody:
+        $ref: '#/components/requestBodies/EditPduRequest'
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "PDU"
+      summary: Delete an individual PDU Descriptor
+      description: Delete an individual PDU Descriptor
+      operationId: deletePDU
+      responses:
+        '204':
+          description: No Content
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
 # END PDU
 
 # BEGIN Admin
-  # /admin/v1/tokens
-  # /admin/v1/tokens/{tokenId}
-  # /admin/v1/users
-  # /admin/v1/users/{userId}
-  # /admin/v1/projects
-  # /admin/v1/projects/{projectId}
-  # /admin/v1/roles
-  # /admin/v1/roles/{roleId}
-  # /admin/v1/vims
-  # /admin/v1/vims/{vimId}
-  # /admin/v1/vim_accounts
-  # /admin/v1/vim_accounts/{vimAccountId}
-  # /admin/v1/wim_accounts
-  # /admin/v1/wim_accounts/{wimAccountId}
-  # /admin/v1/sdns
-  # /admin/v1/sdns/{sdnId}
-# END Admin
-
-externalDocs:
-  description: Find out more OSM
+  '/admin/v1/tokens':
+    get:
+      tags:
+        - "Admin"
+      summary: Query information about multiple Tokens
+      description: Query information about multiple Tokens
+      operationId: getTokens
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/ArrayOfTokenInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/ArrayOfTokenInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    post:
+      tags:
+        - "Admin"
+      summary: Request a new Token
+      description: Request a new Token
+      operationId: createToken
+      requestBody:
+        $ref: '#/components/requestBodies/CreateTokenRequest'
+      responses:
+        '200':
+          description: OK
+          headers:
+            Location:
+              schema:
+                type: string
+                format: uri
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TokenInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/TokenInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "Admin"
+      summary: Delete the Token indicated in the Authorization Header
+      description: Delete the Token indicated in the Authorization Header
+      operationId: deleteAuthToken
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                type: string
+            application/yaml:
+              schema:
+                type: string
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+  '/admin/v1/tokens/{tokenId}':
+    parameters:
+      - name: tokenId
+        in: path
+        required: true
+        description: Token ID
+        schema:
+          type: string
+    get:
+      tags:
+        - "Admin"
+      summary: Query information about an individual Token
+      description: Query information about an individual Token
+      operationId: getToken
+      responses:
+        '200':
+          description: OK
+          content:
+            application/json:
+              schema:
+                $ref: '#/components/schemas/TokenInfo'
+            application/yaml:
+              schema:
+                $ref: '#/components/schemas/TokenInfo'
+        '400':
+          $ref: '#/components/responses/BadRequest'
+        '401':
+          $ref: '#/components/responses/Unauthorized'
+        '403':
+          $ref: '#/components/responses/Forbidden'
+        '404':
+          $ref: '#/components/responses/NotFound'
+        '405':
+          $ref: '#/components/responses/MethodNotAllowed'
+        '406':
+          $ref: '#/components/responses/NotAcceptable'
+        '409':
+          $ref: '#/components/responses/Conflict'
+        '422':
+          $ref: '#/components/responses/UnprocessableEntity'
+        '500':
+          $ref: '#/components/responses/InternalServerError'
+        '503':
+          $ref: '#/components/responses/ServiceUnavailable'
+        '5XX':
+          $ref: '#/components/responses/UnexpectedError'
+        default:
+          $ref: '#/components/responses/UnexpectedError'
+    delete:
+      tags:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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:
+        - "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/k8srepos':
+    get:
+      tags:
+        - "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:
+        - "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:
+        - "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:
+        - "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: 'http://osm.etsi.org/wikipub'
 
 components:
@@ -3450,628 +5717,2008 @@ components:
         id:
           type: string
           format: uuid
-    KeyValuePairs:
+    KeyValuePairs:
+      # A free list of key:value pairs
+      type: object
+      additionalProperties: true
+    NsDescriptor:
+      type: string
+      format: yaml|json
+    NsPackage:
+      type: string
+      format: binary
+    CreateNsdInfoRequest:
+      # A free list of key:value pairs
+      type: object
+      additionalProperties: true
+    NsdInfoModifications:
+      description: |
+        NS Descriptor Information
+        Only generic fields (id, name, description) are described
+        For a full specification of the NS Descriptor see:
+        http://osm-download.etsi.org/ftp/osm-doc/nsd.html
+      type: object
+      properties:
+        id:
+          description: NSD Identifier
+          type: string
+        name:
+          description: NSD Name
+          type: string
+        description:
+          description: NSD Description
+          type: string
+    NsdInfo:
+      description: |
+        NS Descriptor Information
+        Only generic fields (_id, id, name, description) are described
+        For a full specification of the NS Descriptor see:
+        http://osm-download.etsi.org/ftp/osm-doc/nsd.html
+      type: object
+      properties:
+        _id:
+          description: |
+            Identifier of the onboarded individual NS descriptor
+            resource. This identifier is allocated by the NFVO.
+          type: string
+          format: uuid
+        id:
+          description: |
+            This identifier, which is allocated by the NSD
+            designer, identifies the NSD in a globally unique
+            way. It is copied from the NSD content and shall be
+            present after the NSD content is on-boarded.
+          type: string
+        name:
+          description: |
+            Name of the onboarded NSD. This information is
+            copied from the NSD content and shall be present
+            after the NSD content is on-boarded.
+          type: string
+        description:
+          description: |
+            Description of the onboarded NSD.
+            This information is copied from the NSD content.
+          type: string
+      required:
+        - _id
+        - id
+    ArrayOfNsdInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/NsdInfo'
+    ProblemDetails:
+      type: object
+      properties:
+        type:
+          type: string
+          format: uri
+        title:
+          type: string
+        status:
+          type: integer
+        detail:
+          type: string
+        instance:
+          type: string
+          format: uri
+      additionalProperties: true
+      required:
+        - status
+        - detail
+    VnfDescriptor:
+      type: string
+      format: yaml|json
+    VnfPackage:
+      type: string
+      format: binary
+    CreateVnfPkgInfoRequest:
+      # A free list of key:value pairs
+      type: object
+      additionalProperties: true
+    VnfPkgInfoModifications:
+      description: |
+        VNF Package Information
+        Only generic fields (id, name, description) are described
+        For a full specification of the VNF Descriptor see:
+        http://osm-download.etsi.org/ftp/osm-doc/vnfd.html
+      type: object
+      properties:
+        id:
+          description: VNF Package Identifier
+          type: string
+        name:
+          description: VNF Package Name
+          type: string
+        description:
+          description: VNF Package description
+          type: string
+    VnfPkgInfo:
+      description: |
+        VNF Package Information
+        Only generic fields (_id, id, name, description) are described
+        For a full specification of the VNF Descriptor see:
+        http://osm-download.etsi.org/ftp/osm-doc/vnfd.html
+      type: object
+      properties:
+        _id:
+          description: |
+            Identifier of the VNF package. This identifier is allocated by the NFVO.
+          type: string
+          format: uuid
+        id:
+          description: VNF Package Identifier
+          type: string
+        name:
+          description: VNF Package Name
+          type: string
+        description:
+          description: VNF Package description
+          type: string
+      required:
+        - _id
+        - id
+    ArrayOfVnfPkgInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/VnfPkgInfo'
+    # CreateNsRequest:
+      # Substituted by InstantiateNsRequest
+    NsInstance:
+      description: |
+        NS Instance Information
+        Only generic fields (_id, id, name, description) are described
+        For a full specification of the NS Instance see:
+        http://osm-download.etsi.org/ftp/osm-doc/nsr.html
+      type: object
+      properties:
+        _id:
+          description: Identifier of the NS instance.
+          type: string
+          format: uuid
+        id:
+          description: Identifier of the NS instance.
+          type: string
+          format: uuid
+        name:
+          description: Human readable name of the NS instance.
+          type: string
+        description:
+          description: Human readable description of the NS instance.
+          type: string
+      required:
+        - _id
+        - id
+        - name
+    InstantiateNsRequest:
+      type: object
+      properties:
+        nsName:
+          description: |
+            Human-readable name of the NS instance to be created.
+          type: string
+        nsdId:
+          description: |
+            Identifier of the NSD that defines the NS instance to be created.
+          type: string
+          format: uuid
+        vimAccountId:
+          description: |
+            Identifier of the VIM Account where the NS instance shall be created.
+          type: string
+          format: uuid
+        lcmOperationType:
+          type: string
+        nsInstanceId:
+          type: string
+          format: uuid
+        netsliceInstanceId:
+          type: string
+          format: uuid
+        nsDescription:
+          type: string
+          nullable: true
+        wimAccountId:
+          oneOf:
+            - type: string
+            - type: boolean
+          nullable: true
+        additionalParamsForNs:
+          type: object
+          additionalProperties: true
+        additionalParamsForVnf:
+          type: array
+          items:
+            type: object
+            properties:
+              member-vnf-index:
+                type: string
+              additionalParams:
+                type: object
+                additionalProperties: true
+              additionalParamsForVdu:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    vdu_id:
+                      type: string
+                    additionalParams:
+                      type: object
+                      additionalProperties: true
+                  required:
+                    - vdu_id
+                    - additionalParams
+                  additionalProperties: false
+              additionalParamsForKdu:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    kdu_name:
+                      type: string
+                    additionalParams:
+                      type: object
+                      additionalProperties: true
+                  required:
+                    - kdu_name
+                    - additionalParams
+                  additionalProperties: false
+            required:
+              - member-vnf-index
+            minProperties: 2
+            additionalProperties: false
+        ssh_keys:
+          type: array
+          items:
+            type: string
+        nsr_id:
+          type: string
+          format: uuid
+        vduImage:
+          type: string
+        vnf:
+          type: array
+          items:
+            type: object
+            properties:
+              member-vnf-index:
+                type: string
+              vimAccountId:
+                type: string
+                format: uuid
+              vdu:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    id:
+                      type: string
+                    volume:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          name:
+                            type: string
+                          vim-volume-id:
+                            type: string
+                        required:
+                          - name
+                          - vim-volume-id
+                        additionalProperties: false
+                      minItems: 1
+                    interface:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          name:
+                            type: string
+                          ip-address:
+                            type: string
+                            format: ipv4
+                          mac-address:
+                            type: string
+                            format: mac_address
+                          floating-ip-required:
+                            type: boolean
+                        required:
+                          - name
+                        additionalProperties: false
+                      minItems: 1
+                  required:
+                    - id
+                  additionalProperties: false
+                minItems: 1
+              internal-vld:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    name:
+                      type: string
+                    vim-network-name:
+                      type: string
+                    vim-network-id:
+                      type: string
+                    ip-profile:
+                      type: object
+                      properties:
+                        ip-version:
+                          type: string
+                          enum:
+                            - ipv4
+                            - ipv6
+                        subnet-address:
+                          type: string
+                          format: ip_prefix
+                          nullable: true
+                        gateway-address:
+                          type: string
+                          format: ipv4
+                          nullable: true
+                        dns-server:
+                          type: array
+                          items:
+                            type: object
+                            properties:
+                              address:
+                                type: string
+                                format: ipv4
+                            required:
+                              - address
+                            additionalProperties: false
+                          minItems: 1
+                          nullable: true
+                        dhcp-params:
+                          type: object
+                          properties:
+                            enabled:
+                              type: boolean
+                            count:
+                              type: integer
+                              minimum: 1
+                            start-address:
+                              type: string
+                              format: ipv4
+                          additionalProperties: false
+                          nullable: true
+                      additionalProperties: false
+                    provider-network:
+                      type: object
+                      properties:
+                        physical-network:
+                          type: string
+                        segmentation-id:
+                          type: string
+                      additionalProperties: false
+                    internal-connection-point:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          id-ref:
+                            type: string
+                          ip-address:
+                            type: string
+                            format: ipv4
+                        required:
+                          - id-ref
+                        minProperties: 2
+                        additionalProperties: False
+                      minItems: 1
+                  required:
+                    - name
+                  minProperties: 2
+                  additionalProperties: false
+                minItems: 1
+            required:
+              - member-vnf-index
+            minProperties: 2
+            additionalProperties: false
+          minItems: 1
+        vld:
+          type: array
+          items:
+            type: object
+            properties:
+              name:
+                type: string
+              vim-network-name:
+                oneOf:
+                  - type: string
+                  - type: object
+              vim-network-id:
+                oneOf:
+                  - type: string
+                  - type: object
+              ns-net:
+                type: object
+                additionalProperties: true
+              wimAccountId:
+                oneOf:
+                  - type: string
+                  - type: boolean
+                nullable: true
+              ip-profile:
+                type: object
+                additionalProperties: true
+              provider-network:
+                type: object
+                properties:
+                  physical-network:
+                    type: string
+                  segmentation-id:
+                    type: string
+                additionalProperties: false
+              vnfd-connection-point-ref:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    member-vnf-index-ref:
+                      type: string
+                    vnfd-connection-point-ref:
+                      type: string
+                    ip-address:
+                      type: string
+                      format: ipv4
+                  required:
+                    - member-vnf-index-ref
+                    - vnfd-connection-point-ref
+                  minProperties: 3
+                  additionalProperties: false
+                minItems: 1
+            required:
+              - name
+            additionalProperties: false
+          minItems: 1
+      required:
+        - nsName
+        - nsdId
+        - vimAccountId
+      additionalProperties: false
+    ScaleNsRequest:
+      type: object
+      properties:
+        scaleType:
+          type: string
+          enum:
+            - SCALE_VNF
+        scaleVnfData:
+          type: object
+          properties:
+            scaleVnfType:
+              type: string
+              enum:
+                - SCALE_IN
+                - SCALE_OUT
+            scaleByStepData:
+              type: object
+              properties:
+                scaling-group-descriptor:
+                  type: string
+                member-vnf-index:
+                  type: string
+              additionalProperties: true
+          additionalProperties: true
+      additionalProperties: true
+    TerminateNsRequest:
+      type: object
+      properties:
+        terminationTime:
+          description: |
+            Timestamp indicating the end time of the NS, i.e. the NS will be terminated
+            automatically at this timestamp. Cardinality "0" indicates the NS termination
+            takes place immediately.
+          type: string
+          format: date-time
+    ArrayOfNsInstance:
+      type: array
+      items:
+        $ref: '#/components/schemas/NsInstance'
+    NSinstanceActionRequest:
+      type: object
+      properties:
+        primitive:
+          type: string
+        primitive_params:
+          $ref: '#/components/schemas/KeyValuePairs'
+        lcmOperationType:
+          type: string
+        nsInstanceId:
+          type: string
+          format: uuid
+        member_vnf_index:
+          type: string
+        vdu_id:
+          type: string
+        vdu_count_index:
+          type: integer
+      required:
+        - primitive
+        - primitive_params
+      additionalProperties: false
+    # CreateNSinstanceContentRequest:
+      # Substituted by InstantiateNsRequest
+    CreateNSinstanceContentResponse:
+      type: object
+      properties:
+        id:
+          type: string
+          format: uuid
+        nslcmop_id:
+          type: string
+          format: uuid
+    NsLcmOpOcc:
+      type: object
+      properties:
+        _id:
+          type: string
+          format: uuid
+        id:
+          type: string
+          format: uuid
+        lcmOperationType:
+          type: string
+        nsInstanceId:
+          type: string
+          format: uuid
+        isAutomaticInvocation:
+          type: boolean
+        isCancelPending:
+          type: boolean
+        startTime:
+          type: number
+          format: float
+        statusEnteredTime:
+          type: number
+          format: float
+        operationParams:
+          type: object
+          properties:
+            nsName:
+              type: string
+            nsdId:
+              type: string
+              format: uuid
+            vimAccountId:
+              type: string
+              format: uuid
+            nsInstanceId:
+              type: string
+              format: uuid
+            lcmOperationType:
+              type: string
+        operationState:
+          type: string
+        detailed-status:
+          type: string
+        links:
+          type: object
+          properties:
+            self:
+              type: string
+              format: path   # uri?
+            nsInstance:
+              type: string
+              format: path   # uri?
+    ArrayOfNsLcmOpOcc:
+      type: array
+      items:
+        $ref: '#/components/schemas/NsLcmOpOcc'
+    VnfInstanceInfo:
+      description: |
+        VNF Instance Information
+        Only generic fields (_id, id) are described
+        For a full specification of the VNF Instance see:
+        http://osm-download.etsi.org/ftp/osm-doc/vnfr.html
+      type: object
+      properties:
+        _id:
+          type: string
+          format: uuid
+        id:
+          type: string
+          format: uuid
+    ArrayOfVnfInstanceInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/VnfInstanceInfo'
+    NstInfo:
+      description: |
+        NetSlice Template Information
+        Only generic fields (_id, id, name) are described
+        For a full specification of the NetSlice Template see:
+        http://osm-download.etsi.org/ftp/osm-doc/nst.html
+      type: object
+      properties:
+        _id:
+          description: NetSlice Template Identifier
+          type: string
+          format: uuid
+        id:
+          description: Human readable NetSlice Template Identifier
+          type: string
+        name:
+          description: Human readable name of the NetSlice Template
+          type: string
+    ArrayOfNstInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/NstInfo'
+    CreateNstInfoRequest:
       # A free list of key:value pairs
       type: object
       additionalProperties: true
-    NsDescriptor:
+    NetSliceTemplate:
       type: string
       format: yaml|json
-    NsPackage:
+    NetSlicePackage:
       type: string
       format: binary
-    CreateNsdInfoRequest:
-      # A free list of key:value pairs
+    NstInfoModifications:
+      description: |
+        NetSlice Template Information
+        Only generic fields (id, name) are described
+        For a full specification of the NetSlice Template see:
+        http://osm-download.etsi.org/ftp/osm-doc/nst.html
       type: object
-      additionalProperties: true
-    NsdInfoModifications:
+      properties:
+        id:
+          description: NST Identifier
+          type: string
+        name:
+          description: NST Name
+          type: string
+    NetSliceInstance:
       description: |
-        NS Descriptor Information
-        Only generic fields (id, name, description) are described
-        For a full specification of the NS Descriptor see:
-        http://osm-download.etsi.org/ftp/osm-doc/nsd.html
+        NetSlice Instance Information
+        Only generic fields (_id, id, name, description) are described
+        For a full specification of the NetSlice Instance see:
+        http://osm-download.etsi.org/ftp/osm-doc/nsi.html
+      type: object
+      properties:
+        _id:
+          description: Identifier of the NetSlice instance.
+          type: string
+          format: uuid
+        id:
+          description: Identifier of the NetSlice instance.
+          type: string
+          format: uuid
+        name:
+          description: Human readable name of the NetSlice instance.
+          type: string
+        description:
+          description: Human readable description of the NetSlice instance.
+          type: string
+      required:
+        - _id
+        - id
+        - name
+    ArrayOfNetSliceInstance:
+      type: array
+      items:
+        $ref: '#/components/schemas/NetSliceInstance'
+    # CreateNsiRequest:
+      # Substituted by InstantiateNsiRequest
+    InstantiateNsiRequest:
+      type: object
+      properties:
+        nsiName:
+          description: |
+            Human-readable name of the NetSlice instance to be created.
+          type: string
+        nstId:
+          description: |
+            Identifier of the NST that defines the NetSlice instance to be created.
+          type: string
+          format: uuid
+        vimAccountId:
+          description: |
+            Identifier of the VIM Account where the NetSlice instance shall be created.
+          type: string
+          format: uuid
+        lcmOperationType:
+          type: string
+        netsliceInstanceId:
+          type: string
+          format: uuid
+        nsiDescription:
+          type: string
+          nullable: true
+        ssh_keys:
+          type: string
+        nsi_id:
+          type: string
+          format: uuid
+        additionalParamsForNsi:
+          type: object
+          additionalProperties: true
+        netslice-subnet:
+          type: array
+          items:
+            type: object
+            properties:
+              id:
+                type: string
+              nsName:
+                type: string
+              nsdId:
+                type: string
+                format: uuid
+              vimAccountId:
+                type: string
+                format: uuid
+              lcmOperationType:
+                type: string
+              nsInstanceId:
+                type: string
+                format: uuid
+              netsliceInstanceId:
+                type: string
+                format: uuid
+              nsDescription:
+                type: string
+                nullable: true
+              wimAccountId:
+                oneOf:
+                  - type: string
+                  - type: boolean
+                nullable: true
+              additionalParamsForNs:
+                type: object
+                additionalProperties: true
+              additionalParamsForVnf:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    member-vnf-index:
+                      type: string
+                    additionalParams:
+                      type: object
+                      additionalProperties: true
+                    additionalParamsForVdu:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          vdu_id:
+                            type: string
+                          additionalParams:
+                            type: object
+                            additionalProperties: true
+                        required:
+                          - vdu_id
+                          - additionalParams
+                        additionalProperties: false
+                    additionalParamsForKdu:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          kdu_name:
+                            type: string
+                          additionalParams:
+                            type: object
+                            additionalProperties: true
+                        required:
+                          - kdu_name
+                          - additionalParams
+                        additionalProperties: false
+                  required:
+                    - member-vnf-index
+                  minProperties: 2
+                  additionalProperties: false
+              ssh_keys:
+                type: array
+                items:
+                  type: string
+              nsr_id:
+                type: string
+                format: uuid
+              vduImage:
+                type: string
+              vnf:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    member-vnf-index:
+                      type: string
+                    vimAccountId:
+                      type: string
+                      format: uuid
+                    vdu:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          id:
+                            type: string
+                          volume:
+                            type: array
+                            items:
+                              type: object
+                              properties:
+                                name:
+                                  type: string
+                                vim-volume-id:
+                                  type: string
+                              required:
+                                - name
+                                - vim-volume-id
+                              additionalProperties: false
+                            minItems: 1
+                          interface:
+                            type: array
+                            items:
+                              type: object
+                              properties:
+                                name:
+                                  type: string
+                                ip-address:
+                                  type: string
+                                  format: ipv4
+                                mac-address:
+                                  type: string
+                                  format: mac_address
+                                floating-ip-required:
+                                  type: boolean
+                              required:
+                                - name
+                              additionalProperties: false
+                            minItems: 1
+                        required:
+                          - id
+                        additionalProperties: false
+                      minItems: 1
+                    internal-vld:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          name:
+                            type: string
+                          vim-network-name:
+                            type: string
+                          vim-network-id:
+                            type: string
+                          ip-profile:
+                            type: object
+                            properties:
+                              ip-version:
+                                type: string
+                                enum:
+                                  - ipv4
+                                  - ipv6
+                              subnet-address:
+                                type: string
+                                format: ip_prefix
+                                nullable: true
+                              gateway-address:
+                                type: string
+                                format: ipv4
+                                nullable: true
+                              dns-server:
+                                type: array
+                                items:
+                                  type: object
+                                  properties:
+                                    address:
+                                      type: string
+                                      format: ipv4
+                                  required:
+                                    - address
+                                  additionalProperties: false
+                                minItems: 1
+                                nullable: true
+                              dhcp-params:
+                                type: object
+                                properties:
+                                  enabled:
+                                    type: boolean
+                                  count:
+                                    type: integer
+                                    minimum: 1
+                                  start-address:
+                                    type: string
+                                    format: ipv4
+                                additionalProperties: false
+                                nullable: true
+                            additionalProperties: false
+                          provider-network:
+                            type: object
+                            properties:
+                              physical-network:
+                                type: string
+                              segmentation-id:
+                                type: string
+                            additionalProperties: false
+                          internal-connection-point:
+                            type: array
+                            items:
+                              type: object
+                              properties:
+                                id-ref:
+                                  type: string
+                                ip-address:
+                                  type: string
+                                  format: ipv4
+                              required:
+                                - id-ref
+                              minProperties: 2
+                              additionalProperties: False
+                            minItems: 1
+                        required:
+                          - name
+                        minProperties: 2
+                        additionalProperties: false
+                      minItems: 1
+                  required:
+                    - member-vnf-index
+                  minProperties: 2
+                  additionalProperties: false
+                minItems: 1
+              vld:
+                type: array
+                items:
+                  type: object
+                  properties:
+                    name:
+                      type: string
+                    vim-network-name:
+                      oneOf:
+                        - type: string
+                        - type: object
+                    vim-network-id:
+                      oneOf:
+                        - type: string
+                        - type: object
+                    ns-net:
+                      type: object
+                      additionalProperties: true
+                    wimAccountId:
+                      oneOf:
+                        - type: string
+                        - type: boolean
+                      nullable: true
+                    ip-profile:
+                      type: object
+                      additionalProperties: true
+                    provider-network:
+                      type: object
+                      properties:
+                        physical-network:
+                          type: string
+                        segmentation-id:
+                          type: string
+                      additionalProperties: false
+                    vnfd-connection-point-ref:
+                      type: array
+                      items:
+                        type: object
+                        properties:
+                          member-vnf-index-ref:
+                            type: string
+                          vnfd-connection-point-ref:
+                            type: string
+                          ip-address:
+                            type: string
+                            format: ipv4
+                        required:
+                          - member-vnf-index-ref
+                          - vnfd-connection-point-ref
+                        minProperties: 3
+                        additionalProperties: false
+                      minItems: 1
+                  required:
+                    - name
+                  additionalProperties: false
+                minItems: 1
+            additionalProperties: false
+          minItems: 1
+        netslice-vld:
+          type: array
+          items:
+            type: object
+            properties:
+              name:
+                type: string
+              vim-network-name:
+                oneOf:
+                  - type: string
+                  - type: object
+              vim-network-id:
+                oneOf:
+                  - type: string
+                  - type: object
+              ip-profile:
+                type: object
+                additionalProperties: true
+            required:
+              - name
+            additionalProperties: false
+          minItems: 1
+      required:
+        - nsiName
+        - nstId
+        - vimAccountId
+      additionalProperties: false
+    TerminateNsiRequest:
+      type: object
+      properties:
+        terminationTime:
+          description: |
+            Timestamp indicating the end time of the NSI, i.e. the NSI will be terminated
+            automatically at this timestamp. Cardinality "0" indicates the NSI termination
+            takes place immediately.
+          type: string
+          format: date-time
+    NsiActionRequest:
+      type: object
+      properties:
+        primitive:
+          type: string
+        primitive_params:
+          $ref: '#/components/schemas/KeyValuePairs'
+        lcmOperationType:
+          type: string
+        netsliceInstanceId:
+          type: string
+          format: uuid
+      required:
+        - primitive
+        - primitive_params
+    # CreateNsiContentRequest:
+      # Substituted by InstantiateNsiRequest
+    CreateNsiContentResponse:
+      type: object
+      properties:
+        id:
+          type: string
+          format: uuid
+        nsilcmop_id:
+          type: string
+          format: uuid
+    NsiLcmOpOcc:
+      type: object
+      properties:
+        _id:
+          type: string
+          format: uuid
+        id:
+          type: string
+          format: uuid
+        lcmOperationType:
+          type: string
+        netsliceInstanceId:
+          type: string
+          format: uuid
+        isAutomaticInvocation:
+          type: boolean
+        isCancelPending:
+          type: boolean
+        startTime:
+          type: number
+          format: float
+        statusEnteredTime:
+          type: number
+          format: float
+        operationParams:
+          type: object
+          properties:
+            nsiName:
+              type: string
+            nstId:
+              type: string
+              format: uuid
+            vimAccountId:
+              type: string
+              format: uuid
+            netsliceInstanceId:
+              type: string
+              format: uuid
+            lcmOperationType:
+              type: string
+            nslcmops_ids:
+              type: array
+              items:
+                type: string
+                format: uuid
+        operationState:
+          type: string
+        detailed-status:
+          type: string
+        links:
+          type: object
+          properties:
+            self:
+              type: string
+              format: path   # uri?
+            netsliceInstanceId:
+              type: string
+              format: path   # uri?
+    ArrayOfNsiLcmOpOcc:
+      type: array
+      items:
+        $ref: '#/components/schemas/NsiLcmOpOcc'
+    TokenInfo:
+      type: object
+      properties:
+        _id:
+          type: string
+        id:
+          type: string
+        admin:
+          type: boolean
+        project_id:
+          type: string
+          format: uuid
+        user_id:
+          type: string
+          format: uuid
+        project_name:
+          type: string
+        username:
+          type: string
+        issued_at:
+          type: number
+          format: float
+        expires:
+          type: number
+          format: float
+        remote_host:
+          type: string
+          format: ipv4
+        remote_port:
+          type: integer
+        roles:
+          type: array
+          items:
+            type: object
+            properties:
+              id:
+                type: string
+                format: uuid
+              name:
+                type: string
+    ArrayOfTokenInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/TokenInfo'
+    CreateTokenRequest:
       type: object
       properties:
-        id:
-          description: NSD Identifier
+        username:
           type: string
-        name:
-          description: NSD Name
+        password:
           type: string
-        description:
-          description: NSD Description
+        project_id:
           type: string
-    NsdInfo:
-      description: |
-        NS Descriptor Information
-        Only generic fields (_id, id, name, description) are described
-        For a full specification of the NS Descriptor see:
-        http://osm-download.etsi.org/ftp/osm-doc/nsd.html
+      required:
+        - username
+        - password
+    UserInfo:
       type: object
       properties:
         _id:
-          description: |
-            Identifier of the onboarded individual NS descriptor
-            resource. This identifier is allocated by the NFVO.
           type: string
           format: uuid
-        id:
-          description: |
-            This identifier, which is allocated by the NSD
-            designer, identifies the NSD in a globally unique
-            way. It is copied from the NSD content and shall be
-            present after the NSD content is on-boarded.
-          type: string
-        name:
-          description: |
-            Name of the onboarded NSD. This information is
-            copied from the NSD content and shall be present
-            after the NSD content is on-boarded.
+        username:
           type: string
-        description:
-          description: |
-            Description of the onboarded NSD.
-            This information is copied from the NSD content.
+        password:
           type: string
+        project_role_mappings:
+          type: array
+          items:
+            type: object
+            properties:
+              project:
+                type: string
+                format: uuid
+              role:
+                type: string
+                format: uuid
+              project_name:
+                type: string
+              role_name:
+                type: string
+        projects:
+          type: array
+          items:
+            type: string
+    ArrayOfUserInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/UserInfo'
+    ProjectRoleMappings:
+      type: array
+      items:
+        type: object
+        properties:
+          project:
+            type: string
+          role:
+            type: string
       required:
-        - _id
-        - id
-    ArrayOfNsdInfo:
+        - project
+        - role
+      additionalProperties: false
+    ProjectRoleMappingsOpt:
       type: array
       items:
-        $ref: '#/components/schemas/NsdInfo'
-    ProblemDetails:
+        type: object
+        properties:
+          project:
+            type: string
+          role:
+            type: string
+      required:
+        - project
+      additionalProperties: false
+    CreateUserRequest:
       type: object
       properties:
-        type:
-          type: string
-          format: uri
-        title:
-          type: string
-        status:
-          type: integer
-        detail:
+        username:
           type: string
-        instance:
+        password:
           type: string
-          format: uri
-      additionalProperties: true
+        projects:
+          type: array
+          items:
+            type: string
+        project_role_mappings:
+          $ref: '#/components/schemas/ProjectRoleMappings'
       required:
-        - status
-        - detail
-    VnfDescriptor:
-      type: string
-      format: yaml|json
-    VnfPackage:
-      type: string
-      format: binary
-    CreateVnfPkgInfoRequest:
-      # A free list of key:value pairs
+        - username
+        - password
+      additionalProperties: false
+    ShortNameList:
+      type: array
+      items:
+        type: string
+    ArrayEditionSchema:
       type: object
       additionalProperties: true
-    VnfPkgInfoModifications:
+      minProperties: 1
       description: |
-        VNF Package Information
-        Only generic fields (id, name, description) are described
-        For a full specification of the VNF Descriptor see:
-        http://osm-download.etsi.org/ftp/osm-doc/vnfd.html
+        Array edition keys must start with '$'
+        and follow the syntax defined in: https://osm.etsi.org/wikipub/index.php/NBI_API_Description
+    EditUserRequest:
       type: object
       properties:
-        id:
-          description: VNF Package Identifier
-          type: string
-        name:
-          description: VNF Package Name
+        username:
           type: string
-        description:
-          description: VNF Package description
+        password:
           type: string
-    VnfPkgInfo:
-      description: |
-        VNF Package Information
-        Only generic fields (_id, id, name, description) are described
-        For a full specification of the VNF Descriptor see:
-        http://osm-download.etsi.org/ftp/osm-doc/vnfd.html
+        projects:
+          oneOf:
+            - $ref: '#/components/schemas/ShortNameList'
+            - $ref: '#/components/schemas/ArrayEditionSchema'
+        project_role_mappings:
+          $ref: '#/components/schemas/ProjectRoleMappings'
+        add_project_role_mappings:
+          $ref: '#/components/schemas/ProjectRoleMappings'
+        remove_project_role_mappings:
+          $ref: '#/components/schemas/ProjectRoleMappingsOpt'
+    QuotasInfo:
+      type: object
+      properties:
+        vnfds:
+          type: integer
+          minimum: 0
+          nullable: false
+        nsds:
+          type: integer
+          minimum: 0
+          nullable: false
+        nsts:
+          type: integer
+          minimum: 0
+          nullable: false
+        pdus:
+          type: integer
+          minimum: 0
+          nullable: false
+        nsrs:
+          type: integer
+          minimum: 0
+          nullable: false
+        nsis:
+          type: integer
+          minimum: 0
+          nullable: false
+        vim_accounts:
+          type: integer
+          minimum: 0
+          nullable: false
+        wim_accounts:
+          type: integer
+          minimum: 0
+          nullable: false
+        sdns:
+          type: integer
+          minimum: 0
+          nullable: false
+      additionalProperties: false
+    EditQuotasInfo:
+      type: object
+      properties:
+        vnfds:
+          type: integer
+          minimum: 0
+          nullable: true
+        nsds:
+          type: integer
+          minimum: 0
+          nullable: true
+        nsts:
+          type: integer
+          minimum: 0
+          nullable: true
+        pdus:
+          type: integer
+          minimum: 0
+          nullable: true
+        nsrs:
+          type: integer
+          minimum: 0
+          nullable: true
+        nsis:
+          type: integer
+          minimum: 0
+          nullable: true
+        vim_accounts:
+          type: integer
+          minimum: 0
+          nullable: true
+        wim_accounts:
+          type: integer
+          minimum: 0
+          nullable: true
+        sdns:
+          type: integer
+          minimum: 0
+          nullable: true
+      additionalProperties: false
+    ProjectInfo:
       type: object
       properties:
         _id:
-          description: |
-            Identifier of the VNF package. This identifier is allocated by the NFVO.
           type: string
           format: uuid
-        id:
-          description: VNF Package Identifier
-          type: string
         name:
-          description: VNF Package Name
-          type: string
-        description:
-          description: VNF Package description
           type: string
-      required:
-        - _id
-        - id
-    ArrayOfVnfPkgInfo:
+        quotas:
+          $ref: '#/components/schemas/QuotasInfo'
+    ArrayOfProjectInfo:
       type: array
       items:
-        $ref: '#/components/schemas/VnfPkgInfo'
-    CreateNsRequest:
+        $ref: '#/components/schemas/ProjectInfo'
+    CreateProjectRequest:
       type: object
       properties:
-        nsdId:
-          description: |
-            Identifier of the NSD that defines the NS instance to be created.
-          type: string
-          format: uuid
-        nsName:
-          description: |
-            Human-readable name of the NS instance to be created.
-          type: string
-        nsDescription:
-          description: |
-            Human-readable description of the NS instance to be created.
-          type: string
-        vimAccountId:
-          description: |
-            Identifier of the VIM Account where the NS instance shall be created.
+        name:
           type: string
-          format: uuid
+        admin:
+          type: boolean
+        quotas:
+          $ref: '#/components/schemas/QuotasInfo'
       required:
-        - nsdId
-        - nsName
-        - vimAccountId
-    NsInstance:
+        - 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: |
-        NS Instance Information
-        Only generic fields (_id, id, name, description) are described
-        For a full specification of the NS Instance see:
-        http://osm-download.etsi.org/ftp/osm-doc/nsr.html
+        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:
-          description: Identifier of the NS instance.
-          type: string
-          format: uuid
-        id:
-          description: Identifier of the NS instance.
           type: string
           format: uuid
         name:
-          description: Human readable name of the NS instance.
           type: string
-        description:
-          description: Human readable description of the NS instance.
+        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:
-        - _id
-        - id
         - name
-    InstantiateNsRequest:
+      additionalProperties: false
+    EditRoleRequest:
       type: object
       properties:
-        nsName:
-          description: |
-            Human-readable name of the NS instance to be created.
+        name:
           type: string
-        nsdId:
-          description: |
-            Identifier of the NSD that defines the NS instance to be created.
+        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
-        vimAccountId:
-          description: |
-            Identifier of the VIM Account where the NS instance shall be created.
+        schema_version:
           type: string
-          format: uuid
-      required:
-        - nsName
-        - nsdId
-        - vimAccountId
-    ScaleNsRequest:
-      type: object
-      properties:
-        scaleType:
+          format: X.Y[.Z]
+        schema_type:
           type: string
-          enum:
-            - SCALE_VNF
-        scaleVnfData:
-          type: object
-          properties:
-            scaleVnfType:
-              type: string
-              enum:
-                - SCALE_IN
-                - SCALE_OUT
-            scaleByStepData:
-              type: object
-              properties:
-                scaling-group-descriptor:
-                  type: string
-                member-vnf-index:
-                  type: string
-              additionalProperties: true
-          additionalProperties: true
-      additionalProperties: true
-    TerminateNsRequest:
-      type: object
-      properties:
-        terminationTime:
-          description: |
-            Timestamp indicating the end time of the NS, i.e. the NS will be terminated
-            automatically at this timestamp. Cardinality "0" indicates the NS termination
-            takes place immediately.
+        name:
+          type: string
+        description:
+          type: string
+        vim:
           type: string
-          format: date-time
-    ArrayOfNsInstance:
+        datacenter:
+          type: string
+        vim_type:
+          $ref: '#/components/schemas/VimType'
+        vim_url:
+          type: string
+          format: url     # uri?
+        vim_tenant_name:
+          type: string
+        vim_user:
+          type: string
+        vim_password:
+          type: string
+        config:
+          type: object
+          additionalProperties: true
+    ArrayOfVimInfo:
       type: array
       items:
-        $ref: '#/components/schemas/NsInstance'
-    NSinstanceActionRequest:
+        $ref: '#/components/schemas/VimInfo'
+    CreateVimRequest:
       type: object
       properties:
-        primitive:
+        schema_version:
           type: string
-        primitive_params:
-          $ref: '#/components/schemas/KeyValuePairs'
-        lcmOperationType:
+          format: X.Y[.Z]
+        schema_type:
           type: string
-        nsInstanceId:
+        name:
           type: string
-          format: uuid
-        member_vnf_index:
+        description:
           type: string
-        vdu_id:
+        vim:
           type: string
-        vdu_count_index:
-          type: integer
+        datacenter:
+          type: string
+        vim_type:
+          $ref: '#/components/schemas/VimType'
+        vim_url:
+          type: string
+          format: url     # uri?
+        vim_tenant_name:
+          type: string
+        vim_user:
+          type: string
+        vim_password:
+          type: string
+        config:
+          type: object
+          additionalProperties: true
       required:
-        - primitive
-        - primitive_params
+        - name
+        - vim_url
+        - vim_type
+        - vim_user
+        - vim_password
+        - vim_tenant_name
       additionalProperties: false
-    CreateNSinstanceContentRequest:
+    EditVimRequest:
       type: object
       properties:
-        nsdId:
-          description: |
-            Identifier of the NSD that defines the NS instance to be created.
+        name:
           type: string
-          format: uuid
-        nsName:
-          description: |
-            Human-readable name of the NS instance to be created.
+        description:
           type: string
-        vimAccountId:
-          description: |
-            Identifier of the VIM Account where the NS instance shall be created.
+        vim:
           type: string
-          format: uuid
-      required:
-        - nsdId
-        - nsName
-        - vimAccountId
-    CreateNSinstanceContentResponse:
+        datacenter:
+          type: string
+        vim_type:
+          $ref: '#/components/schemas/VimType'
+        vim_url:
+          type: string
+          format: url     # uri?
+        vim_tenant_name:
+          type: string
+        vim_user:
+          type: string
+        vim_password:
+          type: string
+        config:
+          type: object
+          additionalProperties: true
+      additionalProperties: false
+    ObjectId_plus_OpId:
       type: object
       properties:
         id:
           type: string
           format: uuid
-        nslcmop_id:
+        op_id:
           type: string
           format: uuid
-    NsLcmOpOcc:
+    OpId:
       type: object
       properties:
-        _id:
+        op_id:
           type: string
           format: uuid
-        id:
+    WimType:
+      type: string
+      enum:
+        - onos
+        - odl
+        - tapi
+        - dynpac
+        - fake
+    WimInfo:
+      type: object
+      properties:
+        _id:
           type: string
           format: uuid
-        lcmOperationType:
+        schema_version:
           type: string
-        nsInstanceId:
+          format: X.Y[.Z]
+        schema_type:
           type: string
-          format: uuid
-        isAutomaticInvocation:
-          type: boolean
-        isCancelPending:
-          type: boolean
-        startTime:
-          type: number
-          format: float
-        statusEnteredTime:
-          type: number
-          format: float
-        operationParams:
-          type: object
-          properties:
-            nsName:
-              type: string
-            nsdId:
-              type: string
-              format: uuid
-            vimAccountId:
-              type: string
-              format: uuid
-            nsInstanceId:
-              type: string
-              format: uuid
-            lcmOperationType:
-              type: string
-        operationState:
+        name:
           type: string
-        detailed-status:
+        description:
           type: string
-        links:
+        wim:
+          type: string
+        wim_type:
+          $ref: '#/components/schemas/WimType'
+        wim_url:
+          type: string
+          format: url     # uri?
+        user:
+          type: string
+        password:
+          type: string
+        config:
           type: object
-          properties:
-            self:
-              type: string
-              format: path   # uri?
-            nsInstance:
-              type: string
-              format: path   # uri?
-    ArrayOfNsLcmOpOcc:
+          additionalProperties: true
+    ArrayOfWimInfo:
       type: array
       items:
-        $ref: '#/components/schemas/NsLcmOpOcc'
-    VnfInstanceInfo:
-      description: |
-        VNF Instance Information
-        Only generic fields (_id, id) are described
-        For a full specification of the VNF Instance see:
-        http://osm-download.etsi.org/ftp/osm-doc/vnfr.html
+        $ref: '#/components/schemas/WimInfo'
+    CreateWimRequest:
       type: object
       properties:
-        _id:
+        schema_version:
           type: string
-          format: uuid
-        id:
+          format: X.Y[.Z]
+        schema_type:
           type: string
-          format: uuid
-    ArrayOfVnfInstanceInfo:
-      type: array
-      items:
-        $ref: '#/components/schemas/VnfInstanceInfo'
-    NstInfo:
-      description: |
-        NetSlice Template Information
-        Only generic fields (_id, id, name) are described
-        For a full specification of the NetSlice Template see:
-        http://osm-download.etsi.org/ftp/osm-doc/nst.html
+        name:
+          type: string
+        description:
+          type: string
+        wim:
+          type: string
+        wim_type:
+          $ref: '#/components/schemas/WimType'
+        wim_url:
+          type: string
+          format: url     # uri?
+        user:
+          type: string
+        password:
+          type: string
+        config:
+          type: object
+          additionalProperties: true
+      required:
+        - name
+        - wim_url
+        - wim_type
+      additionalProperties: false
+    EditWimRequest:
       type: object
       properties:
-        _id:
-          description: NetSlice Template Identifier
+        name:
           type: string
-          format: uuid
-        id:
-          description: Human readable NetSlice Template Identifier
+        description:
           type: string
-        name:
-          description: Human readable name of the NetSlice Template
+        wim:
           type: string
-    ArrayOfNstInfo:
-      type: array
-      items:
-        $ref: '#/components/schemas/NstInfo'
-    CreateNstInfoRequest:
-      # A free list of key:value pairs
-      type: object
-      additionalProperties: true
-    NetSliceTemplate:
-      type: string
-      format: yaml|json
-    NetSlicePackage:
-      type: string
-      format: binary
-    NstInfoModifications:
-      description: |
-        NetSlice Template Information
-        Only generic fields (id, name) are described
-        For a full specification of the NetSlice Template see:
-        http://osm-download.etsi.org/ftp/osm-doc/nst.html
+        wim_type:
+          type: string
+        wim_url:
+          type: string
+          format: url     # uri?
+        user:
+          type: string
+        password:
+          type: string
+        config:
+          type: object
+          additionalProperties: true
+      additionalProperties: false
+    SdnBasicProperties:
       type: object
       properties:
-        id:
-          description: NST Identifier
-          type: string
         name:
-          description: NST Name
           type: string
-    NetSliceInstance:
-      description: |
-        NetSlice Instance Information
-        Only generic fields (_id, id, name, description) are described
-        For a full specification of the NetSlice Instance see:
-        http://osm-download.etsi.org/ftp/osm-doc/nsi.html
+        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
       properties:
         _id:
-          description: Identifier of the NetSlice instance.
-          type: string
-          format: uuid
-        id:
-          description: Identifier of the NetSlice instance.
           type: string
           format: uuid
-        name:
-          description: Human readable name of the NetSlice instance.
-          type: string
-        description:
-          description: Human readable description of the NetSlice instance.
+        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:
-        - _id
-        - id
         - name
-    ArrayOfNetSliceInstance:
+        - type
+        - ip
+        - port
+        - dpid
+      additionalProperties: false
+    EditSdnRequest:
+      allOf:
+        - $ref: '#/components/schemas/SdnBasicProperties'
+      additionalProperties: false
+    NsPmJobReportInfo:
+      type: object
+      properties:
+        entries:
+          type: array
+          items:
+            type: object
+            properties:
+              objectInstanceId:
+                type: string
+                format: uuid
+              performanceMetric:
+                type: string
+              performanceValue:
+                type: object
+                properties:
+                  performanceValue:
+                    type: object
+                    properties:
+                      performanceValue:
+                        type: number
+                      vnfMemberIndex:
+                        type: string
+                      vduName:
+                        type: string
+                  timestamp:
+                    type: number
+    PduInterfaces:
       type: array
       items:
-        $ref: '#/components/schemas/NetSliceInstance'
-    CreateNsiRequest:
+        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:
-        nstId:
-          description: |
-            Identifier of the NST that defines the NetSlice instance to be created.
+        _id:
           type: string
           format: uuid
-        nsiName:
-          description: |
-            Human-readable name of the NetSlice instance to be created.
+        name:
           type: string
-        nsiDescription:
-          description: |
-            Human-readable description of the NetSlice instance to be created.
+        type:
           type: string
-        vimAccountId:
-          description: |
-            Identifier of the VIM Account where the NetSlice instance shall be created.
+        description:
           type: string
-          format: uuid
-      required:
-        - nstId
-        - nsiName
-        - vimAccountId
-    InstantiateNsiRequest:
+        shared:
+          type: boolean
+        vims:
+          type: array
+          items:
+            type: string
+        vim_accounts:
+          type: array
+          items:
+            type: string
+        interfaces:
+          $ref: '#/components/schemas/PduInterfaces'
+    ArrayOfPduInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/PduInfo'
+    CreatePduRequest:
       type: object
       properties:
-        nsiName:
-          description: |
-            Human-readable name of the NetSlice instance to be created.
+        name:
           type: string
-        nstId:
-          description: |
-            Identifier of the NST that defines the NetSlice instance to be created.
+        type:
           type: string
-          format: uuid
-        vimAccountId:
-          description: |
-            Identifier of the VIM Account where the NetSlice instance shall be created.
+        description:
           type: string
-          format: uuid
+        shared:
+          type: boolean
+        vims:
+          type: array
+          items:
+            type: string
+        vim_accounts:
+          type: array
+          items:
+            type: string
+        interfaces:
+          $ref: '#/components/schemas/PduInterfaces'
       required:
-        - nsiName
-        - nstId
-        - vimAccountId
-    TerminateNsiRequest:
+        - name
+        - type
+        - interfaces
+      additionalProperties: false
+    EditPduRequest:
       type: object
       properties:
-        terminationTime:
-          description: |
-            Timestamp indicating the end time of the NSI, i.e. the NSI will be terminated
-            automatically at this timestamp. Cardinality "0" indicates the NSI termination
-            takes place immediately.
+        name:
           type: string
-          format: date-time
-    NsiActionRequest:
+        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
+    K8sClusterNetList:
+      type: array
+      items:
+        type: object
+        additionalProperties: true
+    K8sClusterInfo:
       type: object
       properties:
-        primitive:
+        _id:
           type: string
-        primitive_params:
-          $ref: '#/components/schemas/KeyValuePairs'
-        lcmOperationType:
+          format: uuid
+        schema_version:
           type: string
-        netsliceInstanceId:
+          format: X.Y[.Z]
+        schema_type:
+          type: string
+        name:
+          type: string
+        description:
+          type: string
+        credentials:
+          type: object
+          additionalProperties: true
+        vim_account:
           type: string
           format: uuid
-      required:
-        - primitive
-        - primitive_params
-    CreateNsiContentRequest:
+        k8s_version:
+          type: string
+        nets:
+          $ref: '#/components/schemas/K8sClusterNetList'
+        namespace:
+          type: string
+        cni:
+          type: array
+          items:
+            type: string
+    ArrayOfK8sClusterInfo:
+      type: array
+      items:
+        $ref: '#/components/schemas/K8sClusterInfo'
+    CreateK8sClusterRequest:
       type: object
       properties:
-        nstId:
-          description: |
-            Identifier of the NST that defines the NetSlice instance to be created.
+        schema_version:
           type: string
-          format: uuid
-        nsiName:
-          description: |
-            Human-readable name of the NetSlice instance to be created.
+          format: X.Y[.Z]
+        schema_type:
           type: string
-        vimAccountId:
-          description: |
-            Identifier of the VIM Account where the NetSlice instance shall be created.
+        name:
+          type: string
+        description:
+          type: string
+        credentials:
+          type: object
+          additionalProperties: true
+        vim_account:
           type: string
           format: uuid
+        k8s_version:
+          type: string
+        nets:
+          $ref: '#/components/schemas/K8sClusterNetList'
+        namespace:
+          type: string
+        cni:
+          type: array
+          items:
+            type: string
       required:
-        - nsdId
-        - nsName
-        - vimAccountId
-    CreateNsiContentResponse:
+        - name
+        - credentials
+        - vim_account
+        - k8s_version
+        - nets
+      additionalProperties: false
+    EditK8sClusterRequest:
       type: object
       properties:
-        id:
+        name:
           type: string
-          format: uuid
-        nsilcmop_id:
+        description:
+          type: string
+        credentials:
+          type: object
+          additionalProperties: true
+        vim_account:
           type: string
           format: uuid
-    NsiLcmOpOcc:
+        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:
       type: object
       properties:
         _id:
           type: string
           format: uuid
-        id:
-          type: string
-          format: uuid
-        lcmOperationType:
-          type: string
-        netsliceInstanceId:
+        name:
           type: string
-          format: uuid
-        isAutomaticInvocation:
-          type: boolean
-        isCancelPending:
-          type: boolean
-        startTime:
-          type: number
-          format: float
-        statusEnteredTime:
-          type: number
-          format: float
-        operationParams:
-          type: object
-          properties:
-            nsiName:
-              type: string
-            nstId:
-              type: string
-              format: uuid
-            vimAccountId:
-              type: string
-              format: uuid
-            netsliceInstanceId:
-              type: string
-              format: uuid
-            lcmOperationType:
-              type: string
-            nslcmops_ids:
-              type: array
-              items:
-                type: string
-                format: uuid
-        operationState:
+        description:
           type: string
-        detailed-status:
+        type:
+          $ref: '#/components/schemas/K8sRepoType'
+        url:
           type: string
-        links:
-          type: object
-          properties:
-            self:
-              type: string
-              format: path   # uri?
-            netsliceInstanceId:
-              type: string
-              format: path   # uri?
-    ArrayOfNsiLcmOpOcc:
+          format: url     # uri?
+    ArrayOfK8sRepoInfo:
       type: array
       items:
-        $ref: '#/components/schemas/NsiLcmOpOcc'
+        $ref: '#/components/schemas/K8sRepoInfo'
+    CreateK8sRepoRequest:
+      type: object
+      properties:
+        name:
+          type: string
+        description:
+          type: string
+        type:
+          $ref: '#/components/schemas/K8sRepoType'
+        url:
+          type: string
+          format: url     # uri?
+      required:
+        - name
+        - type
+        - url
+      additionalProperties: false
   # END SCHEMAS
 
   requestBodies:
@@ -4127,14 +7774,8 @@ components:
         text/plain:
           schema:
             $ref: '#/components/schemas/VnfDescriptor'
-    CreateNsRequest:
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/CreateNsRequest'
-        application/yaml:
-          schema:
-            $ref: '#/components/schemas/CreateNsRequest'
+    # CreateNsRequest:
+      # Substituted by InstantiateNsRequest
     InstantiateNsRequest:
       content:
         application/json:
@@ -4159,14 +7800,8 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/TerminateNsRequest'
-    CreateNSinstanceContentRequest:
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/CreateNSinstanceContentRequest'
-        application/yaml:
-          schema:
-            $ref: '#/components/schemas/CreateNSinstanceContentRequest'
+    # CreateNSinstanceContentRequest:
+      # Substituted by InstantiateNsRequest
     CreateNstInfoRequest:
       content:
         application/json:
@@ -4193,14 +7828,8 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/NstInfoModifications'
-    CreateNsiRequest:
-      content:
-        application/json:
-          schema:
-            $ref: '#/components/schemas/CreateNsiRequest'
-        application/yaml:
-          schema:
-            $ref: '#/components/schemas/CreateNsiRequest'
+    # CreateNsiRequest:
+      # Substituted by InstantiateNsiRequest
     InstantiateNsiRequest:
       content:
         application/json:
@@ -4225,14 +7854,152 @@ components:
         application/yaml:
           schema:
             $ref: '#/components/schemas/NsiActionRequest'
-    CreateNsiContentRequest:
+    # CreateNsiContentRequest:
+      # Substituted by InstantiateNsiRequest
+    CreateTokenRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateTokenRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateTokenRequest'
+    CreateUserRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateUserRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateUserRequest'
+    EditUserRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditUserRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditUserRequest'
+    CreateProjectRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateProjectRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateProjectRequest'
+    EditProjectRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditProjectRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditProjectRequest'
+    CreateRoleRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateRoleRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateRoleRequest'
+    EditRoleRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditRoleRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditRoleRequest'
+    CreateVimRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateVimRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateVimRequest'
+    EditVimRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditVimRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditVimRequest'
+    CreateWimRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateWimRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateWimRequest'
+    EditWimRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditWimRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditWimRequest'
+    CreateSdnRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateSdnRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateSdnRequest'
+    EditSdnRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditSdnRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditSdnRequest'
+    CreatePduRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreatePduRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreatePduRequest'
+    EditPduRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditPduRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditPduRequest'
+    CreateK8sClusterRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/CreateK8sClusterRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/CreateK8sClusterRequest'
+    EditK8sClusterRequest:
+      content:
+        application/json:
+          schema:
+            $ref: '#/components/schemas/EditK8sClusterRequest'
+        application/yaml:
+          schema:
+            $ref: '#/components/schemas/EditK8sClusterRequest'
+    CreateK8sRepoRequest:
       content:
         application/json:
           schema:
-            $ref: '#/components/schemas/CreateNsiContentRequest'
+            $ref: '#/components/schemas/CreateK8sRepoRequest'
         application/yaml:
           schema:
-            $ref: '#/components/schemas/CreateNsiContentRequest'
+            $ref: '#/components/schemas/CreateK8sRepoRequest'
   # END REQUEST BODIES
 
   securitySchemes: