{ "swagger": "2.0", "info": { "description": "OceanBase Dashboard", "title": "OceanBase Dashboard API", "contact": {}, "version": "1.0" }, "basePath": "/api/v1", "paths": { "/api/v1/cluster/events": { "get": { "security": [ { "ApiKeyAuth": [] } ], "description": "list k8s events", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Cluster" ], "summary": "list k8s event", "operationId": "ListK8sEvents", "parameters": [ { "enum": [ "OBCLUSTER", "OBTENANT" ], "type": "string", "description": "related object types", "name": "objectType", "in": "query" }, { "enum": [ "NORMAL", "WARNING" ], "type": "string", "description": "event level", "name": "type", "in": "query" }, { "type": "string", "description": "Object name", "name": "name", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/response.K8sEvent" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/cluster/namespaces": { "get": { "security": [ { "ApiKeyAuth": [] } ], "description": "list k8s namespaces", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Cluster" ], "summary": "list k8s namespaces", "operationId": "ListK8sNamespaces", "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/response.Namespace" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } }, "post": { "security": [ { "ApiKeyAuth": [] } ], "description": "create k8s namespace", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Cluster" ], "summary": "create k8s namespace", "operationId": "CreateK8sNamespace", "parameters": [ { "description": "create obcluster request body", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.CreateNamespaceParam" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/cluster/nodes": { "get": { "security": [ { "ApiKeyAuth": [] } ], "description": "list k8s nodes", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Cluster" ], "summary": "list k8s nodes", "operationId": "ListK8sNodes", "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/response.K8sNode" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/cluster/storageClasses": { "get": { "security": [ { "ApiKeyAuth": [] } ], "description": "list k8s storage classes", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Cluster" ], "summary": "list k8s storage classes", "operationId": "ListK8sStorageClasses", "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/response.StorageClass" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/info": { "get": { "description": "Get process info of OceanBase Dashboard, including process name etc.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Info" ], "summary": "Get process info", "operationId": "GetProcessInfo", "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/response.DashboardInfo" } } } ] } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/login": { "post": { "description": "User login and return access token with cookie.", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "User" ], "summary": "User login", "operationId": "Login", "parameters": [ { "description": "login", "name": "loginInfo", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.LoginParam" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/logout": { "post": { "security": [ { "ApiKeyAuth": [] } ], "description": "User logout and clear session.", "produces": [ "application/json" ], "tags": [ "User" ], "summary": "User logout", "operationId": "Logout", "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/metrics": { "get": { "security": [ { "ApiKeyAuth": [] } ], "description": "list all metrics meta info, return by groups", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Metric" ], "summary": "list all metrics", "operationId": "ListAllMetrics", "parameters": [ { "enum": [ "OBCLUSTER", "OBTENANT" ], "type": "string", "description": "metrics scope", "name": "scope", "in": "query", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/response.MetricClass" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/metrics/query": { "post": { "security": [ { "ApiKeyAuth": [] } ], "description": "query metric data", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Metric" ], "summary": "query metrics", "operationId": "QueryMetrics", "parameters": [ { "description": "metric query request body", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.MetricQuery" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/response.MetricData" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obclusters": { "get": { "security": [ { "ApiKeyAuth": [] } ], "description": "list obclusters", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obcluster" ], "summary": "list obclusters", "operationId": "ListOBClusters", "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/response.OBCluster" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } }, "post": { "security": [ { "ApiKeyAuth": [] } ], "description": "create obcluster", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obcluster" ], "summary": "create obcluster", "operationId": "CreateOBCluster", "parameters": [ { "description": "create obcluster request body", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.CreateOBClusterParam" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obclusters/namespace/{namespace}/name/{name}": { "get": { "security": [ { "ApiKeyAuth": [] } ], "description": "get obcluster detailed info", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obcluster" ], "summary": "get obcluster", "operationId": "GetOBCluster", "parameters": [ { "type": "string", "description": "obcluster namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obcluster name", "name": "name", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/response.OBCluster" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } }, "post": { "security": [ { "ApiKeyAuth": [] } ], "description": "upgrade obcluster", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obcluster" ], "summary": "upgrade obcluster", "operationId": "UpgradeOBCluster", "parameters": [ { "type": "string", "description": "obcluster namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obcluster name", "name": "name", "in": "path", "required": true }, { "description": "upgrade obcluster request body", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.UpgradeOBClusterParam" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } }, "delete": { "security": [ { "ApiKeyAuth": [] } ], "description": "delete obcluster", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obcluster" ], "summary": "delete obcluster", "operationId": "DeleteOBCluster", "parameters": [ { "type": "string", "description": "obcluster namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obcluster name", "name": "name", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obclusters/namespace/{namespace}/name/{name}/obzones": { "post": { "security": [ { "ApiKeyAuth": [] } ], "description": "add obzone", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obcluster" ], "summary": "add obzone", "operationId": "AddOBZone", "parameters": [ { "type": "string", "description": "obcluster namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obcluster name", "name": "name", "in": "path", "required": true }, { "description": "add obzone request body", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.ZoneTopology" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obclusters/namespace/{namespace}/name/{name}/obzones/{obzoneName}": { "delete": { "security": [ { "ApiKeyAuth": [] } ], "description": "delete obzone", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obcluster" ], "summary": "delete obzone", "operationId": "DeleteOBZone", "parameters": [ { "type": "string", "description": "obcluster namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obcluster name", "name": "name", "in": "path", "required": true }, { "type": "string", "description": "obzone name", "name": "obzoneName", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obclusters/namespace/{namespace}/name/{name}/obzones/{obzoneName}/scale": { "post": { "security": [ { "ApiKeyAuth": [] } ], "description": "scale observer", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obcluster" ], "summary": "scale observer", "operationId": "ScaleOBServer", "parameters": [ { "type": "string", "description": "obcluster namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obcluster name", "name": "name", "in": "path", "required": true }, { "type": "string", "description": "obzone name", "name": "obzoneName", "in": "path", "required": true }, { "description": "scale observer request body", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.ScaleOBServerParam" } } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obclusters/statistic": { "get": { "description": "get obcluster statistic info", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obcluster" ], "summary": "get obcluster statistic", "operationId": "GetOBClusterStatistic", "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/response.OBClusterStastistic" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obtenants": { "get": { "security": [ { "ApiKeyAuth": [] } ], "description": "List all tenants and return them", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "List all tenants", "operationId": "ListAllTenants", "parameters": [ { "type": "string", "description": "obcluster to filter", "name": "obcluster", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/response.OBTenantBrief" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } }, "put": { "security": [ { "ApiKeyAuth": [] } ], "description": "Create an obtenant in a specific namespace, passwords should be encrypted by AES", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "Create tenant", "operationId": "CreateTenant", "parameters": [ { "description": "create obtenant request body", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.CreateOBTenantParam" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/response.OBTenantDetail" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obtenants/{namespace}/{name}": { "get": { "security": [ { "ApiKeyAuth": [] } ], "description": "Get an obtenant in a specific namespace", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "Get tenant", "operationId": "GetTenant", "parameters": [ { "type": "string", "description": "obtenant namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obtenant name", "name": "name", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/response.OBTenantDetail" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } }, "delete": { "security": [ { "ApiKeyAuth": [] } ], "description": "Delete an obtenant in a specific namespace, ask user to confrim the deletion carefully", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "Delete tenant", "operationId": "DeleteTenant", "parameters": [ { "type": "string", "description": "obtenant namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obtenant name", "name": "name", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } }, "patch": { "security": [ { "ApiKeyAuth": [] } ], "description": "Patch tenant's configuration", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "Patch tenant's configuration", "operationId": "PatchTenant", "parameters": [ { "type": "string", "description": "obtenant namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obtenant name", "name": "name", "in": "path", "required": true }, { "description": "patch tenant body", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.PatchTenant" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/response.OBTenantDetail" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obtenants/{namespace}/{name}/backup/{type}/jobs": { "get": { "security": [ { "ApiKeyAuth": [] } ], "description": "List backup jobs of specific tenant", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "List backup jobs of specific tenant", "operationId": "ListBackupJobs", "parameters": [ { "type": "string", "description": "obtenant namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obtenant name", "name": "name", "in": "path", "required": true }, { "enum": [ "FULL", "INCR", "CLEAN", "ARCHIVE" ], "type": "string", "description": "backup job type", "name": "type", "in": "path", "required": true }, { "type": "integer", "default": 10, "description": "limit", "name": "limit", "in": "query" } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "type": "array", "items": { "$ref": "#/definitions/response.BackupJob" } } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obtenants/{namespace}/{name}/backupPolicy": { "get": { "security": [ { "ApiKeyAuth": [] } ], "description": "Get backup policy of specific tenant", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "Get backup policy of specific tenant", "operationId": "GetBackupPolicy", "parameters": [ { "type": "string", "description": "obtenant namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obtenant name", "name": "name", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/response.BackupPolicy" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } }, "put": { "security": [ { "ApiKeyAuth": [] } ], "description": "Create backup policy of specific tenant, passwords should be encrypted by AES", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "Create backup policy of specific tenant", "operationId": "CreateBackupPolicy", "parameters": [ { "type": "string", "description": "obtenant namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obtenant name", "name": "name", "in": "path", "required": true }, { "description": "create backup policy request body", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.CreateBackupPolicy" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/response.BackupPolicy" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } }, "delete": { "security": [ { "ApiKeyAuth": [] } ], "description": "Delete backup policy of specific tenant", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "Delete backup policy of specific tenant", "operationId": "DeleteBackupPolicy", "parameters": [ { "type": "string", "description": "obtenant namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obtenant name", "name": "name", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } }, "patch": { "security": [ { "ApiKeyAuth": [] } ], "description": "Update backup policy of specific tenant", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "Update backup policy of specific tenant", "operationId": "UpdateBackupPolicy", "parameters": [ { "type": "string", "description": "obtenant namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obtenant name", "name": "name", "in": "path", "required": true }, { "description": "update backup policy request body", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.UpdateBackupPolicy" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/response.BackupPolicy" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obtenants/{namespace}/{name}/logreplay": { "post": { "security": [ { "ApiKeyAuth": [] } ], "description": "Replay standby log of specific standby tenant", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "Replay standby log of specific standby tenant", "operationId": "ReplayStandbyLog", "parameters": [ { "type": "string", "description": "obtenant namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obtenant name", "name": "name", "in": "path", "required": true }, { "description": "target timestamp to replay to", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.ReplayStandbyLog" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/response.OBTenantDetail" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obtenants/{namespace}/{name}/role": { "post": { "security": [ { "ApiKeyAuth": [] } ], "description": "Change tenant role of specific tenant, if a tenant is a standby tenant, it can be changed to primary tenant, vice versa", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "Change tenant role of specific tenant", "operationId": "ChangeTenantRole", "parameters": [ { "type": "string", "description": "obtenant namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obtenant name", "name": "name", "in": "path", "required": true }, { "description": "target role to change to", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.ChangeTenantRole" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/response.OBTenantDetail" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obtenants/{namespace}/{name}/userCredentials": { "post": { "security": [ { "ApiKeyAuth": [] } ], "description": "Change root password of specific tenant, encrypted by AES", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "Change root password of specific tenant", "operationId": "ChangeUserPassword", "parameters": [ { "type": "string", "description": "obtenant namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obtenant name", "name": "name", "in": "path", "required": true }, { "description": "new password", "name": "body", "in": "body", "required": true, "schema": { "$ref": "#/definitions/param.ChangeUserPassword" } } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/response.OBTenantDetail" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } }, "/api/v1/obtenants/{namespace}/{name}/version": { "post": { "security": [ { "ApiKeyAuth": [] } ], "description": "Upgrade tenant compatibility version of specific tenant to match the version of cluster", "consumes": [ "application/json" ], "produces": [ "application/json" ], "tags": [ "Obtenant" ], "summary": "Upgrade tenant compatibility version of specific tenant", "operationId": "UpgradeTenantVersion", "parameters": [ { "type": "string", "description": "obtenant namespace", "name": "namespace", "in": "path", "required": true }, { "type": "string", "description": "obtenant name", "name": "name", "in": "path", "required": true } ], "responses": { "200": { "description": "OK", "schema": { "allOf": [ { "$ref": "#/definitions/response.APIResponse" }, { "type": "object", "properties": { "data": { "$ref": "#/definitions/response.OBTenantDetail" } } } ] } }, "400": { "description": "Bad Request", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "401": { "description": "Unauthorized", "schema": { "$ref": "#/definitions/response.APIResponse" } }, "500": { "description": "Internal Server Error", "schema": { "$ref": "#/definitions/response.APIResponse" } } } } } }, "definitions": { "common.KVPair": { "type": "object", "properties": { "key": { "type": "string" }, "value": { "type": "string" } } }, "common.ResourceSpec": { "type": "object", "properties": { "cpu": { "type": "integer" }, "memory": { "type": "integer" } } }, "common.StorageSpec": { "type": "object", "properties": { "size": { "type": "integer" }, "storageClass": { "type": "string" } } }, "param.ChangeTenantRole": { "type": "object", "properties": { "failover": { "type": "boolean" }, "switchover": { "type": "boolean" } } }, "param.ChangeUserPassword": { "type": "object", "required": [ "password", "user" ], "properties": { "password": { "type": "string" }, "user": { "description": "Description: The user name of the database account, only root is supported now.", "type": "string" } } }, "param.CreateBackupPolicy": { "type": "object", "required": [ "archivePath", "bakDataPath", "destType" ], "properties": { "archivePath": { "type": "string" }, "bakDataPath": { "type": "string" }, "bakEncryptionPassword": { "type": "string", "example": "encryptedPassword" }, "destType": { "description": "Enum: NFS, OSS", "type": "string", "example": "NFS" }, "jobKeepDays": { "type": "integer", "example": 5 }, "ossAccessId": { "type": "string", "example": "encryptedPassword" }, "ossAccessKey": { "type": "string", "example": "encryptedPassword" }, "pieceIntervalDays": { "type": "integer", "example": 1 }, "recoveryDays": { "type": "integer", "example": 3 }, "scheduleDates": { "type": "array", "items": { "$ref": "#/definitions/param.ScheduleDate" } }, "scheduleTime": { "description": "Description: HH:MM\nExample: 04:00", "type": "string", "example": "04:00" }, "scheduleType": { "description": "Enum: Weekly, Monthly", "type": "string", "example": "Weekly" } } }, "param.CreateNamespaceParam": { "type": "object", "properties": { "namespace": { "type": "string" } } }, "param.CreateOBClusterParam": { "type": "object", "properties": { "backupVolume": { "$ref": "#/definitions/param.NFSVolumeSpec" }, "clusterId": { "type": "integer" }, "clusterName": { "type": "string" }, "monitor": { "$ref": "#/definitions/param.MonitorSpec" }, "name": { "type": "string" }, "namespace": { "type": "string" }, "observer": { "$ref": "#/definitions/param.OBServerSpec" }, "parameters": { "type": "array", "items": { "$ref": "#/definitions/common.KVPair" } }, "rootPassword": { "type": "string" }, "topology": { "type": "array", "items": { "$ref": "#/definitions/param.ZoneTopology" } } } }, "param.CreateOBTenantParam": { "type": "object", "required": [ "name", "namespace", "obcluster", "pools", "rootPassword", "tenantName", "unitConfig", "unitNum" ], "properties": { "charset": { "type": "string" }, "connectWhiteList": { "type": "string" }, "name": { "type": "string" }, "namespace": { "type": "string" }, "obcluster": { "type": "string" }, "pools": { "type": "array", "items": { "$ref": "#/definitions/param.ResourcePoolSpec" } }, "rootPassword": { "type": "string" }, "source": { "$ref": "#/definitions/param.TenantSourceSpec" }, "tenantName": { "type": "string" }, "tenantRole": { "description": "Enum: Primary, Standby", "type": "string" }, "unitConfig": { "$ref": "#/definitions/param.UnitConfig" }, "unitNum": { "type": "integer" } } }, "param.LoginParam": { "type": "object", "properties": { "password": { "type": "string" }, "username": { "type": "string" } } }, "param.MetricQuery": { "type": "object", "properties": { "groupLabels": { "type": "array", "items": { "type": "string" } }, "labels": { "type": "array", "items": { "$ref": "#/definitions/common.KVPair" } }, "metrics": { "type": "array", "items": { "type": "string" } }, "queryRange": { "$ref": "#/definitions/param.QueryRange" } } }, "param.MonitorSpec": { "type": "object", "properties": { "image": { "type": "string" }, "resource": { "$ref": "#/definitions/common.ResourceSpec" } } }, "param.NFSVolumeSpec": { "type": "object", "properties": { "address": { "type": "string" }, "path": { "type": "string" } } }, "param.OBServerSpec": { "type": "object", "properties": { "image": { "type": "string" }, "resource": { "$ref": "#/definitions/common.ResourceSpec" }, "storage": { "$ref": "#/definitions/param.OBServerStorageSpec" } } }, "param.OBServerStorageSpec": { "type": "object", "properties": { "data": { "$ref": "#/definitions/common.StorageSpec" }, "log": { "$ref": "#/definitions/common.StorageSpec" }, "redoLog": { "$ref": "#/definitions/common.StorageSpec" } } }, "param.PatchTenant": { "type": "object", "properties": { "unitConfig": { "$ref": "#/definitions/param.PatchUnitConfig" }, "unitNum": { "type": "integer" } } }, "param.PatchUnitConfig": { "type": "object", "required": [ "pools", "unitConfig" ], "properties": { "pools": { "type": "array", "items": { "$ref": "#/definitions/param.ResourcePoolSpec" } }, "unitConfig": { "$ref": "#/definitions/param.UnitConfig" } } }, "param.QueryRange": { "type": "object", "properties": { "endTimestamp": { "type": "number" }, "startTimestamp": { "type": "number" }, "step": { "type": "integer" } } }, "param.ReplayStandbyLog": { "type": "object", "properties": { "timestamp": { "type": "string", "example": "2024-02-23 17:47:00" }, "unlimited": { "type": "boolean" } } }, "param.ResourcePoolSpec": { "type": "object", "required": [ "zone" ], "properties": { "priority": { "type": "integer" }, "type": { "description": "Enum: Readonly, Full", "type": "string" }, "zone": { "type": "string" } } }, "param.RestoreSourceSpec": { "type": "object", "required": [ "archiveSource", "bakDataSource", "type" ], "properties": { "archiveSource": { "type": "string" }, "bakDataSource": { "type": "string" }, "bakEncryptionPassword": { "type": "string" }, "ossAccessId": { "type": "string" }, "ossAccessKey": { "type": "string" }, "type": { "description": "Enum: OSS, NFS", "type": "string" }, "until": { "$ref": "#/definitions/param.RestoreUntilConfig" } } }, "param.RestoreUntilConfig": { "type": "object", "properties": { "timestamp": { "type": "string", "example": "2024-02-23 17:47:00" }, "unlimited": { "type": "boolean" } } }, "param.ScaleOBServerParam": { "type": "object", "properties": { "replicas": { "type": "integer" } } }, "param.ScheduleDate": { "type": "object", "required": [ "backupType", "day" ], "properties": { "backupType": { "description": "Enum: Full, Incremental", "type": "string", "example": "Full" }, "day": { "description": "Description: 1-31 for monthly, 1-7 for weekly", "type": "integer", "example": 3 } } }, "param.TenantSourceSpec": { "type": "object", "properties": { "restore": { "$ref": "#/definitions/param.RestoreSourceSpec" }, "tenant": { "type": "string" } } }, "param.UnitConfig": { "type": "object", "required": [ "cpuCount", "memorySize" ], "properties": { "cpuCount": { "type": "string" }, "iopsWeight": { "type": "integer" }, "logDiskSize": { "type": "string" }, "maxIops": { "type": "integer" }, "memorySize": { "type": "string" }, "minIops": { "type": "integer" } } }, "param.UpdateBackupPolicy": { "type": "object", "properties": { "jobKeepWindow": { "type": "integer", "example": 5 }, "pieceInterval": { "type": "integer", "example": 1 }, "recoveryWindow": { "type": "integer", "example": 3 }, "scheduleDates": { "type": "array", "items": { "$ref": "#/definitions/param.ScheduleDate" } }, "scheduleTime": { "description": "Description: HH:MM\nExample: 04:00", "type": "string", "example": "04:00" }, "scheduleType": { "description": "Enum: Weekly, Monthly", "type": "string", "example": "Weekly" }, "status": { "description": "Enum: PAUSED, RUNNING", "type": "string", "example": "PAUSED" } } }, "param.UpgradeOBClusterParam": { "type": "object", "properties": { "image": { "type": "string" } } }, "param.ZoneTopology": { "type": "object", "properties": { "nodeSelector": { "type": "array", "items": { "$ref": "#/definitions/common.KVPair" } }, "replicas": { "type": "integer" }, "zone": { "type": "string" } } }, "response.APIResponse": { "type": "object", "properties": { "data": {}, "message": { "type": "string" }, "successful": { "type": "boolean" } } }, "response.BackupJob": { "type": "object", "properties": { "backupPolicyName": { "type": "string" }, "encryptionSecret": { "type": "string" }, "endTime": { "description": "End time of the backup job, empty for ARCHIVE job", "type": "string" }, "name": { "type": "string" }, "namespace": { "type": "string" }, "path": { "description": "Empty for Clean job", "type": "string" }, "startTime": { "description": "Start time of the backup job, StartScnDisplay for ARCHIVE job", "type": "string" }, "status": { "type": "string" }, "statusInDatabase": { "type": "string" }, "tenantName": { "type": "string" }, "type": { "description": "Enum: FULL, INCR, ARCHIVE, CLEAN", "type": "string" } } }, "response.BackupPolicy": { "type": "object", "required": [ "archivePath", "bakDataPath", "destType" ], "properties": { "archivePath": { "type": "string" }, "bakDataPath": { "type": "string" }, "bakEncryptionSecret": { "type": "string" }, "destType": { "description": "Enum: NFS, OSS", "type": "string", "example": "NFS" }, "jobKeepDays": { "type": "integer", "example": 5 }, "name": { "type": "string" }, "namespace": { "type": "string" }, "ossAccessSecret": { "type": "string" }, "pieceIntervalDays": { "type": "integer", "example": 1 }, "recoveryDays": { "type": "integer", "example": 3 }, "scheduleDates": { "type": "array", "items": { "$ref": "#/definitions/param.ScheduleDate" } }, "scheduleTime": { "description": "Description: HH:MM\nExample: 04:00", "type": "string", "example": "04:00" }, "scheduleType": { "description": "Enum: Weekly, Monthly", "type": "string", "example": "Weekly" }, "status": { "type": "string" }, "tenantName": { "type": "string" } } }, "response.DashboardInfo": { "type": "object", "properties": { "appName": { "type": "string" }, "publicKey": { "type": "string" }, "version": { "type": "string" } } }, "response.K8sEvent": { "type": "object", "properties": { "count": { "type": "integer" }, "firstOccur": { "type": "number" }, "lastSeen": { "type": "number" }, "message": { "type": "string" }, "namespace": { "type": "string" }, "object": { "type": "string" }, "reason": { "type": "string" }, "type": { "type": "string" } } }, "response.K8sNode": { "type": "object", "properties": { "info": { "$ref": "#/definitions/response.K8sNodeInfo" }, "resource": { "$ref": "#/definitions/response.K8sNodeResource" } } }, "response.K8sNodeCondition": { "type": "object", "properties": { "message": { "type": "string" }, "reason": { "type": "string" }, "type": { "type": "string" } } }, "response.K8sNodeInfo": { "type": "object", "properties": { "conditions": { "type": "array", "items": { "$ref": "#/definitions/response.K8sNodeCondition" } }, "cri": { "type": "string" }, "externalIP": { "type": "string" }, "internalIP": { "type": "string" }, "kernel": { "type": "string" }, "labels": { "type": "array", "items": { "$ref": "#/definitions/common.KVPair" } }, "name": { "type": "string" }, "os": { "type": "string" }, "roles": { "type": "array", "items": { "type": "string" } }, "status": { "type": "string" }, "uptime": { "type": "number" }, "version": { "type": "string" } } }, "response.K8sNodeResource": { "type": "object", "properties": { "cpuFree": { "type": "number" }, "cpuTotal": { "type": "number" }, "cpuUsed": { "type": "number" }, "memoryFree": { "type": "number" }, "memoryTotal": { "type": "number" }, "memoryUsed": { "type": "number" } } }, "response.Metric": { "type": "object", "properties": { "labels": { "type": "array", "items": { "$ref": "#/definitions/common.KVPair" } }, "name": { "type": "string" } } }, "response.MetricClass": { "type": "object", "properties": { "description": { "type": "string" }, "metricGroups": { "type": "array", "items": { "$ref": "#/definitions/response.MetricGroup" } }, "name": { "type": "string" } } }, "response.MetricData": { "type": "object", "properties": { "metric": { "$ref": "#/definitions/response.Metric" }, "values": { "type": "array", "items": { "$ref": "#/definitions/response.MetricValue" } } } }, "response.MetricGroup": { "type": "object", "properties": { "description": { "type": "string" }, "metrics": { "type": "array", "items": { "$ref": "#/definitions/response.MetricMeta" } }, "name": { "type": "string" } } }, "response.MetricMeta": { "type": "object", "properties": { "description": { "type": "string" }, "key": { "type": "string" }, "name": { "type": "string" }, "unit": { "type": "string" } } }, "response.MetricValue": { "type": "object", "properties": { "timestamp": { "type": "number" }, "value": { "type": "number" } } }, "response.Namespace": { "type": "object", "properties": { "namespace": { "type": "string" }, "status": { "type": "string" } } }, "response.OBCluster": { "type": "object", "properties": { "clusterId": { "type": "integer" }, "clusterName": { "type": "string" }, "createTime": { "type": "number" }, "image": { "type": "string" }, "metrics": { "$ref": "#/definitions/response.OBMetrics" }, "name": { "type": "string" }, "namespace": { "type": "string" }, "status": { "type": "string" }, "statusDetail": { "type": "string" }, "topology": { "type": "array", "items": { "$ref": "#/definitions/response.OBZone" } }, "version": { "type": "string" } } }, "response.OBClusterStastistic": { "type": "object", "properties": { "count": { "type": "integer" }, "status": { "type": "string" } } }, "response.OBMetrics": { "type": "object", "properties": { "cpuPercent": { "type": "integer" }, "diskPercent": { "type": "integer" }, "memoryPercent": { "type": "integer" } } }, "response.OBServer": { "type": "object", "properties": { "address": { "type": "string" }, "metrics": { "$ref": "#/definitions/response.OBMetrics" }, "name": { "type": "string" }, "namespace": { "type": "string" }, "status": { "type": "string" }, "statusDetail": { "type": "string" } } }, "response.OBTenantBrief": { "description": "Brief information about OBTenant", "type": "object", "properties": { "charset": { "description": "Charset of the tenant", "type": "string" }, "clusterName": { "description": "Name of the cluster belonging to", "type": "string" }, "createTime": { "description": "Creation time of the tenant", "type": "string" }, "locality": { "description": "Locality of the tenant units", "type": "string" }, "name": { "description": "Name of the resource", "type": "string" }, "namespace": { "description": "Namespace of the resource", "type": "string" }, "status": { "description": "Status of the tenant", "type": "string" }, "tenantName": { "description": "Name of the tenant in the database", "type": "string" }, "tenantRole": { "description": "Enum: Primary, Standby", "type": "string" }, "topology": { "description": "Topology of the tenant", "type": "array", "items": { "$ref": "#/definitions/response.OBTenantReplica" } }, "unitNumber": { "description": "Number of units in every zone", "type": "integer" } } }, "response.OBTenantDetail": { "type": "object", "properties": { "charset": { "description": "Charset of the tenant", "type": "string" }, "clusterName": { "description": "Name of the cluster belonging to", "type": "string" }, "createTime": { "description": "Creation time of the tenant", "type": "string" }, "locality": { "description": "Locality of the tenant units", "type": "string" }, "name": { "description": "Name of the resource", "type": "string" }, "namespace": { "description": "Namespace of the resource", "type": "string" }, "primaryTenant": { "type": "string" }, "restoreSource": { "$ref": "#/definitions/response.RestoreSource" }, "rootCredential": { "type": "string" }, "standbyROCredentail": { "type": "string" }, "status": { "description": "Status of the tenant", "type": "string" }, "tenantName": { "description": "Name of the tenant in the database", "type": "string" }, "tenantRole": { "description": "Enum: Primary, Standby", "type": "string" }, "topology": { "description": "Topology of the tenant", "type": "array", "items": { "$ref": "#/definitions/response.OBTenantReplica" } }, "unitNumber": { "description": "Number of units in every zone", "type": "integer" }, "version": { "type": "string" } } }, "response.OBTenantReplica": { "type": "object", "properties": { "iopsWeight": { "type": "integer" }, "logDiskSize": { "type": "string" }, "maxCPU": { "type": "string" }, "maxIops": { "type": "integer" }, "memorySize": { "type": "string" }, "minCPU": { "type": "string" }, "minIops": { "type": "integer" }, "priority": { "type": "integer" }, "type": { "description": "Enum: Readonly, Full", "type": "string" }, "zone": { "type": "string" } } }, "response.OBZone": { "type": "object", "properties": { "name": { "type": "string" }, "namespace": { "type": "string" }, "nodeSelector": { "type": "array", "items": { "$ref": "#/definitions/common.KVPair" } }, "observers": { "type": "array", "items": { "$ref": "#/definitions/response.OBServer" } }, "replicas": { "type": "integer" }, "rootService": { "type": "string" }, "status": { "type": "string" }, "statusDetail": { "type": "string" }, "zone": { "type": "string" } } }, "response.RestoreSource": { "type": "object", "properties": { "archiveSource": { "type": "string" }, "bakDataSource": { "type": "string" }, "bakEncryptionSecret": { "type": "string" }, "ossAccessSecret": { "type": "string" }, "type": { "description": "Enum: OSS, NFS", "type": "string" }, "until": { "type": "string" } } }, "response.StorageClass": { "type": "object", "properties": { "allowVolumeExpansion": { "type": "boolean" }, "mountOptions": { "type": "array", "items": { "type": "string" } }, "name": { "type": "string" }, "parameters": { "type": "array", "items": { "$ref": "#/definitions/common.KVPair" } }, "provisioner": { "type": "string" }, "reclaimPolicy": { "type": "string" }, "volumeBindingMode": { "type": "string" } } } }, "securityDefinitions": { "ApiKeyAuth": { "type": "apiKey", "name": "Cookie", "in": "header" } } }