Files
object-browser/swagger-operator.yml
2022-12-06 09:53:01 -08:00

3754 lines
92 KiB
YAML

swagger: "2.0"
info:
title: MinIO Console Server
version: 0.1.0
consumes:
- application/json
produces:
- application/json
schemes:
- http
- ws
basePath: /api/v1
# We are going to be taking `Authorization: Bearer TOKEN` header for our authentication
securityDefinitions:
key:
type: oauth2
flow: accessCode
authorizationUrl: http://min.io
tokenUrl: http://min.io
# Apply the key security definition to all APIs
security:
- key: []
paths:
/login:
get:
summary: Returns login strategy, form or sso.
operationId: LoginDetail
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/loginDetails"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
# Exclude this API from the authentication requirement
security: []
tags:
- Auth
/login/operator:
post:
summary: Login to Operator Console.
operationId: LoginOperator
parameters:
- name: body
in: body
required: true
schema:
$ref: "#/definitions/loginOperatorRequest"
responses:
204:
description: A successful login.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
security: []
tags:
- Auth
/login/oauth2/auth:
post:
summary: Identity Provider oauth2 callback endpoint.
operationId: LoginOauth2Auth
parameters:
- name: body
in: body
required: true
schema:
$ref: "#/definitions/loginOauth2AuthRequest"
responses:
204:
description: A successful login.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
security: []
tags:
- Auth
/logout:
post:
summary: Logout from Operator.
operationId: Logout
responses:
200:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- Auth
/session:
get:
summary: Endpoint to check if your session is still valid
operationId: SessionCheck
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/operatorSessionResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- Auth
/check-version:
get:
summary: Checks the current Operator version against the latest
operationId: CheckMinIOVersion”
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/checkOperatorVersionResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
security: []
tags:
- UserAPI
/subscription/info:
get:
summary: Subscription info
operationId: SubscriptionInfo
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/license"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/subscription/validate:
post:
summary: Validates subscription license
operationId: SubscriptionValidate
parameters:
- name: body
in: body
required: true
schema:
$ref: "#/definitions/subscriptionValidateRequest"
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/license"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/subscription/refresh:
post:
summary: Refresh existing subscription license
operationId: SubscriptionRefresh
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/license"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/subscription/namespaces/{namespace}/tenants/{tenant}/activate:
post:
summary: Activate a particular tenant using the existing subscription license
operationId: SubscriptionActivate
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
204:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/tenants:
get:
summary: List Tenant of All Namespaces
operationId: ListAllTenants
parameters:
- name: sort_by
in: query
required: false
type: string
- name: offset
in: query
required: false
type: integer
format: int32
- name: limit
in: query
required: false
type: integer
format: int32
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/listTenantsResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
post:
summary: Create Tenant
operationId: CreateTenant
parameters:
- name: body
in: body
required: true
schema:
$ref: "#/definitions/createTenantRequest"
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/createTenantResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespace:
post:
summary: Creates a new Namespace with given information
operationId: CreateNamespace
parameters:
- name: body
in: body
required: true
schema:
$ref: "#/definitions/namespace"
responses:
201:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants:
get:
summary: List Tenants by Namespace
operationId: ListTenants
parameters:
- name: namespace
in: path
required: true
type: string
- name: sort_by
in: query
required: false
type: string
- name: offset
in: query
required: false
type: integer
format: int32
- name: limit
in: query
required: false
type: integer
format: int32
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/listTenantsResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/csr:
get:
summary: List Tenant Certificate Signing Request
operationId: ListTenantCertificateSigningRequest
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/csrElements"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/identity-provider:
get:
summary: Tenant Identity Provider
operationId: TenantIdentityProvider
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/idpConfiguration"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
post:
summary: Update Tenant Identity Provider
operationId: UpdateTenantIdentityProvider
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: "#/definitions/idpConfiguration"
responses:
204:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/set-administrators:
post:
summary: Set the consoleAdmin policy to the specified users and groups
operationId: SetTenantAdministrators
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: "#/definitions/setAdministratorsRequest"
responses:
204:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/configuration:
get:
summary: Tenant Configuration
operationId: TenantConfiguration
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/tenantConfigurationResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
patch:
summary: Update Tenant Configuration
operationId: UpdateTenantConfiguration
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: "#/definitions/updateTenantConfigurationRequest"
responses:
204:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/security:
get:
summary: Tenant Security
operationId: TenantSecurity
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/tenantSecurityResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
post:
summary: Update Tenant Security
operationId: UpdateTenantSecurity
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: "#/definitions/updateTenantSecurityRequest"
responses:
204:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/log:
get:
summary: Get Tenant Logs
operationId: GetTenantLogs
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/tenantLogs"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
put:
summary: Set Tenant Logs
operationId: SetTenantLogs
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: data
in: body
required: true
schema:
$ref: "#/definitions/tenantLogs"
responses:
200:
description: A successful response.
schema:
type: boolean
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/enable-logging:
post:
summary: Enable Tenant Logging
operationId: EnableTenantLogging
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
type: boolean
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/disable-logging:
post:
summary: Disable Tenant Logging
operationId: DisableTenantLogging
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
type: boolean
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}:
get:
summary: Tenant Details
operationId: TenantDetails
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/tenant"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
delete:
summary: Delete tenant and underlying pvcs
operationId: DeleteTenant
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: body
in: body
required: false
schema:
$ref: "#/definitions/deleteTenantRequest"
responses:
204:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
put:
summary: Update Tenant
operationId: UpdateTenant
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: "#/definitions/updateTenantRequest"
responses:
201:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/pools:
post:
summary: Tenant Add Pool
operationId: TenantAddPool
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: "#/definitions/pool"
responses:
201:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
put:
summary: Tenant Update Pools
operationId: TenantUpdatePools
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: "#/definitions/poolUpdateRequest"
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/tenant"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/pvcs:
get:
summary: List all PVCs from given Tenant
operationId: ListPVCsForTenant
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/listPVCsResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/usage:
get:
summary: Get Usage For The Tenant
operationId: GetTenantUsage
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/tenantUsage"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/pods:
get:
summary: Get Pods For The Tenant
operationId: GetTenantPods
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
type: array
items:
$ref: "#/definitions/tenantPod"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/events:
get:
summary: Get Events for given Tenant
operationId: GetTenantEvents
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/eventListWrapper"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/pods/{podName}:
get:
summary: Get Logs for Pod
operationId: GetPodLogs
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: podName
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
type: string
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
delete:
summary: Delete pod
operationId: DeletePod
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: podName
in: path
required: true
type: string
responses:
204:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/pods/{podName}/events:
get:
summary: Get Events for Pod
operationId: GetPodEvents
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: podName
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/eventListWrapper"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/pods/{podName}/describe:
get:
summary: Describe Pod
operationId: DescribePod
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: podName
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/describePodWrapper"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/monitoring:
get:
summary: Get Prometheus Monitoring config info For The Tenant
operationId: GetTenantMonitoring
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/tenantMonitoringInfo"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
put:
summary: Set Prometheus monitoring fields for tenant
operationId: SetTenantMonitoring
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: data
in: body
required: true
schema:
$ref: "#/definitions/tenantMonitoringInfo"
responses:
201:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/certificates:
put:
summary: Tenant Update Certificates
operationId: TenantUpdateCertificate
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: "#/definitions/tlsConfiguration"
responses:
201:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/encryption:
delete:
summary: Tenant Delete Encryption
operationId: TenantDeleteEncryption
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
204:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
put:
summary: Tenant Update Encryption
operationId: TenantUpdateEncryption
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: "#/definitions/encryptionConfiguration"
responses:
201:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
get:
summary: Tenant Encryption Info
operationId: TenantEncryptionInfo
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/encryptionConfigurationResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/yaml:
get:
summary: Get the Tenant YAML
operationId: GetTenantYAML
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/tenantYAML"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
put:
summary: Put the Tenant YAML
operationId: PutTenantYAML
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: "#/definitions/tenantYAML"
responses:
201:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/domains:
put:
summary: Update Domains for a Tenant
operationId: UpdateTenantDomains
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: body
in: body
required: true
schema:
$ref: "#/definitions/updateDomainsRequest"
responses:
204:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/resourcequotas/{resource-quota-name}:
get:
summary: Get Resource Quota
operationId: GetResourceQuota
parameters:
- name: namespace
in: path
required: true
type: string
- name: resource-quota-name
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/resourceQuota"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/cluster/max-allocatable-memory:
get:
summary: Get maximum allocatable memory for given number of nodes
operationId: GetMaxAllocatableMem
parameters:
- name: num_nodes
in: query
required: true
type: integer
format: int32
minimum: 1
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/maxAllocatableMemResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/cluster/allocatable-resources:
get:
summary: Get allocatable cpu and memory for given number of nodes
operationId: GetAllocatableResources
parameters:
- name: num_nodes
in: query
required: true
type: integer
format: int32
minimum: 1
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/allocatableResourcesResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/get-parity/{nodes}/{disksPerNode}:
get:
summary: Gets parity by sending number of nodes & number of disks
operationId: GetParity
parameters:
- name: nodes
in: path
required: true
type: integer
minimum: 2
- name: disksPerNode
in: path
required: true
type: integer
minimum: 1
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/parityResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/list-pvcs:
get:
summary: List all PVCs from namespaces that the user has access to
operationId: ListPVCs
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/listPVCsResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/mp-integration:
get:
summary: Returns email registered for marketplace integration
operationId: GetMPIntegration
responses:
200:
description: A successful response.
schema:
type: object
properties:
isEmailSet:
type: boolean
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
post:
summary: Set email to register for marketplace integration
operationId: PostMPIntegration
parameters:
- name: body
in: body
required: true
schema:
$ref: "#/definitions/mpIntegration"
responses:
201:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/pvc/{PVCName}:
delete:
summary: Delete PVC
operationId: DeletePVC
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: PVCName
in: path
required: true
type: string
responses:
204:
description: A successful response.
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/pvcs/{PVCName}/events:
get:
summary: Get Events for PVC
operationId: GetPVCEvents
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: PVCName
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/eventListWrapper"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/namespaces/{namespace}/tenants/{tenant}/pvcs/{PVCName}/describe:
get:
summary: Get Describe output for PVC
operationId: GetPVCDescribe
parameters:
- name: namespace
in: path
required: true
type: string
- name: tenant
in: path
required: true
type: string
- name: PVCName
in: path
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/describePVCWrapper"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/nodes/labels:
get:
summary: List node labels
operationId: ListNodeLabels
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/nodeLabels"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/subnet/login:
post:
summary: Login to subnet
operationId: OperatorSubnetLogin
parameters:
- name: body
in: body
required: true
schema:
$ref: "#/definitions/operatorSubnetLoginRequest"
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/operatorSubnetLoginResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/subnet/login/mfa:
post:
summary: Login to subnet using mfa
operationId: OperatorSubnetLoginMFA
parameters:
- name: body
in: body
required: true
schema:
$ref: "#/definitions/operatorSubnetLoginMFARequest"
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/operatorSubnetLoginResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/subnet/apikey:
get:
summary: Subnet api key
operationId: OperatorSubnetApiKey
parameters:
- name: token
in: query
required: true
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/operatorSubnetAPIKey"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/subnet/apikey/register:
post:
summary: Register Operator with Subnet
operationId: OperatorSubnetRegisterAPIKey
parameters:
- name: body
in: body
required: true
schema:
$ref: "#/definitions/operatorSubnetAPIKey"
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/operatorSubnetRegisterAPIKeyResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/subnet/apikey/info:
get:
summary: Subnet API key info
operationId: OperatorSubnetAPIKeyInfo
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/operatorSubnetRegisterAPIKeyResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/directpv/drives:
get:
summary: Get directpv drives list
operationId: GetDirectPVDriveList
parameters:
- name: nodes
in: query
required: false
type: string
- name: drives
in: query
required: false
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/getDirectPVDriveListResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/directpv/volumes:
get:
summary: Get directpv volumes list
operationId: GetDirectPVVolumeList
parameters:
- name: nodes
in: query
required: false
type: string
- name: drives
in: query
required: false
type: string
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/getDirectPVVolumeListResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
/directpv/drives/format:
post:
summary: Format directpv drives from a list
operationId: DirectPVFormatDrive
parameters:
- name: body
in: body
required: true
schema:
$ref: "#/definitions/formatConfiguration"
responses:
200:
description: A successful response.
schema:
$ref: "#/definitions/formatDirectPVDrivesResponse"
default:
description: Generic error response.
schema:
$ref: "#/definitions/error"
tags:
- OperatorAPI
definitions:
error:
type: object
required:
- message
- detailedMessage
properties:
code:
type: integer
format: int32
message:
type: string
detailedMessage:
type: string
loginDetails:
type: object
properties:
loginStrategy:
type: string
enum: [form, redirect, service-account, redirect-service-account]
redirectRules:
type: array
items:
$ref: "#/definitions/redirectRule"
isDirectPV:
type: boolean
isK8S:
type: boolean
loginRequest:
type: object
properties:
accessKey:
type: string
secretKey:
type: string
sts:
type: string
features:
type: object
properties:
hide_menu:
type: boolean
loginOauth2AuthRequest:
type: object
required:
- state
- code
properties:
state:
type: string
code:
type: string
loginOperatorRequest:
type: object
required:
- jwt
properties:
jwt:
type: string
operatorSessionResponse:
type: object
properties:
features:
type: array
items:
type: string
status:
type: string
enum: [ok]
operator:
type: boolean
directPV:
type: boolean
permissions:
type: object
additionalProperties:
type: array
items:
type: string
tenantStatus:
type: object
properties:
write_quorum:
type: integer
format: int32
drives_online:
type: integer
format: int32
drives_offline:
type: integer
format: int32
drives_healing:
type: integer
format: int32
health_status:
type: string
usage:
type: object
properties:
raw:
type: integer
format: int64
raw_usage:
type: integer
format: int64
capacity:
type: integer
format: int64
capacity_usage:
type: integer
format: int64
tenantConfigurationResponse:
type: object
properties:
environmentVariables:
type: array
items:
$ref: "#/definitions/environmentVariable"
updateTenantConfigurationRequest:
type: object
properties:
keysToBeDeleted:
type: array
items:
type: string
environmentVariables:
type: array
items:
$ref: "#/definitions/environmentVariable"
tenantSecurityResponse:
type: object
properties:
autoCert:
type: boolean
customCertificates:
type: object
properties:
minio:
type: array
items:
$ref: "#/definitions/certificateInfo"
client:
type: array
items:
$ref: "#/definitions/certificateInfo"
minioCAs:
type: array
items:
$ref: "#/definitions/certificateInfo"
securityContext:
type: object
$ref: "#/definitions/securityContext"
updateTenantSecurityRequest:
type: object
properties:
autoCert:
type: boolean
customCertificates:
type: object
properties:
secretsToBeDeleted:
type: array
items:
type: string
minioServerCertificates:
type: array
items:
$ref: "#/definitions/keyPairConfiguration"
minioClientCertificates:
type: array
items:
$ref: "#/definitions/keyPairConfiguration"
minioCAsCertificates:
type: array
items:
type: string
securityContext:
type: object
$ref: "#/definitions/securityContext"
certificateInfo:
type: object
properties:
serialNumber:
type: string
name:
type: string
domains:
type: array
items:
type: string
expiry:
type: string
tenant:
type: object
properties:
name:
type: string
creation_date:
type: string
deletion_date:
type: string
currentState:
type: string
pools:
type: array
items:
$ref: "#/definitions/pool"
image:
type: string
namespace:
type: string
total_size:
type: integer
format: int64
enable_prometheus:
type: boolean
subnet_license:
$ref: "#/definitions/license"
endpoints:
type: object
properties:
minio:
type: string
console:
type: string
logEnabled:
type: boolean
monitoringEnabled:
type: boolean
idpAdEnabled:
type: boolean
idpOidcEnabled:
type: boolean
encryptionEnabled:
type: boolean
status:
$ref: "#/definitions/tenantStatus"
minioTLS:
type: boolean
domains:
$ref: "#/definitions/domainsConfiguration"
tenantUsage:
type: object
properties:
used:
type: integer
format: int64
disk_used:
type: integer
format: int64
tenantList:
type: object
properties:
name:
type: string
pool_count:
type: integer
instance_count:
type: integer
total_size:
type: integer
volume_count:
type: integer
creation_date:
type: string
deletion_date:
type: string
currentState:
type: string
namespace:
type: string
health_status:
type: string
capacity_raw:
type: integer
format: int64
capacity_raw_usage:
type: integer
format: int64
capacity:
type: integer
format: int64
capacity_usage:
type: integer
format: int64
tiers:
type: array
items:
$ref: "#/definitions/tenantTierElement"
domains:
type: object
$ref: "#/definitions/domainsConfiguration"
listTenantsResponse:
type: object
properties:
tenants:
type: array
items:
$ref: "#/definitions/tenantList"
title: list of resulting tenants
total:
type: integer
format: int64
title: number of tenants accessible to tenant user
updateTenantRequest:
type: object
properties:
image:
type: string
pattern: "^((.*?)/(.*?):(.+))$"
image_registry:
$ref: "#/definitions/imageRegistry"
image_pull_secret:
type: string
enable_prometheus:
type: boolean
imageRegistry:
type: object
required:
- registry
- username
- password
properties:
registry:
type: string
username:
type: string
password:
type: string
csrElements:
type: object
properties:
csrElement:
type: array
items:
$ref: "#/definitions/csrElement"
csrElement:
type: object
properties:
status:
type: string
name:
type: string
generate_name:
type: string
namespace:
type: string
resource_version:
type: string
generation:
type: integer
format: int64
deletion_grace_period_seconds:
type: integer
format: int64
annotations:
type: array
items:
$ref: "#/definitions/annotation"
createTenantRequest:
type: object
required:
- name
- namespace
- pools
properties:
name:
type: string
pattern: "^[a-z0-9-]{3,63}$"
image:
type: string
pools:
type: array
items:
$ref: "#/definitions/pool"
mount_path:
type: string
access_key:
type: string
secret_key:
type: string
enable_console:
type: boolean
default: true
enable_tls:
type: boolean
default: true
enable_prometheus:
type: boolean
default: false
namespace:
type: string
erasureCodingParity:
type: integer
annotations:
type: object
additionalProperties:
type: string
labels:
type: object
additionalProperties:
type: string
logSearchConfiguration:
$ref: "#/definitions/logSearchConfiguration"
prometheusConfiguration:
$ref: "#/definitions/prometheusConfiguration"
image_registry:
$ref: "#/definitions/imageRegistry"
image_pull_secret:
type: string
idp:
type: object
$ref: "#/definitions/idpConfiguration"
tls:
type: object
$ref: "#/definitions/tlsConfiguration"
encryption:
type: object
$ref: "#/definitions/encryptionConfiguration"
expose_minio:
type: boolean
expose_console:
type: boolean
domains:
type: object
$ref: "#/definitions/domainsConfiguration"
environmentVariables:
type: array
items:
$ref: "#/definitions/environmentVariable"
metadataFields:
type: object
properties:
annotations:
type: object
additionalProperties:
type: string
labels:
type: object
additionalProperties:
type: string
node_selector:
type: object
additionalProperties:
type: string
keyPairConfiguration:
type: object
required:
- crt
- key
properties:
crt:
type: string
key:
type: string
tlsConfiguration:
type: object
properties:
minioServerCertificates:
type: array
items:
$ref: "#/definitions/keyPairConfiguration"
minioClientCertificates:
type: array
items:
$ref: "#/definitions/keyPairConfiguration"
minioCAsCertificates:
type: array
items:
type: string
logSearchConfiguration:
type: object
properties:
storageClass:
type: string
default: ""
storageSize:
type: number
default: 5
image:
type: string
securityContext:
type: object
$ref: "#/definitions/securityContext"
postgres_securityContext:
type: object
$ref: "#/definitions/securityContext"
postgres_image:
type: string
postgres_init_image:
type: string
prometheusConfiguration:
type: object
properties:
storageClass:
type: string
default: ""
storageSize:
type: number
default: 5
image:
type: string
sidecar_image:
type: string
init_image:
type: string
securityContext:
type: object
$ref: "#/definitions/securityContext"
setAdministratorsRequest:
type: object
properties:
user_dns:
type: array
items:
type: string
group_dns:
type: array
items:
type: string
idpConfiguration:
type: object
properties:
oidc:
type: object
required:
- configuration_url
- client_id
- secret_id
- claim_name
properties:
configuration_url:
type: string
client_id:
type: string
secret_id:
type: string
callback_url:
type: string
claim_name:
type: string
scopes:
type: string
keys:
type: array
items:
type: object
required:
- access_key
- secret_key
properties:
access_key:
type: string
secret_key:
type: string
active_directory:
type: object
required:
- url
- lookup_bind_dn
properties:
url:
type: string
group_search_base_dn:
type: string
group_search_filter:
type: string
skip_tls_verification:
type: boolean
server_insecure:
type: boolean
server_start_tls:
type: boolean
lookup_bind_dn:
type: string
lookup_bind_password:
type: string
user_dn_search_base_dn:
type: string
user_dn_search_filter:
type: string
user_dns:
type: array
items:
type: string
encryptionConfiguration:
allOf:
- $ref: "#/definitions/metadataFields"
- type: object
properties:
raw:
type: string
image:
type: string
replicas:
type: string
secretsToBeDeleted:
type: array
items:
type: string
server_tls:
type: object
$ref: "#/definitions/keyPairConfiguration"
minio_mtls:
type: object
$ref: "#/definitions/keyPairConfiguration"
kms_mtls:
type: object
properties:
key:
type: string
crt:
type: string
ca:
type: string
gemalto:
type: object
$ref: "#/definitions/gemaltoConfiguration"
aws:
type: object
$ref: "#/definitions/awsConfiguration"
vault:
type: object
$ref: "#/definitions/vaultConfiguration"
gcp:
type: object
$ref: "#/definitions/gcpConfiguration"
azure:
type: object
$ref: "#/definitions/azureConfiguration"
securityContext:
type: object
$ref: "#/definitions/securityContext"
encryptionConfigurationResponse:
allOf:
- $ref: "#/definitions/metadataFields"
- type: object
properties:
raw:
type: string
image:
type: string
replicas:
type: string
server_tls:
type: object
$ref: "#/definitions/certificateInfo"
minio_mtls:
type: object
$ref: "#/definitions/certificateInfo"
kms_mtls:
type: object
properties:
crt:
type: object
$ref: "#/definitions/certificateInfo"
ca:
type: object
$ref: "#/definitions/certificateInfo"
gemalto:
type: object
$ref: "#/definitions/gemaltoConfigurationResponse"
aws:
type: object
$ref: "#/definitions/awsConfiguration"
vault:
type: object
$ref: "#/definitions/vaultConfigurationResponse"
gcp:
type: object
$ref: "#/definitions/gcpConfiguration"
azure:
type: object
$ref: "#/definitions/azureConfiguration"
securityContext:
type: object
$ref: "#/definitions/securityContext"
vaultConfiguration:
type: object
required:
- endpoint
- approle
properties:
endpoint:
type: string
engine:
type: string
namespace:
type: string
prefix:
type: string
approle:
type: object
required:
- id
- secret
properties:
engine:
type: string
id:
type: string
secret:
type: string
retry:
type: integer
format: int64
status:
type: object
properties:
ping:
type: integer
format: int64
vaultConfigurationResponse:
type: object
required:
- endpoint
- approle
properties:
endpoint:
type: string
engine:
type: string
namespace:
type: string
prefix:
type: string
approle:
type: object
required:
- id
- secret
properties:
engine:
type: string
id:
type: string
secret:
type: string
retry:
type: integer
format: int64
status:
type: object
properties:
ping:
type: integer
format: int64
awsConfiguration:
type: object
required:
- secretsmanager
properties:
secretsmanager:
type: object
required:
- endpoint
- region
- credentials
properties:
endpoint:
type: string
region:
type: string
kmskey:
type: string
credentials:
type: object
required:
- accesskey
- secretkey
properties:
accesskey:
type: string
secretkey:
type: string
token:
type: string
gemaltoConfiguration:
type: object
required:
- keysecure
properties:
keysecure:
type: object
required:
- endpoint
- credentials
properties:
endpoint:
type: string
credentials:
type: object
required:
- token
- domain
properties:
token:
type: string
domain:
type: string
retry:
type: integer
format: int64
gemaltoConfigurationResponse:
type: object
required:
- keysecure
properties:
keysecure:
type: object
required:
- endpoint
- credentials
properties:
endpoint:
type: string
credentials:
type: object
required:
- token
- domain
properties:
token:
type: string
domain:
type: string
retry:
type: integer
format: int64
gcpConfiguration:
type: object
required:
- secretmanager
properties:
secretmanager:
type: object
required:
- project_id
properties:
project_id:
type: string
endpoint:
type: string
credentials:
type: object
properties:
client_email:
type: string
client_id:
type: string
private_key_id:
type: string
private_key:
type: string
azureConfiguration:
type: object
required:
- keyvault
properties:
keyvault:
type: object
required:
- endpoint
properties:
endpoint:
type: string
credentials:
type: object
required:
- tenant_id
- client_id
- client_secret
properties:
tenant_id:
type: string
client_id:
type: string
client_secret:
type: string
createTenantResponse:
type: object
properties:
externalIDP:
type: boolean
console:
type: array
items:
$ref: "#/definitions/tenantResponseItem"
tenantResponseItem:
type: object
properties:
access_key:
type: string
secret_key:
type: string
url:
type: string
tenantPod:
type: object
required:
- name
properties:
name:
type: string
status:
type: string
timeCreated:
type: integer
podIP:
type: string
restarts:
type: integer
node:
type: string
pool:
type: object
required:
- servers
- volumes_per_server
- volume_configuration
properties:
name:
type: string
servers:
type: integer
volumes_per_server:
type: integer
format: int32
volume_configuration:
type: object
required:
- size
properties:
size:
type: integer
storage_class_name:
type: string
labels:
type: object
additionalProperties:
type: string
annotations:
type: object
additionalProperties:
type: string
resources:
$ref: "#/definitions/poolResources"
node_selector:
type: object
additionalProperties:
type: string
description: "NodeSelector is a selector which must be true for
the pod to fit on a node. Selector which must match a node's
labels for the pod to be scheduled on that node. More info:
https://kubernetes.io/docs/concepts/configuration/assign-pod-node/"
affinity:
$ref: "#/definitions/poolAffinity"
tolerations:
$ref: "#/definitions/poolTolerations"
securityContext:
type: object
$ref: "#/definitions/securityContext"
poolTolerations:
description: Tolerations allows users to set entries like effect,
key, operator, value.
items:
description: The pod this Toleration is attached to tolerates
any taint that matches the triple <key,value,effect> using
the matching operator <operator>.
properties:
effect:
description: Effect indicates the taint effect to match.
Empty means match all taint effects. When specified, allowed
values are NoSchedule, PreferNoSchedule and NoExecute.
type: string
key:
description: Key is the taint key that the toleration applies
to. Empty means match all taint keys. If the key is empty,
operator must be Exists; this combination means to match
all values and all keys.
type: string
operator:
description: Operator represents a key's relationship to
the value. Valid operators are Exists and Equal. Defaults
to Equal. Exists is equivalent to wildcard for value,
so that a pod can tolerate all taints of a particular
category.
type: string
tolerationSeconds:
$ref: "#/definitions/poolTolerationSeconds"
value:
description: Value is the taint value the toleration matches
to. If the operator is Exists, the value should be empty,
otherwise just a regular string.
type: string
type: object
type: array
poolTolerationSeconds:
description: TolerationSeconds represents the period of
time the toleration (which must be of effect NoExecute,
otherwise this field is ignored) tolerates the taint.
By default, it is not set, which means tolerate the taint
forever (do not evict). Zero and negative values will
be treated as 0 (evict immediately) by the system.
type: object
required:
- seconds
properties:
seconds:
type: integer
format: int64
poolResources:
description: If provided, use these requests and limit for cpu/memory
resource allocation
properties:
limits:
additionalProperties:
type: integer
format: int64
description: "Limits describes the maximum amount of compute
resources allowed. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/"
type: object
requests:
additionalProperties:
type: integer
format: int64
description: "Requests describes the minimum amount of compute
resources required. If Requests is omitted for a container,
it defaults to Limits if that is explicitly specified, otherwise
to an implementation-defined value. More info: https://kubernetes.io/docs/concepts/configuration/manage-compute-resources-container/"
type: object
type: object
poolAffinity:
description: If specified, affinity will define the pod's scheduling
constraints
properties:
nodeAffinity:
description: Describes node affinity scheduling rules for
the pod.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: The scheduler will prefer to schedule pods
to nodes that satisfy the affinity expressions specified
by this field, but it may choose a node that violates
one or more of the expressions. The node that is most
preferred is the one with the greatest sum of weights,
i.e. for each node that meets all of the scheduling
requirements (resource request, requiredDuringScheduling
affinity expressions, etc.), compute a sum by iterating
through the elements of this field and adding "weight"
to the sum if the node matches the corresponding matchExpressions;
the node(s) with the highest sum are the most preferred.
items:
description: An empty preferred scheduling term matches
all objects with implicit weight 0 (i.e. it's a no-op).
A null preferred scheduling term matches no objects
(i.e. is also a no-op).
properties:
preference:
description: A node selector term, associated with
the corresponding weight.
$ref: "#/definitions/nodeSelectorTerm"
type: object
weight:
description: Weight associated with matching the
corresponding nodeSelectorTerm, in the range 1-100.
format: int32
type: integer
required:
- preference
- weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
description: If the affinity requirements specified by
this field are not met at scheduling time, the pod will
not be scheduled onto the node. If the affinity requirements
specified by this field cease to be met at some point
during pod execution (e.g. due to an update), the system
may or may not try to eventually evict the pod from
its node.
properties:
nodeSelectorTerms:
description: Required. A list of node selector terms.
The terms are ORed.
items:
$ref: "#/definitions/nodeSelectorTerm"
type: array
required:
- nodeSelectorTerms
type: object
type: object
podAffinity:
description: Describes pod affinity scheduling rules (e.g.
co-locate this pod in the same node, pool, etc. as some
other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: The scheduler will prefer to schedule pods
to nodes that satisfy the affinity expressions specified
by this field, but it may choose a node that violates
one or more of the expressions. The node that is most
preferred is the one with the greatest sum of weights,
i.e. for each node that meets all of the scheduling
requirements (resource request, requiredDuringScheduling
affinity expressions, etc.), compute a sum by iterating
through the elements of this field and adding "weight"
to the sum if the node has pods which matches the corresponding
podAffinityTerm; the node(s) with the highest sum are
the most preferred.
items:
description:
The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
node(s)
properties:
podAffinityTerm:
$ref: "#/definitions/podAffinityTerm"
weight:
description: weight associated with matching the
corresponding podAffinityTerm, in the range 1-100.
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
description: If the affinity requirements specified by
this field are not met at scheduling time, the pod will
not be scheduled onto the node. If the affinity requirements
specified by this field cease to be met at some point
during pod execution (e.g. due to a pod label update),
the system may or may not try to eventually evict the
pod from its node. When there are multiple elements,
the lists of nodes corresponding to each podAffinityTerm
are intersected, i.e. all terms must be satisfied.
items:
$ref: "#/definitions/podAffinityTerm"
type: array
type: object
podAntiAffinity:
description: Describes pod anti-affinity scheduling rules
(e.g. avoid putting this pod in the same node, pool, etc.
as some other pod(s)).
properties:
preferredDuringSchedulingIgnoredDuringExecution:
description: The scheduler will prefer to schedule pods
to nodes that satisfy the anti-affinity expressions
specified by this field, but it may choose a node that
violates one or more of the expressions. The node that
is most preferred is the one with the greatest sum of
weights, i.e. for each node that meets all of the scheduling
requirements (resource request, requiredDuringScheduling
anti-affinity expressions, etc.), compute a sum by iterating
through the elements of this field and adding "weight"
to the sum if the node has pods which matches the corresponding
podAffinityTerm; the node(s) with the highest sum are
the most preferred.
items:
description:
The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
node(s)
properties:
podAffinityTerm:
$ref: "#/definitions/podAffinityTerm"
weight:
description: weight associated with matching the
corresponding podAffinityTerm, in the range 1-100.
format: int32
type: integer
required:
- podAffinityTerm
- weight
type: object
type: array
requiredDuringSchedulingIgnoredDuringExecution:
description: If the anti-affinity requirements specified
by this field are not met at scheduling time, the pod
will not be scheduled onto the node. If the anti-affinity
requirements specified by this field cease to be met
at some point during pod execution (e.g. due to a pod
label update), the system may or may not try to eventually
evict the pod from its node. When there are multiple
elements, the lists of nodes corresponding to each podAffinityTerm
are intersected, i.e. all terms must be satisfied.
items:
$ref: "#/definitions/podAffinityTerm"
type: array
type: object
type: object
nodeSelectorTerm:
type: object
description: A null or empty node selector term
matches no objects. The requirements of them are
ANDed. The TopologySelectorTerm type implements
a subset of the NodeSelectorTerm.
properties:
matchExpressions:
description: A list of node selector requirements
by node's labels.
items:
description: A node selector requirement is
a selector that contains values, a key,
and an operator that relates the key and
values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: Represents a key's relationship
to a set of values. Valid operators
are In, NotIn, Exists, DoesNotExist.
Gt, and Lt.
type: string
values:
description: An array of string values.
If the operator is In or NotIn, the
values array must be non-empty. If the
operator is Exists or DoesNotExist,
the values array must be empty. If the
operator is Gt or Lt, the values array
must have a single element, which will
be interpreted as an integer. This array
is replaced during a strategic merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchFields:
description: A list of node selector requirements
by node's fields.
items:
description: A node selector requirement is
a selector that contains values, a key,
and an operator that relates the key and
values.
properties:
key:
description: The label key that the selector
applies to.
type: string
operator:
description: Represents a key's relationship
to a set of values. Valid operators
are In, NotIn, Exists, DoesNotExist.
Gt, and Lt.
type: string
values:
description: An array of string values.
If the operator is In or NotIn, the
values array must be non-empty. If the
operator is Exists or DoesNotExist,
the values array must be empty. If the
operator is Gt or Lt, the values array
must have a single element, which will
be interpreted as an integer. This array
is replaced during a strategic merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
podAffinityTerm:
description: Required. A pod affinity term, associated
with the corresponding weight.
properties:
labelSelector:
description: A label query over a set of resources,
in this case pods.
properties:
matchExpressions:
description: matchExpressions is a list
of label selector requirements. The requirements
are ANDed.
items:
description: A label selector requirement
is a selector that contains values,
a key, and an operator that relates
the key and values.
properties:
key:
description: key is the label key
that the selector applies to.
type: string
operator:
description: operator represents a
key's relationship to a set of values.
Valid operators are In, NotIn, Exists
and DoesNotExist.
type: string
values:
description: values is an array of
string values. If the operator is
In or NotIn, the values array must
be non-empty. If the operator is
Exists or DoesNotExist, the values
array must be empty. This array
is replaced during a strategic merge
patch.
items:
type: string
type: array
required:
- key
- operator
type: object
type: array
matchLabels:
additionalProperties:
type: string
description: matchLabels is a map of {key,value}
pairs. A single {key,value} in the matchLabels
map is equivalent to an element of matchExpressions,
whose key field is "key", the operator
is "In", and the values array contains
only "value". The requirements are ANDed.
type: object
type: object
namespaces:
description: namespaces specifies which namespaces
the labelSelector applies to (matches against);
null or empty list means "this pod's namespace"
items:
type: string
type: array
topologyKey:
description: This pod should be co-located (affinity)
or not co-located (anti-affinity) with the
pods matching the labelSelector in the specified
namespaces, where co-located is defined as
running on a node whose value of the label
with key topologyKey matches that of any node
on which any of the selected pods is running.
Empty topologyKey is not allowed.
type: string
required:
- topologyKey
type: object
resourceQuota:
type: object
properties:
name:
type: string
elements:
type: array
items:
$ref: "#/definitions/resourceQuotaElement"
resourceQuotaElement:
type: object
properties:
name:
type: string
hard:
type: integer
format: int64
used:
type: integer
format: int64
deleteTenantRequest:
type: object
properties:
delete_pvcs:
type: boolean
poolUpdateRequest:
type: object
required:
- pools
properties:
pools:
type: array
items:
$ref: "#/definitions/pool"
maxAllocatableMemResponse:
type: object
properties:
max_memory:
type: integer
format: int64
parityResponse:
type: array
items:
type: string
subscriptionValidateRequest:
type: object
properties:
license:
type: string
email:
type: string
password:
type: string
license:
type: object
properties:
email:
type: string
organization:
type: string
account_id:
type: integer
storage_capacity:
type: integer
plan:
type: string
expires_at:
type: string
getDirectPVDriveListResponse:
type: object
properties:
drives:
type: array
items:
$ref: "#/definitions/directPVDriveInfo"
directPVDriveInfo:
type: object
properties:
drive:
type: string
capacity:
type: number
format: int64
allocated:
type: number
format: int64
volumes:
type: number
format: int64
node:
type: string
status:
type: string
message:
type: string
getDirectPVVolumeListResponse:
type: object
properties:
volumes:
type: array
items:
$ref: "#/definitions/directPVVolumeInfo"
directPVVolumeInfo:
type: object
properties:
volume:
type: string
capacity:
type: number
format: int64
node:
type: string
drive:
type: string
pvFormatErrorResponse:
type: object
properties:
node:
type: string
drive:
type: string
error:
type: string
formatDirectPVDrivesResponse:
type: object
properties:
formatIssuesList:
type: array
items:
$ref: "#/definitions/pvFormatErrorResponse"
tenantYAML:
type: object
properties:
yaml:
type: string
tenantLogs:
type: object
properties:
image:
type: string
labels:
type: array
items:
$ref: "#/definitions/label"
annotations:
type: array
items:
$ref: "#/definitions/annotation"
diskCapacityGB:
type: string
nodeSelector:
type: array
items:
$ref: "#/definitions/nodeSelector"
serviceAccountName:
type: string
dbImage:
type: string
dbInitImage:
type: string
dbLabels:
type: array
items:
$ref: "#/definitions/label"
dbAnnotations:
type: array
items:
$ref: "#/definitions/annotation"
dbNodeSelector:
type: array
items:
$ref: "#/definitions/nodeSelector"
dbServiceAccountName:
type: string
disabled:
type: boolean
logCPURequest:
type: string
logMemRequest:
type: string
logDBCPURequest:
type: string
logDBMemRequest:
type: string
securityContext:
type: object
$ref: "#/definitions/securityContext"
dbSecurityContext:
type: object
$ref: "#/definitions/securityContext"
listPVCsResponse:
type: object
properties:
pvcs:
type: array
items:
$ref: "#/definitions/pvcsListResponse"
pvcsListResponse:
type: object
properties:
namespace:
type: string
name:
type: string
status:
type: string
volume:
type: string
tenant:
type: string
capacity:
type: string
storageClass:
type: string
age:
type: string
nodeLabels:
type: object
additionalProperties:
type: array
items:
type: string
namespace:
type: object
required:
- name
properties:
name:
type: string
eventListWrapper:
type: array
items:
$ref: "#/definitions/eventListElement"
eventListElement:
type: object
properties:
namespace:
type: string
last_seen:
type: integer
format: int64
event_type:
type: string
reason:
type: string
object:
type: string
message:
type: string
describePodWrapper:
type: object
properties:
name:
type: string
namespace:
type: string
priority:
type: integer
priorityClassName:
type: string
nodeName:
type: string
startTime:
type: string
labels:
type: array
items:
$ref: "#/definitions/label"
annotations:
type: array
items:
$ref: "#/definitions/annotation"
deletionTimestamp:
type: string
deletionGracePeriodSeconds:
type: integer
phase:
type: string
reason:
type: string
message:
type: string
podIP:
type: string
controllerRef:
type: string
containers:
type: array
items:
$ref: "#/definitions/container"
conditions:
type: array
items:
$ref: "#/definitions/condition"
volumes:
type: array
items:
$ref: "#/definitions/volume"
qosClass:
type: string
nodeSelector:
type: array
items:
$ref: "#/definitions/nodeSelector"
tolerations:
type: array
items:
$ref: "#/definitions/toleration"
describePVCWrapper:
type: object
properties:
name:
type: string
namespace:
type: string
storageClass:
type: string
status:
type: string
volume:
type: string
labels:
type: array
items:
$ref: "#/definitions/label"
annotations:
type: array
items:
$ref: "#/definitions/annotation"
finalizers:
type: array
items:
type: string
capacity:
type: string
accessModes:
type: array
items:
type: string
volumeMode:
type: string
container:
type: object
properties:
name:
type: string
containerID:
type: string
image:
type: string
imageID:
type: string
ports:
type: array
items:
type: string
hostPorts:
type: array
items:
type: string
args:
type: array
items:
type: string
state:
$ref: "#/definitions/state"
lastState:
$ref: "#/definitions/state"
ready:
type: boolean
restartCount:
type: integer
environmentVariables:
type: array
items:
$ref: "#/definitions/environmentVariable"
mounts:
type: array
items:
$ref: "#/definitions/mount"
state:
type: object
properties:
state:
type: string
reason:
type: string
message:
type: string
exitCode:
type: integer
started:
type: string
finished:
type: string
signal:
type: integer
environmentVariable:
type: object
properties:
key:
type: string
value:
type: string
mount:
type: object
properties:
mountPath:
type: string
name:
type: string
readOnly:
type: boolean
subPath:
type: string
condition:
type: object
properties:
type:
type: string
status:
type: string
volume:
type: object
properties:
name:
type: string
pvc:
$ref: "#/definitions/pvc"
projected:
$ref: "#/definitions/projectedVolume"
pvc:
type: object
properties:
claimName:
type: string
readOnly:
type: boolean
projectedVolume:
type: object
properties:
sources:
type: array
items:
$ref: "#/definitions/projectedVolumeSource"
projectedVolumeSource:
type: object
properties:
secret:
$ref: "#/definitions/secret"
downwardApi:
type: boolean
configMap:
$ref: "#/definitions/configMap"
serviceAccountToken:
$ref: "#/definitions/serviceAccountToken"
secret:
type: object
properties:
name:
type: string
optional:
type: boolean
configMap:
type: object
properties:
name:
type: string
optional:
type: boolean
serviceAccountToken:
type: object
properties:
expirationSeconds:
type: integer
toleration:
type: object
properties:
tolerationSeconds:
type: integer
key:
type: string
value:
type: string
effect:
type: string
operator:
type: string
tenantMonitoringInfo:
type: object
properties:
prometheusEnabled:
type: boolean
toggle:
type: boolean
image:
type: string
sidecarImage:
type: string
initImage:
type: string
labels:
type: array
items:
$ref: "#/definitions/label"
annotations:
type: array
items:
$ref: "#/definitions/annotation"
diskCapacityGB:
type: string
nodeSelector:
type: array
items:
$ref: "#/definitions/nodeSelector"
serviceAccountName:
type: string
storageClassName:
type: string
monitoringCPURequest:
type: string
monitoringMemRequest:
type: string
securityContext:
type: object
$ref: "#/definitions/securityContext"
label:
type: object
properties:
key:
type: string
value:
type: string
annotation:
type: object
properties:
key:
type: string
value:
type: string
nodeSelector:
type: object
properties:
key:
type: string
value:
type: string
configureTenantRequest:
type: object
properties:
prometheusEnabled:
type: boolean
formatConfiguration:
type: object
required:
- drives
- force
properties:
drives:
type: array
minLength: 1
items:
type: string
force:
type: boolean
securityContext:
type: object
required:
- runAsUser
- runAsGroup
- runAsNonRoot
properties:
runAsUser:
type: string
runAsGroup:
type: string
runAsNonRoot:
type: boolean
fsGroup:
type: string
fsGroupChangePolicy:
type: string
allocatableResourcesResponse:
type: object
properties:
min_allocatable_mem:
type: integer
format: int64
min_allocatable_cpu:
type: integer
format: int64
cpu_priority:
$ref: "#/definitions/nodeMaxAllocatableResources"
mem_priority:
$ref: "#/definitions/nodeMaxAllocatableResources"
nodeMaxAllocatableResources:
type: object
properties:
max_allocatable_cpu:
type: integer
format: int64
max_allocatable_mem:
type: integer
format: int64
checkOperatorVersionResponse:
type: object
properties:
current_version:
type: string
latest_version:
type: string
tenantTierElement:
type: object
properties:
name:
type: string
type:
type: string
size:
type: integer
format: int64
domainsConfiguration:
type: object
properties:
minio:
type: array
items:
type: string
console:
type: string
updateDomainsRequest:
type: object
properties:
domains:
$ref: "#/definitions/domainsConfiguration"
mpIntegration:
type: object
properties:
email:
type: string
isInEU:
type: boolean
operatorSubnetLoginRequest:
type: object
properties:
username:
type: string
password:
type: string
operatorSubnetLoginResponse:
type: object
properties:
access_token:
type: string
mfa_token:
type: string
operatorSubnetLoginMFARequest:
type: object
required:
- username
- otp
- mfa_token
properties:
username:
type: string
otp:
type: string
mfa_token:
type: string
operatorSubnetAPIKey:
type: object
properties:
apiKey:
type: string
operatorSubnetRegisterAPIKeyResponse:
type: object
properties:
registered:
type: boolean
redirectRule:
type: object
properties:
redirect:
type: string
displayName:
type: string