+# BEGIN Admin
+ '/admin/v1/tokens':
+ get:
+ tags:
+ - "Authentication"
+ - "Admin"
+ summary: Query information about multiple Tokens
+ description: Query information about multiple Tokens
+ operationId: getTokens
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArrayOfTokenInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ArrayOfTokenInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ post:
+ tags:
+ - "Authentication"
+ - "Admin"
+ summary: Request a new Token
+ description: Request a new Token
+ operationId: createToken
+ requestBody:
+ $ref: '#/components/requestBodies/CreateTokenRequest'
+ responses:
+ '200':
+ description: OK
+ headers:
+ Location:
+ schema:
+ type: string
+ format: uri
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TokenInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/TokenInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ delete:
+ tags:
+ - "Authentication"
+ - "Admin"
+ summary: Delete the Token indicated in the Authorization Header
+ description: Delete the Token indicated in the Authorization Header
+ operationId: deleteAuthToken
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ type: string
+ application/yaml:
+ schema:
+ type: string
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/tokens/{tokenId}':
+ parameters:
+ - name: tokenId
+ in: path
+ required: true
+ description: Token ID
+ schema:
+ type: string
+ get:
+ tags:
+ - "Authentication"
+ - "Admin"
+ summary: Query information about an individual Token
+ description: Query information about an individual Token
+ operationId: getToken
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/TokenInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/TokenInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ delete:
+ tags:
+ - "Authentication"
+ - "Admin"
+ summary: Delete the Token indicated as parameter
+ description: Delete the Token indicated as parameter
+ operationId: deleteToken
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ type: string
+ application/yaml:
+ schema:
+ type: string
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/users':
+ get:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Query information about multiple Users
+ description: Query information about multiple Users
+ operationId: getUsers
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArrayOfUserInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ArrayOfUserInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ post:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Create a new User
+ description: Create a new User
+ operationId: createUser
+ requestBody:
+ $ref: '#/components/requestBodies/CreateUserRequest'
+ responses:
+ '201':
+ description: Created
+ headers:
+ Location:
+ schema:
+ type: string
+ format: uri
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ObjectId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ObjectId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/users/{userId}':
+ parameters:
+ - name: userId
+ in: path
+ required: true
+ description: User ID/Name
+ schema:
+ type: string
+ get:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Query information about an individual User
+ description: Query information about an individual User
+ operationId: getUser
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/UserInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/UserInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ patch:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Modify a User
+ description: Modify a User
+ operationId: editUser
+ requestBody:
+ $ref: '#/components/requestBodies/EditUserRequest'
+ responses:
+ '204':
+ description: No Content
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ delete:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Delete a User
+ description: Delete a User
+ operationId: deleteUser
+ responses:
+ '204':
+ description: No Content
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/projects':
+ get:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Query information about multiple Projects
+ description: Query information about multiple Projects
+ operationId: getProjects
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArrayOfProjectInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ArrayOfProjectInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ post:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Create a new Project
+ description: Create a new Project
+ operationId: createProject
+ requestBody:
+ $ref: '#/components/requestBodies/CreateProjectRequest'
+ responses:
+ '201':
+ description: Created
+ headers:
+ Location:
+ schema:
+ type: string
+ format: uri
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ObjectId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ObjectId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/projects/{projectId}':
+ parameters:
+ - name: projectId
+ in: path
+ required: true
+ description: Project ID/Name
+ schema:
+ type: string
+ get:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Query information about an individual Project
+ description: Query information about an individual Project
+ operationId: getProject
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProjectInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ProjectInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ patch:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Modify a Project
+ description: Modify a Project
+ operationId: editProject
+ requestBody:
+ $ref: '#/components/requestBodies/EditProjectRequest'
+ responses:
+ '204':
+ description: No Content
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ delete:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Delete a Project
+ description: Delete a Project
+ operationId: deleteProject
+ responses:
+ '204':
+ description: No Content
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/roles':
+ get:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Query information about multiple Roles
+ description: Query information about multiple Roles
+ operationId: getRoles
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArrayOfRoleInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ArrayOfRoleInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ post:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Create a new Role
+ description: Create a new Role
+ operationId: createRole
+ requestBody:
+ $ref: '#/components/requestBodies/CreateRoleRequest'
+ responses:
+ '201':
+ description: Created
+ headers:
+ Location:
+ schema:
+ type: string
+ format: uri
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ObjectId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ObjectId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/roles/{roleId}':
+ parameters:
+ - name: roleId
+ in: path
+ required: true
+ description: Role ID/Name
+ schema:
+ type: string
+ get:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Query information about an individual Role
+ description: Query information about an individual Role
+ operationId: getRole
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/RoleInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/RoleInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ patch:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Modify a Role
+ description: Modify a Role
+ operationId: editRole
+ requestBody:
+ $ref: '#/components/requestBodies/EditRoleRequest'
+ responses:
+ '204':
+ description: No Content
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ delete:
+ tags:
+ - "Identity"
+ - "Admin"
+ summary: Delete a Role
+ description: Delete a Role
+ operationId: deleteRole
+ responses:
+ '204':
+ description: No Content
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/vims':
+ get:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Query information about multiple VIMs
+ description: Query information about multiple VIMs
+ operationId: getVIMs
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArrayOfVimInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ArrayOfVimInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ post:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Create a new VIM
+ description: Create a new VIM
+ operationId: createVIM
+ requestBody:
+ $ref: '#/components/requestBodies/CreateVimRequest'
+ responses:
+ '202':
+ description: Accepted
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ObjectId_plus_OpId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ObjectId_plus_OpId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/vims/{vimId}':
+ parameters:
+ - name: vimId
+ in: path
+ required: true
+ description: VIM ID
+ schema:
+ type: string
+ format: uuid
+ get:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Query information about an individual VIM
+ description: Query information about an individual VIM
+ operationId: getVIM
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VimInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/VimInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ patch:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Modify a VIM
+ description: Modify a VIM
+ operationId: editVIM
+ requestBody:
+ $ref: '#/components/requestBodies/EditVimRequest'
+ responses:
+ '202':
+ description: Accepted
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/OpId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ delete:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Delete a VIM
+ description: Delete a VIM
+ operationId: deleteVIM
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/vim_accounts':
+ get:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Query information about multiple VIM Accounts
+ description: Query information about multiple VIM Accounts
+ operationId: getVimAccounts
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArrayOfVimInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ArrayOfVimInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ post:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Create a new VIM Account
+ description: Create a new VIM Account
+ operationId: createVimAccount
+ requestBody:
+ $ref: '#/components/requestBodies/CreateVimRequest'
+ responses:
+ '202':
+ description: Accepted
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ObjectId_plus_OpId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ObjectId_plus_OpId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/vim_accounts/{vimAccountId}':
+ parameters:
+ - name: vimAccountId
+ in: path
+ required: true
+ description: VIM Account ID
+ schema:
+ type: string
+ format: uuid
+ get:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Query information about an individual VIM Account
+ description: Query information about an individual VIM Account
+ operationId: getVimAccount
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/VimInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/VimInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ patch:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Modify a VIM Account
+ description: Modify a VIM Account
+ operationId: editVimAccount
+ requestBody:
+ $ref: '#/components/requestBodies/EditVimRequest'
+ responses:
+ '202':
+ description: Accepted
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/OpId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ delete:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Delete a VIM Account
+ description: Delete a VIM Account
+ operationId: deleteVimAccount
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/wim_accounts':
+ get:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Query information about multiple WIM Accounts
+ description: Query information about multiple WIM Accounts
+ operationId: getWimAccounts
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArrayOfWimInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ArrayOfWimInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ post:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Create a new WIM Account
+ description: Create a new WIM Account
+ operationId: createWimAccount
+ requestBody:
+ $ref: '#/components/requestBodies/CreateWimRequest'
+ responses:
+ '202':
+ description: Accepted
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ObjectId_plus_OpId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ObjectId_plus_OpId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/wim_accounts/{wimAccountId}':
+ parameters:
+ - name: wimAccountId
+ in: path
+ required: true
+ description: WIM Account ID
+ schema:
+ type: string
+ format: uuid
+ get:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Query information about an individual WIM Account
+ description: Query information about an individual WIM Account
+ operationId: getWimAccount
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/WimInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/WimInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ patch:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Modify a WIM Account
+ description: Modify a WIM Account
+ operationId: editWimAccount
+ requestBody:
+ $ref: '#/components/requestBodies/EditWimRequest'
+ responses:
+ '202':
+ description: Accepted
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/OpId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ delete:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Delete a WIM Account
+ description: Delete a WIM Account
+ operationId: deleteWimAccount
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/sdns':
+ get:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Query information about multiple SDNs
+ description: Query information about multiple SDNs
+ operationId: getSDNs
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArrayOfSdnInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ArrayOfSdnInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ post:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Create a new SDN
+ description: Create a new SDN
+ operationId: createSDN
+ requestBody:
+ $ref: '#/components/requestBodies/CreateSdnRequest'
+ responses:
+ '202':
+ description: Accepted
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ObjectId_plus_OpId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ObjectId_plus_OpId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/sdns/{sdnId}':
+ parameters:
+ - name: sdnId
+ in: path
+ required: true
+ description: SDN ID
+ schema:
+ type: string
+ format: uuid
+ get:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Query information about an individual SDN
+ description: Query information about an individual SDN
+ operationId: getSDN
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SdnInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/SdnInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ patch:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Modify a SDN
+ description: Modify a SDN
+ operationId: editSDN
+ requestBody:
+ $ref: '#/components/requestBodies/EditSdnRequest'
+ responses:
+ '202':
+ description: Accepted
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/OpId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ delete:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Delete a SDN
+ description: Delete a SDN
+ operationId: deleteSDN
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/k8sclusters':
+ get:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Query information about multiple K8s Clusters
+ description: Query information about multiple K8s Clusters
+ operationId: getK8sClusters
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArrayOfK8sClusterInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ArrayOfK8sClusterInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ post:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Create a new K8s Cluster
+ description: Create a new K8s Cluster
+ operationId: createK8sCluster
+ requestBody:
+ $ref: '#/components/requestBodies/CreateK8sClusterRequest'
+ responses:
+ '202':
+ description: Accepted
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ObjectId_plus_OpId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ObjectId_plus_OpId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/k8sclusters/{k8sClusterId}':
+ parameters:
+ - name: k8sClusterId
+ in: path
+ required: true
+ description: K8s Cluster ID
+ schema:
+ type: string
+ format: uuid
+ get:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Query information about an individual K8s Cluster
+ description: Query information about an individual K8s Cluster
+ operationId: getK8sCluster
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/K8sClusterInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/K8sClusterInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ patch:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Modify a K8s Cluster
+ description: Modify a K8s Cluster
+ operationId: editK8sCluster
+ requestBody:
+ $ref: '#/components/requestBodies/EditK8sClusterRequest'
+ responses:
+ '202':
+ description: Accepted
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/OpId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/OpId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ delete:
+ tags:
+ - "Infrastructure"
+ - "Admin"
+ summary: Delete a K8s Cluster
+ description: Delete a K8s Cluster
+ operationId: deleteK8sCluster
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/k8srepos':
+ get:
+ tags:
+ - "Repositories"
+ - "Admin"
+ summary: Query information about multiple K8s Repos
+ description: Query information about multiple K8s Repos
+ operationId: getK8sRepos
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ArrayOfK8sRepoInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ArrayOfK8sRepoInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ post:
+ tags:
+ - "Repositories"
+ - "Admin"
+ summary: Create a new K8s Repo
+ description: Create a new K8s Repo
+ operationId: createK8sRepo
+ requestBody:
+ $ref: '#/components/requestBodies/CreateK8sRepoRequest'
+ responses:
+ '202':
+ description: Accepted
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ObjectId_plus_OpId'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/ObjectId_plus_OpId'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ '/admin/v1/k8srepos/{k8sRepoId}':
+ parameters:
+ - name: k8sRepoId
+ in: path
+ required: true
+ description: K8s Repo ID
+ schema:
+ type: string
+ format: uuid
+ get:
+ tags:
+ - "Repositories"
+ - "Admin"
+ summary: Query information about an individual K8s Repo
+ description: Query information about an individual K8s Repo
+ operationId: getK8sRepo
+ responses:
+ '200':
+ description: OK
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/K8sRepoInfo'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/K8sRepoInfo'
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+ delete:
+ tags:
+ - "Repositories"
+ - "Admin"
+ summary: Delete a K8s Repo
+ description: Delete a K8s Repo
+ operationId: deleteK8sRepo
+ responses:
+ '202':
+ description: Accepted
+ '400':
+ $ref: '#/components/responses/BadRequest'
+ '401':
+ $ref: '#/components/responses/Unauthorized'
+ '403':
+ $ref: '#/components/responses/Forbidden'
+ '404':
+ $ref: '#/components/responses/NotFound'
+ '405':
+ $ref: '#/components/responses/MethodNotAllowed'
+ '406':
+ $ref: '#/components/responses/NotAcceptable'
+ '409':
+ $ref: '#/components/responses/Conflict'
+ '422':
+ $ref: '#/components/responses/UnprocessableEntity'
+ '500':
+ $ref: '#/components/responses/InternalServerError'
+ '503':
+ $ref: '#/components/responses/ServiceUnavailable'
+ '5XX':
+ $ref: '#/components/responses/UnexpectedError'
+ default:
+ $ref: '#/components/responses/UnexpectedError'
+# END Admin
+
+externalDocs:
+ description: Find out more about OSM
+ url: 'https://osm.etsi.org/docs/user-guide/'
+
+components:
+ responses:
+ BadRequest:
+ description: Bad request. The server cannot process the request due to a client error.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ Unauthorized:
+ description: Authorization information is missing or invalid.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ Forbidden:
+ description: Not enough permissions to do this operation.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ NotFound:
+ description: The specified resource was not found.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ MethodNotAllowed:
+ description: This method is not supported for the requested resource.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ NotAcceptable:
+ description: The requested resource content cannot match the Accept headers sent in the request.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ Conflict:
+ description: The operation cannot be executed currently, due to a conflict with the state of the resource.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ UnprocessableEntity:
+ description: The request was well-formed but was unable to be followed due to semantic errors.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ InternalServerError:
+ description: Internal server error.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ ServiceUnavailable:
+ description: Service temporarily unavailable.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ UnexpectedError:
+ description: Unexpected error.
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/ProblemDetails'
+ VnfDescriptor:
+ description: VNF Descriptor (plaintext)
+ content:
+ text/plain:
+ schema:
+ $ref: '#/components/schemas/VnfDescriptor'
+ VnfPackage:
+ description: VNF Package (compressed)
+ content:
+ application/zip:
+ schema:
+ $ref: '#/components/schemas/VnfPackage'
+ NsDescriptor:
+ description: NS Descriptor (plaintext)
+ content:
+ text/plain:
+ schema:
+ $ref: '#/components/schemas/NsDescriptor'
+ NsPackage:
+ description: NS Package (compressed)
+ content:
+ application/zip:
+ schema:
+ $ref: '#/components/schemas/NsPackage'
+ NetSliceTemplate:
+ description: NetSlice Template (plaintext)
+ content:
+ text/plain:
+ schema:
+ $ref: '#/components/schemas/NetSliceTemplate'
+ NetSlicePackage:
+ description: NetSlice Package (compressed)
+ content:
+ application/zip:
+ schema:
+ $ref: '#/components/schemas/NetSlicePackage'
+ NslcmSubscriptionResponse:
+ description: NslcmSubscriptionResponse
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/NslcmSubscriptionResponse'
+ application/yaml:
+ schema:
+ $ref: '#/components/schemas/NslcmSubscriptionResponse'
+ # END RESPONSES
+
+ schemas:
+ ObjectId:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ KeyValuePairs:
+ # A free list of key:value pairs
+ type: object
+ additionalProperties: true
+ NsDescriptor:
+ type: string
+ format: yaml|json
+ NsPackage:
+ type: string
+ format: binary
+ CreateNsdInfoRequest:
+ # A free list of key:value pairs
+ type: object
+ additionalProperties: true
+ NsdInfoModifications:
+ description: |
+ NS Descriptor Information
+ Only generic fields (id, name, description) are described
+ For a full specification of the NS Descriptor see:
+ http://osm-download.etsi.org/ftp/osm-doc/nsd.html
+ type: object
+ properties:
+ id:
+ description: NSD Identifier
+ type: string
+ name:
+ description: NSD Name
+ type: string
+ description:
+ description: NSD Description
+ type: string
+ NsdInfo:
+ description: |
+ NS Descriptor Information
+ Only generic fields (_id, id, name, description) are described
+ For a full specification of the NS Descriptor see:
+ http://osm-download.etsi.org/ftp/osm-doc/nsd.html
+ type: object
+ properties:
+ _id:
+ description: |
+ Identifier of the onboarded individual NS descriptor
+ resource. This identifier is allocated by the NFVO.
+ type: string
+ format: uuid
+ id:
+ description: |
+ This identifier, which is allocated by the NSD
+ designer, identifies the NSD in a globally unique
+ way. It is copied from the NSD content and shall be
+ present after the NSD content is on-boarded.
+ type: string
+ name:
+ description: |
+ Name of the onboarded NSD. This information is
+ copied from the NSD content and shall be present
+ after the NSD content is on-boarded.
+ type: string
+ description:
+ description: |
+ Description of the onboarded NSD.
+ This information is copied from the NSD content.
+ type: string
+ required:
+ - _id
+ - id
+ ArrayOfNsdInfo:
+ type: array
+ items:
+ $ref: '#/components/schemas/NsdInfo'
+ ProblemDetails:
+ type: object
+ properties:
+ type:
+ type: string
+ format: uri
+ title:
+ type: string
+ status:
+ type: integer
+ detail:
+ type: string
+ instance:
+ type: string
+ format: uri
+ additionalProperties: true
+ required:
+ - status
+ - detail
+ VnfDescriptor:
+ type: string
+ format: yaml|json
+ VnfPackage:
+ type: string
+ format: binary
+ CreateVnfPkgInfoRequest:
+ # A free list of key:value pairs
+ type: object
+ additionalProperties: true
+ VnfPkgInfoModifications:
+ description: |
+ VNF Package Information
+ Only generic fields (id, name, description) are described
+ For a full specification of the VNF Descriptor see:
+ http://osm-download.etsi.org/ftp/osm-doc/vnfd.html
+ type: object
+ properties:
+ id:
+ description: VNF Package Identifier
+ type: string
+ name:
+ description: VNF Package Name
+ type: string
+ description:
+ description: VNF Package description
+ type: string
+ VnfPkgInfo:
+ description: |
+ VNF Package Information
+ Only generic fields (_id, id, name, description) are described
+ For a full specification of the VNF Descriptor see:
+ http://osm-download.etsi.org/ftp/osm-doc/vnfd.html
+ type: object
+ properties:
+ _id:
+ description: |
+ Identifier of the VNF package. This identifier is allocated by the NFVO.
+ type: string
+ format: uuid
+ id:
+ description: VNF Package Identifier
+ type: string
+ name:
+ description: VNF Package Name
+ type: string
+ description:
+ description: VNF Package description
+ type: string
+ required:
+ - _id
+ - id
+ ArrayOfVnfPkgInfo:
+ type: array
+ items:
+ $ref: '#/components/schemas/VnfPkgInfo'
+ # CreateNsRequest:
+ # Substituted by InstantiateNsRequest
+ NsInstance:
+ description: |
+ NS Instance Information
+ Only generic fields (_id, id, name, description) are described
+ For a full specification of the NS Instance see:
+ http://osm-download.etsi.org/ftp/osm-doc/nsr.html
+ type: object
+ properties:
+ _id:
+ description: Identifier of the NS instance.
+ type: string
+ format: uuid
+ id:
+ description: Identifier of the NS instance.
+ type: string
+ format: uuid
+ name:
+ description: Human readable name of the NS instance.
+ type: string
+ description:
+ description: Human readable description of the NS instance.
+ type: string
+ required:
+ - _id
+ - id
+ - name
+ InstantiateNsRequest:
+ type: object
+ properties:
+ nsName:
+ description: |
+ Human-readable name of the NS instance to be created.
+ type: string
+ nsdId:
+ description: |
+ Identifier of the NSD that defines the NS instance to be created.
+ type: string
+ format: uuid
+ vimAccountId:
+ description: |
+ Identifier of the VIM Account where the NS instance shall be created.
+ type: string
+ format: uuid
+ lcmOperationType:
+ type: string
+ nsInstanceId:
+ type: string
+ format: uuid
+ netsliceInstanceId:
+ type: string
+ format: uuid
+ nsDescription:
+ type: string
+ nullable: true
+ wimAccountId:
+ oneOf:
+ - type: string
+ - type: boolean
+ nullable: true
+ additionalParamsForNs:
+ type: object
+ additionalProperties: true
+ additionalParamsForVnf: &additionalparamsforvnf
+ type: array
+ items:
+ type: object
+ properties:
+ member-vnf-index:
+ type: string
+ additionalParams:
+ type: object
+ additionalProperties: true
+ k8s-namespace:
+ type: string
+ description: |
+ use this namespace for all the KDU deployed in this VNF
+ (if any). By default it is used the id of the project
+ additionalParamsForVdu:
+ type: array
+ items:
+ type: object
+ properties:
+ vdu_id:
+ type: string
+ additionalParams:
+ type: object
+ additionalProperties: true
+ required:
+ - vdu_id
+ - additionalParams
+ additionalProperties: false
+ additionalParamsForKdu:
+ type: array
+ items:
+ type: object
+ properties:
+ kdu_name:
+ type: string
+ k8s-namespace:
+ type: string
+ description: use this namespace for this KDU
+ kdu_model:
+ type: string
+ additionalParams:
+ type: object
+ additionalProperties: true
+ required:
+ - kdu_name
+ minProperties: 2
+ additionalProperties: false
+ required:
+ - member-vnf-index
+ minProperties: 2
+ additionalProperties: false
+ ssh_keys:
+ type: array
+ items:
+ type: string
+ nsr_id:
+ type: string
+ format: uuid
+ vduImage:
+ type: string
+ placement-engine:
+ type: string
+ description: |
+ To compute automatically the target VIM for each VNF based on
+ constrains, e.g. latency. Currently only 'PLA' is supported
+ placement-constraints:
+ type: object
+ additionalProperties: true
+ k8s-namespace:
+ type: string
+ timeout_ns_deploy:
+ type: integer
+ vnf:
+ type: array
+ items:
+ type: object
+ properties:
+ member-vnf-index:
+ type: string
+ vimAccountId:
+ type: string
+ format: uuid
+ vdu:
+ type: array
+ items:
+ type: object
+ properties:
+ id:
+ type: string
+ volume:
+ type: array
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ vim-volume-id:
+ type: string
+ required:
+ - name
+ - vim-volume-id
+ additionalProperties: false
+ minItems: 1
+ interface:
+ type: array
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ ip-address:
+ type: string
+ format: ipv4
+ mac-address:
+ type: string
+ format: mac_address
+ floating-ip-required:
+ type: boolean
+ required:
+ - name
+ additionalProperties: false
+ minItems: 1
+ required:
+ - id
+ additionalProperties: false
+ minItems: 1
+ internal-vld:
+ type: array
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ vim-network-name:
+ type: string
+ vim-network-id:
+ type: string
+ ip-profile:
+ type: object
+ properties:
+ ip-version:
+ type: string
+ enum:
+ - ipv4
+ - ipv6
+ subnet-address:
+ type: string
+ format: ip_prefix
+ nullable: true
+ gateway-address:
+ type: string
+ format: ipv4
+ nullable: true
+ dns-server:
+ type: array
+ items:
+ type: object
+ properties:
+ address:
+ type: string
+ format: ipv4
+ required:
+ - address
+ additionalProperties: false
+ minItems: 1
+ nullable: true
+ dhcp-params:
+ type: object
+ properties:
+ enabled:
+ type: boolean
+ count:
+ type: integer
+ minimum: 1
+ start-address:
+ type: string
+ format: ipv4
+ additionalProperties: false
+ nullable: true
+ additionalProperties: false
+ provider-network:
+ type: object
+ properties:
+ physical-network:
+ type: string
+ segmentation-id:
+ type: string
+ network-type:
+ type: string
+ sdn-ports:
+ description: |
+ connect additional ports to the created underlay SDN connectivity.
+ Normally for external connectivy.
+ type: array
+ items:
+ type: object
+ properties:
+ switch_id:
+ type: string
+ switch_port:
+ type: string
+ mac_address:
+ type: string
+ format: mac_address
+ vlan:
+ type: integer
+ additionalProperties: true
+ required:
+ - switch_id
+ - switch_port
+ minItems: 1
+ additionalProperties: false
+ internal-connection-point:
+ type: array
+ items:
+ type: object
+ properties:
+ id-ref:
+ type: string
+ ip-address:
+ type: string
+ format: ipv4
+ required:
+ - id-ref
+ minProperties: 2
+ additionalProperties: False
+ minItems: 1
+ required:
+ - name
+ minProperties: 2
+ additionalProperties: false
+ minItems: 1
+ required:
+ - member-vnf-index
+ minProperties: 2
+ additionalProperties: false
+ minItems: 1
+ vld:
+ type: array
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ vim-network-name:
+ oneOf:
+ - type: string
+ - type: object
+ vim-network-id:
+ oneOf:
+ - type: string
+ - type: object
+ ns-net:
+ type: object
+ additionalProperties: true
+ wimAccountId:
+ oneOf:
+ - type: string
+ - type: boolean
+ nullable: true
+ ip-profile:
+ type: object
+ additionalProperties: true
+ provider-network:
+ type: object
+ properties:
+ physical-network:
+ type: string
+ segmentation-id:
+ type: string
+ additionalProperties: false
+ vnfd-connection-point-ref:
+ type: array
+ items:
+ type: object
+ properties:
+ member-vnf-index-ref:
+ type: string
+ vnfd-connection-point-ref:
+ type: string
+ ip-address:
+ type: string
+ format: ipv4
+ required:
+ - member-vnf-index-ref
+ - vnfd-connection-point-ref
+ minProperties: 3
+ additionalProperties: false
+ minItems: 1
+ required:
+ - name
+ additionalProperties: false
+ minItems: 1
+ required:
+ - nsName
+ - nsdId
+ - vimAccountId
+ additionalProperties: false
+ ScaleNsRequest:
+ type: object
+ properties:
+ scaleType:
+ type: string
+ enum:
+ - SCALE_VNF
+ timeout_ns_scale:
+ description: timeout for the scale operation
+ type: integer
+ scaleVnfData:
+ type: object
+ properties:
+ scaleVnfType:
+ type: string
+ enum:
+ - SCALE_IN
+ - SCALE_OUT
+ scaleByStepData:
+ type: object
+ properties:
+ scaling-group-descriptor:
+ type: string
+ scaling-policy:
+ type: string
+ member-vnf-index:
+ type: string
+ required:
+ - scaling-group-descriptor
+ - member-vnf-index
+ additionalProperties: false
+ required:
+ - scaleVnfType
+ - scaleByStepData
+ additionalProperties: false
+ required:
+ - scaleType
+ - scaleVnfData
+ additionalProperties: false
+ TerminateNsRequest:
+ type: object
+ properties:
+ timeout_ns_terminate:
+ description: timeout for terminate operation
+ type: integer
+ autoremove:
+ description: remove network service if termination end without error
+ type: boolean
+ skip_terminate_primitives:
+ description: Do not execute network service termination primitives
+ type: boolean
+ additionalProperties: false
+ ArrayOfNsInstance:
+ type: array
+ items:
+ $ref: '#/components/schemas/NsInstance'
+ NSinstanceActionRequest:
+ type: object
+ properties:
+ primitive:
+ type: string
+ description: |
+ name of the primitive in the 'config-descriptor'. If the target is
+ a kdu it can be also 'status', 'rollback' or 'upgrade'
+ primitive_params:
+ description: parameters of this primitive
+ $ref: '#/components/schemas/KeyValuePairs'
+ member_vnf_index:
+ type: string
+ description: provide if the target action is for a vnf, vdu or kdu
+ vdu_id:
+ type: string
+ description: provide if the target action is for a vdu
+ kdu_name:
+ type: string
+ description: provide if the target action is for a kdu
+ vdu_count_index:
+ type: integer
+ timeout_ns_action:
+ description: timeout for the day 1/2 operation
+ type: integer
+ required:
+ - primitive
+ - primitive_params
+ additionalProperties: false
+ # CreateNSinstanceContentRequest:
+ # Substituted by InstantiateNsRequest
+ CreateNSinstanceContentResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ nslcmop_id:
+ type: string
+ format: uuid
+ NsLcmOpOcc:
+ type: object
+ properties:
+ _id:
+ type: string
+ format: uuid
+ id:
+ type: string
+ format: uuid
+ lcmOperationType:
+ type: string
+ nsInstanceId:
+ type: string
+ format: uuid
+ isAutomaticInvocation:
+ type: boolean
+ isCancelPending:
+ type: boolean
+ startTime:
+ type: number
+ format: float
+ statusEnteredTime:
+ type: number
+ format: float
+ operationParams:
+ type: object
+ properties:
+ nsName:
+ type: string
+ nsdId:
+ type: string
+ format: uuid
+ vimAccountId:
+ type: string
+ format: uuid
+ nsInstanceId:
+ type: string
+ format: uuid
+ lcmOperationType:
+ type: string
+ operationState:
+ type: string
+ detailed-status:
+ type: string
+ links:
+ type: object
+ properties:
+ self:
+ type: string
+ format: path # uri?
+ nsInstance:
+ type: string
+ format: path # uri?
+ ArrayOfNsLcmOpOcc:
+ type: array
+ items:
+ $ref: '#/components/schemas/NsLcmOpOcc'
+ VnfInstanceInfo:
+ description: |
+ VNF Instance Information
+ Only generic fields (_id, id) are described
+ For a full specification of the VNF Instance see:
+ http://osm-download.etsi.org/ftp/osm-doc/vnfr.html
+ type: object
+ properties:
+ _id:
+ type: string
+ format: uuid
+ id:
+ type: string
+ format: uuid
+ ArrayOfVnfInstanceInfo:
+ type: array
+ items:
+ $ref: '#/components/schemas/VnfInstanceInfo'
+ NstInfo:
+ description: |
+ NetSlice Template Information
+ Only generic fields (_id, id, name) are described
+ For a full specification of the NetSlice Template see:
+ http://osm-download.etsi.org/ftp/osm-doc/nst.html
+ type: object
+ properties:
+ _id:
+ description: NetSlice Template Identifier
+ type: string
+ format: uuid
+ id:
+ description: Human readable NetSlice Template Identifier
+ type: string
+ name:
+ description: Human readable name of the NetSlice Template
+ type: string
+ ArrayOfNstInfo:
+ type: array
+ items:
+ $ref: '#/components/schemas/NstInfo'
+ CreateNstInfoRequest:
+ # A free list of key:value pairs
+ type: object
+ additionalProperties: true
+ NetSliceTemplate:
+ type: string
+ format: yaml|json
+ NetSlicePackage:
+ type: string
+ format: binary
+ NstInfoModifications:
+ description: |
+ NetSlice Template Information
+ Only generic fields (id, name) are described
+ For a full specification of the NetSlice Template see:
+ http://osm-download.etsi.org/ftp/osm-doc/nst.html
+ type: object
+ properties:
+ id:
+ description: NST Identifier
+ type: string
+ name:
+ description: NST Name
+ type: string
+ NetSliceInstance:
+ description: |
+ NetSlice Instance Information
+ Only generic fields (_id, id, name, description) are described
+ For a full specification of the NetSlice Instance see:
+ http://osm-download.etsi.org/ftp/osm-doc/nsi.html
+ type: object
+ properties:
+ _id:
+ description: Identifier of the NetSlice instance.
+ type: string
+ format: uuid
+ id:
+ description: Identifier of the NetSlice instance.
+ type: string
+ format: uuid
+ name:
+ description: Human readable name of the NetSlice instance.
+ type: string
+ description:
+ description: Human readable description of the NetSlice instance.
+ type: string
+ required:
+ - _id
+ - id
+ - name
+ ArrayOfNetSliceInstance:
+ type: array
+ items:
+ $ref: '#/components/schemas/NetSliceInstance'
+ # CreateNsiRequest:
+ # Substituted by InstantiateNsiRequest
+ InstantiateNsiRequest:
+ type: object
+ properties:
+ nsiName:
+ description: |
+ Human-readable name of the NetSlice instance to be created.
+ type: string
+ nstId:
+ description: |
+ Identifier of the NST that defines the NetSlice instance to be created.
+ type: string
+ format: uuid
+ vimAccountId:
+ description: |
+ Identifier of the VIM Account where the NetSlice instance shall be created.
+ type: string
+ format: uuid
+ lcmOperationType:
+ type: string
+ netsliceInstanceId:
+ type: string
+ format: uuid
+ nsiDescription:
+ type: string
+ nullable: true
+ ssh_keys:
+ type: string
+ nsi_id:
+ type: string
+ format: uuid
+ additionalParamsForNsi:
+ type: object
+ additionalProperties: true
+ netslice-subnet:
+ type: array
+ items:
+ type: object
+ properties:
+ id:
+ type: string
+ nsName:
+ type: string
+ nsdId:
+ type: string
+ format: uuid
+ vimAccountId:
+ type: string
+ format: uuid
+ lcmOperationType:
+ type: string
+ nsInstanceId:
+ type: string
+ format: uuid
+ netsliceInstanceId:
+ type: string
+ format: uuid
+ nsDescription:
+ type: string
+ nullable: true
+ wimAccountId:
+ oneOf:
+ - type: string
+ - type: boolean
+ nullable: true
+ additionalParamsForNs:
+ type: object
+ additionalProperties: true
+ additionalParamsForVnf: *additionalparamsforvnf
+ ssh_keys:
+ type: array
+ items:
+ type: string
+ nsr_id:
+ type: string
+ format: uuid
+ vduImage:
+ type: string
+ vnf:
+ type: array
+ items:
+ type: object
+ properties:
+ member-vnf-index:
+ type: string
+ vimAccountId:
+ type: string
+ format: uuid
+ vdu:
+ type: array
+ items:
+ type: object
+ properties:
+ id:
+ type: string
+ volume:
+ type: array
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ vim-volume-id:
+ type: string
+ required:
+ - name
+ - vim-volume-id
+ additionalProperties: false
+ minItems: 1
+ interface:
+ type: array
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ ip-address:
+ type: string
+ format: ipv4
+ mac-address:
+ type: string
+ format: mac_address
+ floating-ip-required:
+ type: boolean
+ required:
+ - name
+ additionalProperties: false
+ minItems: 1
+ required:
+ - id
+ additionalProperties: false
+ minItems: 1
+ internal-vld:
+ type: array
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ vim-network-name:
+ type: string
+ vim-network-id:
+ type: string
+ ip-profile:
+ type: object
+ properties:
+ ip-version:
+ type: string
+ enum:
+ - ipv4
+ - ipv6
+ subnet-address:
+ type: string
+ format: ip_prefix
+ nullable: true
+ gateway-address:
+ type: string
+ format: ipv4
+ nullable: true
+ dns-server:
+ type: array
+ items:
+ type: object
+ properties:
+ address:
+ type: string
+ format: ipv4
+ required:
+ - address
+ additionalProperties: false
+ minItems: 1
+ nullable: true
+ dhcp-params:
+ type: object
+ properties:
+ enabled:
+ type: boolean
+ count:
+ type: integer
+ minimum: 1
+ start-address:
+ type: string
+ format: ipv4
+ additionalProperties: false
+ nullable: true
+ additionalProperties: false
+ provider-network:
+ type: object
+ properties:
+ physical-network:
+ type: string
+ segmentation-id:
+ type: string
+ additionalProperties: false
+ internal-connection-point:
+ type: array
+ items:
+ type: object
+ properties:
+ id-ref:
+ type: string
+ ip-address:
+ type: string
+ format: ipv4
+ required:
+ - id-ref
+ minProperties: 2
+ additionalProperties: False
+ minItems: 1
+ required:
+ - name
+ minProperties: 2
+ additionalProperties: false
+ minItems: 1
+ required:
+ - member-vnf-index
+ minProperties: 2
+ additionalProperties: false
+ minItems: 1
+ vld:
+ type: array
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ vim-network-name:
+ oneOf:
+ - type: string
+ - type: object
+ vim-network-id:
+ oneOf:
+ - type: string
+ - type: object
+ ns-net:
+ type: object
+ additionalProperties: true
+ wimAccountId:
+ oneOf:
+ - type: string
+ - type: boolean
+ nullable: true
+ ip-profile:
+ type: object
+ additionalProperties: true
+ provider-network:
+ type: object
+ properties:
+ physical-network:
+ type: string
+ segmentation-id:
+ type: string
+ additionalProperties: false
+ vnfd-connection-point-ref:
+ type: array
+ items:
+ type: object
+ properties:
+ member-vnf-index-ref:
+ type: string
+ vnfd-connection-point-ref:
+ type: string
+ ip-address:
+ type: string
+ format: ipv4
+ required:
+ - member-vnf-index-ref
+ - vnfd-connection-point-ref
+ minProperties: 3
+ additionalProperties: false
+ minItems: 1
+ required:
+ - name
+ additionalProperties: false
+ minItems: 1
+ additionalProperties: false
+ minItems: 1
+ netslice-vld:
+ type: array
+ items:
+ type: object
+ properties:
+ name:
+ type: string
+ vim-network-name:
+ oneOf:
+ - type: string
+ - type: object
+ vim-network-id:
+ oneOf:
+ - type: string
+ - type: object
+ ip-profile:
+ type: object
+ additionalProperties: true
+ required:
+ - name
+ additionalProperties: false
+ minItems: 1
+ required:
+ - nsiName
+ - nstId
+ - vimAccountId
+ additionalProperties: false
+ TerminateNsiRequest:
+ type: object
+ properties:
+ terminationTime:
+ description: |
+ Timestamp indicating the end time of the NSI, i.e. the NSI will be terminated
+ automatically at this timestamp. Cardinality "0" indicates the NSI termination
+ takes place immediately.
+ type: string
+ format: date-time
+ NsiActionRequest:
+ type: object
+ properties:
+ primitive:
+ type: string
+ primitive_params:
+ $ref: '#/components/schemas/KeyValuePairs'
+ lcmOperationType:
+ type: string
+ netsliceInstanceId:
+ type: string
+ format: uuid
+ required:
+ - primitive
+ - primitive_params
+ # CreateNsiContentRequest:
+ # Substituted by InstantiateNsiRequest
+ CreateNsiContentResponse:
+ type: object
+ properties:
+ id:
+ type: string
+ format: uuid
+ nsilcmop_id:
+ type: string
+ format: uuid
+ NsiLcmOpOcc:
+ type: object
+ properties:
+ _id:
+ type: string
+ format: uuid
+ id:
+ type: string
+ format: uuid
+ lcmOperationType:
+ type: string
+ netsliceInstanceId:
+ type: string
+ format: uuid
+ isAutomaticInvocation:
+ type: boolean
+ isCancelPending:
+ type: boolean
+ startTime:
+ type: number
+ format: float
+ statusEnteredTime:
+ type: number
+ format: float
+ operationParams:
+ type: object
+ properties:
+ nsiName:
+ type: string
+ nstId:
+ type: string
+ format: uuid
+ vimAccountId:
+ type: string
+ format: uuid
+ netsliceInstanceId:
+ type: string
+ format: uuid
+ lcmOperationType:
+ type: string
+ nslcmops_ids:
+ type: array
+ items:
+ type: string
+ format: uuid
+ operationState:
+ type: string
+ detailed-status:
+ type: string
+ links:
+ type: object
+ properties:
+ self:
+ type: string
+ format: path # uri?
+ netsliceInstanceId:
+ type: string
+ format: path # uri?
+ ArrayOfNsiLcmOpOcc:
+ type: array
+ items:
+ $ref: '#/components/schemas/NsiLcmOpOcc'
+ TokenInfo:
+ type: object
+ properties:
+ _id:
+ type: string
+ id:
+ type: string
+ admin:
+ type: boolean
+ 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:
+ username:
+ type: string
+ password:
+ type: string
+ project_id:
+ type: string
+ required:
+ - username
+ - password
+ UserInfo:
+ type: object
+ properties:
+ _id:
+ type: string
+ format: uuid
+ username:
+ type: string
+ password:
+ type: string
+ project_role_mappings:
+ type: array
+ items:
+ type: object
+ properties:
+ project:
+ type: string
+ format: uuid
+ role:
+ type: string
+ format: uuid
+ project_name:
+ type: string
+ role_name:
+ type: string
+ projects:
+ type: array
+ items:
+ type: string
+ ArrayOfUserInfo:
+ type: array
+ items:
+ $ref: '#/components/schemas/UserInfo'
+ ProjectRoleMappings:
+ type: array
+ items:
+ type: object
+ properties:
+ project:
+ type: string
+ role:
+ type: string
+ required:
+ - project
+ - role
+ additionalProperties: false
+ ProjectRoleMappingsOpt:
+ type: array
+ items:
+ type: object
+ properties:
+ project:
+ type: string
+ role:
+ type: string
+ required:
+ - project
+ additionalProperties: false
+ CreateUserRequest:
+ type: object
+ properties:
+ username:
+ type: string
+ password:
+ type: string
+ projects:
+ type: array
+ items:
+ type: string
+ project_role_mappings:
+ $ref: '#/components/schemas/ProjectRoleMappings'
+ required:
+ - username
+ - password
+ additionalProperties: false
+ ShortNameList:
+ type: array
+ items:
+ type: string
+ ArrayEditionSchema:
+ type: object
+ additionalProperties: true
+ minProperties: 1
+ description: |
+ Array edition keys must start with '$'
+ and follow the syntax defined in: https://osm.etsi.org/wikipub/index.php/NBI_API_Description
+ EditUserRequest:
+ type: object
+ properties:
+ username:
+ type: string
+ password:
+ type: string
+ projects:
+ oneOf:
+ - $ref: '#/components/schemas/ShortNameList'
+ - $ref: '#/components/schemas/ArrayEditionSchema'
+ project_role_mappings:
+ $ref: '#/components/schemas/ProjectRoleMappings'
+ add_project_role_mappings:
+ $ref: '#/components/schemas/ProjectRoleMappings'
+ remove_project_role_mappings:
+ $ref: '#/components/schemas/ProjectRoleMappingsOpt'
+ QuotasInfo:
+ type: object
+ properties:
+ vnfds:
+ type: integer
+ minimum: 0
+ nullable: false
+ nsds:
+ type: integer
+ minimum: 0
+ nullable: false
+ slice_templates:
+ type: integer
+ minimum: 0
+ nullable: false
+ pduds:
+ type: integer
+ minimum: 0
+ nullable: false
+ ns_instances:
+ type: integer
+ minimum: 0
+ nullable: false
+ slice_instances:
+ type: integer
+ minimum: 0
+ nullable: false
+ vim_accounts:
+ type: integer
+ minimum: 0
+ nullable: false
+ wim_accounts:
+ type: integer
+ minimum: 0
+ nullable: false
+ sdn_controllers:
+ type: integer
+ minimum: 0
+ nullable: false
+ k8sclusters:
+ type: integer
+ minimum: 0
+ nullable: false
+ k8srepos:
+ type: integer
+ minimum: 0
+ nullable: false
+ osmrepos:
+ type: integer
+ minimum: 0
+ nullable: false
+ additionalProperties: false
+ EditQuotasInfo:
+ type: object
+ properties:
+ vnfds:
+ type: integer
+ minimum: 0
+ nullable: true
+ nsds:
+ type: integer
+ minimum: 0
+ nullable: true
+ slice_templates:
+ type: integer
+ minimum: 0
+ nullable: true
+ pduds:
+ type: integer
+ minimum: 0
+ nullable: true
+ ns_instances:
+ type: integer
+ minimum: 0
+ nullable: true
+ slice_instances:
+ type: integer
+ minimum: 0
+ nullable: true
+ vim_accounts:
+ type: integer
+ minimum: 0
+ nullable: true
+ wim_accounts:
+ type: integer
+ minimum: 0
+ nullable: true
+ sdn_controllers:
+ type: integer
+ minimum: 0
+ nullable: true
+ k8sclusters:
+ type: integer
+ minimum: 0
+ nullable: true
+ k8srepos:
+ type: integer
+ minimum: 0
+ nullable: true
+ osmrepos:
+ type: integer
+ minimum: 0
+ nullable: true
+ additionalProperties: false
+ ProjectInfo: