{ "openapi": "3.0.1", "info": { "title": "OpenAPI spec for ClickHouse Cloud", "version": "1.0", "contact": { "name": "ClickHouse Support", "url": "https://clickhouse.com/docs/en/cloud/manage/openapi?referrer=openapi-133334", "email": "support@clickhouse.com" } }, "servers": [ { "url": "https://api.clickhouse.cloud" } ], "paths": { "/v1/organizations": { "get": { "summary": "Get list of available organizations", "description": "Returns a list with a single organization associated with the API key in the request.", "parameters": [], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/Organization" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}": { "get": { "summary": "Get organization details", "description": "Returns details of a single organization. In order to get the details, the auth key must belong to the organization.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Organization" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "patch": { "summary": "Update organization details", "description": "Updates organization fields. Requires ADMIN auth key role.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization to update.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationPatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Organization" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/prometheus": { "get": { "summary": "Get organization details", "description": "Returns details of a single organization. In order to get the details, the auth key must belong to the organization.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "text/plain": { "schema": { "type": "string" } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/services": { "get": { "summary": "List of organization services", "description": "Returns a list of all services in the organization.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/Service" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "post": { "summary": "Create new service", "description": "Creates a new service in the organization, and returns the current service state and a password to access the service. The service is started asynchronously.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that will own the service.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServicePostRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/ServicePostResponse" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/services/{serviceId}": { "get": { "summary": "Get service details", "description": "Returns a service that belongs to the organization", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "serviceId", "description": "ID of the requested service.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Service" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "patch": { "summary": "Update service basic details", "description": "Updates basic service details like service name or IP access list.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "serviceId", "description": "ID of the service to update.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServicePatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Service" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "delete": { "summary": "Delete service", "description": "Deletes the service. The service must be in stopped state and is deleted asynchronously after this method call.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "serviceId", "description": "ID of the service to delete.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/services/{serviceId}/privateEndpointConfig": { "get": { "summary": "Get private endpoint configuration", "description": "Information required to set up a private endpoint", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "serviceId", "description": "ID of the requested service.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/PrivateEndpointConfig" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/services/{serviceId}/state": { "patch": { "summary": "Update service state", "description": "Starts or stop service", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "serviceId", "description": "ID of the service to update state.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceStatePatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Service" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/services/{serviceId}/scaling": { "patch": { "summary": "Update service auto scaling settings", "description": "Updates minimum and maximum total memory limits and idle mode scaling behavior for the service. The memory settings are available only for \"production\" services and must be a multiple of 12 starting from 24GB. Please contact support to enable adjustment of numReplicas.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "serviceId", "description": "ID of the service to update scaling parameters.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceScalingPatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Service" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } }, "deprecated": true } }, "/v1/organizations/{organizationId}/services/{serviceId}/replicaScaling": { "patch": { "summary": "Update service auto scaling settings", "description": "Updates minimum and maximum memory limits per replica and idle mode scaling behavior for the service. The memory settings are available only for \"production\" services and must be a multiple of 4 starting from 8GB. Please contact support to enable adjustment of numReplicas.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "serviceId", "description": "ID of the service to update scaling parameters.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServiceReplicaScalingPatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/ServiceScalingPatchResponse" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/services/{serviceId}/password": { "patch": { "summary": "Update service password", "description": "Sets a new password for the service", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "serviceId", "description": "ID of the service to update password.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ServicePasswordPatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/ServicePasswordPatchResponse" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/services/{serviceId}/prometheus": { "get": { "summary": "Get prometheus metrics", "description": "Returns prometheus metrics for a service.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "serviceId", "description": "ID of the requested service.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "text/plain": { "schema": { "type": "string" } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/services/{serviceId}/backups": { "get": { "summary": "List of service backups", "description": "Returns a list of all backups for the service. The most recent backups comes first in the list.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the backup.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "serviceId", "description": "ID of the service the backup was created from.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/Backup" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/services/{serviceId}/backups/{backupId}": { "get": { "summary": "Get backup details", "description": "Returns a single backup info.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the backup.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "serviceId", "description": "ID of the service the backup was created from.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "backupId", "description": "ID of the requested backup.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Backup" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/services/{serviceId}/backupConfiguration": { "get": { "summary": "Get service backup configuration", "description": "Returns the service backup configuration.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "serviceId", "description": "ID of the service.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Backup configuration" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "patch": { "summary": "Update service backup configuration", "description": "Updates service backup configuration. Requires ADMIN auth key role. Setting the properties with null value, will reset the properties to theirs default values.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the service.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "serviceId", "description": "ID of the service.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BackupConfigurationPatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Backup configuration" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/keys": { "get": { "summary": "Get list of all keys", "description": "Returns a list of all keys in the organization.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/ApiKey" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "post": { "summary": "Create key", "description": "Creates new API key.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that will own the key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyPostRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/ApiKeyPostResponse" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/keys/{keyId}": { "get": { "summary": "Get key details", "description": "Returns a single key details.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "keyId", "description": "ID of the requested key.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/ApiKey" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "patch": { "summary": "Update key", "description": "Updates API key properties.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "keyId", "description": "ID of the key to update.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApiKeyPatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/ApiKey" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "delete": { "summary": "Delete key", "description": "Deletes API key. Only a key not used to authenticate the active request can be deleted.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that owns the key.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "keyId", "description": "ID of the key to delete.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/members": { "get": { "summary": "List organization members", "description": "Returns a list of all members in the organization.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/Member" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/members/{userId}": { "get": { "summary": "Get member details", "description": "Returns a single organization member details.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization the member is part of.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "userId", "description": "ID of the requested user.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Member" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "patch": { "summary": "Update organization member.", "description": "Updates organization member role.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization the member is part of.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "userId", "description": "ID of the user to patch", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MemberPatchRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Member" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "delete": { "summary": "Remove an organization member", "description": "Removes a user from the organization", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "userId", "description": "ID of the requested user.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/invitations": { "get": { "summary": "List all invitations", "description": "Returns list of all organization invitations.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/Invitation" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "post": { "summary": "Create an invitation", "description": "Creates organization invitation.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization to invite a user to.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InvitationPostRequest" } } } }, "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Invitation" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/invitations/{invitationId}": { "get": { "summary": "Get invitation details", "description": "Returns details for a single organization invitation.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "invitationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Invitation" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } }, "delete": { "summary": "Delete organization invitation", "description": "Deletes a single organization invitation.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the organization that has the invitation.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "invitationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/activities": { "get": { "summary": "List of organization activities", "description": "Returns a list of all organization activities.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "query", "name": "from_date", "description": "A starting date for a search", "schema": { "type": "string", "format": "date-time" } }, { "in": "query", "name": "to_date", "description": "An ending date for a search", "schema": { "type": "string", "format": "date-time" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "type": "array", "items": { "$ref": "#/components/schemas/Activity" } } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/activities/{activityId}": { "get": { "summary": "Organization activity", "description": "Returns a single organization activity by ID.", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "path", "name": "activityId", "description": "ID of the requested activity.", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/Activity" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } }, "/v1/organizations/{organizationId}/privateEndpointConfig": { "get": { "summary": "Get private endpoint configuration for region within cloud provider for an organization", "description": "Information required to set up a private endpoint", "parameters": [ { "in": "path", "name": "organizationId", "description": "ID of the requested organization.", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "in": "query", "name": "Cloud provider identifier", "description": "Cloud provider identifier. One of aws, gcp, or azure.", "schema": { "type": "string" }, "required": true }, { "in": "query", "name": "Cloud provider region", "description": "Region identifier within specific cloud providers.", "schema": { "type": "string" }, "required": true } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 200 }, "requestId": { "type": "string", "description": "Unique id assigned to every request. UUIDv4", "format": "uuid" }, "result": { "$ref": "#/components/schemas/OrganizationCloudRegionPrivateEndpointConfig" } } } } } }, "400": { "description": "The server cannot or will not process the request due to something that is perceived to be a client error.", "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "number", "description": "HTTP status code.", "example": 400 }, "error": { "type": "string", "description": "Detailed error description." } } } } } } } } } }, "components": { "schemas": { "ServiceEndpoint": { "properties": { "protocol": { "type": "string", "description": "Endpoint protocol: 'https', 'nativesecure', 'mysql'.", "enum": [ "https", "nativesecure", "mysql" ] }, "host": { "type": "string", "description": "Service host name" }, "port": { "type": "number", "description": "Numeric port" } } }, "IpAccessListEntry": { "properties": { "source": { "type": "string", "description": "IP or CIDR" }, "description": { "type": "string", "description": "Optional description of IPv4 address or IPv4 CIDR to allow access from" } } }, "Service": { "properties": { "id": { "type": "string", "description": "Unique service ID.", "format": "uuid" }, "name": { "type": "string", "description": "Name of the service. Alphanumerical string with whitespaces up to 50 characters." }, "provider": { "type": "string", "description": "Cloud provider", "enum": [ "aws", "gcp", "azure" ] }, "region": { "type": "string", "description": "Service region.", "enum": [ "ap-south-1", "ap-southeast-1", "eu-central-1", "eu-west-1", "eu-west-2", "us-east-1", "us-east-2", "us-west-2", "ap-southeast-2", "ap-northeast-1", "us-east1", "us-central1", "europe-west4", "asia-southeast1", "eastus", "eastus2", "westus3", "germanywestcentral" ] }, "state": { "type": "string", "description": "Current state of the service.", "enum": [ "starting", "stopping", "terminating", "awaking", "partially_running", "provisioning", "running", "stopped", "terminated", "degraded", "failed", "idle" ] }, "endpoints": { "type": "array", "description": "List of all service endpoints.", "items": { "$ref": "#/components/schemas/ServiceEndpoint" } }, "tier": { "type": "string", "description": "Tier of the service: 'development', 'production', 'dedicated_high_mem', 'dedicated_high_cpu', 'dedicated_standard', 'dedicated_standard_n2d_standard_4', 'dedicated_standard_n2d_standard_8', 'dedicated_standard_n2d_standard_32', 'dedicated_standard_n2d_standard_128'. Production services scale, Development are fixed size. Azure services don't support Development tier", "enum": [ "development", "production", "dedicated_high_mem", "dedicated_high_cpu", "dedicated_standard", "dedicated_standard_n2d_standard_4", "dedicated_standard_n2d_standard_8", "dedicated_standard_n2d_standard_32", "dedicated_standard_n2d_standard_128" ] }, "minTotalMemoryGb": { "type": "number", "description": "DEPRECATED - inaccurate for services with non-default numbers of replicas. Minimum memory of three workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and greater than or equal to 24.", "minimum": 24, "maximum": 708, "multipleOf": 12, "example": 48, "deprecated": true }, "maxTotalMemoryGb": { "type": "number", "description": "DEPRECATED - inaccurate for services with non-default numbers of replicas. Maximum memory of three workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and lower than or equal to 360 for non paid services or 708 for paid services.", "minimum": 24, "maximum": 708, "multipleOf": 12, "example": 360, "deprecated": true }, "minReplicaMemoryGb": { "type": "number", "description": "Minimum total memory of each replica during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 4 and greater than or equal to 8.", "minimum": 8, "maximum": 236, "multipleOf": 4, "example": 16 }, "maxReplicaMemoryGb": { "type": "number", "description": "Maximum total memory of each replica during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 4 and lower than or equal to 120 for non paid services or 236 for paid services.", "minimum": 8, "maximum": 236, "multipleOf": 4, "example": 120 }, "numReplicas": { "type": "number", "description": "Number of replicas for the service. Must be between 3 and 20. Contact support to enable this feature.", "minimum": 3, "maximum": 20, "example": 3 }, "idleScaling": { "type": "boolean", "description": "When set to true the service is allowed to scale down to zero when idle. True by default." }, "idleTimeoutMinutes": { "type": "number", "description": "Set minimum idling timeout (in minutes). Must be >= 5 minutes." }, "ipAccessList": { "type": "array", "description": "List of IP addresses allowed to access the service", "items": { "$ref": "#/components/schemas/IpAccessListEntry" } }, "createdAt": { "type": "string", "description": "Service creation timestamp. ISO-8601.", "format": "date-time" }, "encryptionKey": { "type": "string", "description": "Optional customer provided disk encryption key" }, "encryptionAssumedRoleIdentifier": { "type": "string", "description": "Optional role to use for disk encryption" }, "iamRole": { "type": "string", "description": "IAM role used for accessing objects in s3" }, "privateEndpointIds": { "type": "array", "description": "List of private endpoints", "items": { "type": "string" } }, "dataWarehouseId": { "type": "string", "description": "Data warehouse containing this service" }, "isPrimary": { "type": "boolean", "description": "True if this service is the primary service in the data warehouse" }, "isReadonly": { "type": "boolean", "description": "True if this service is read-only. It can only be read-only if a dataWarehouseId is provided." }, "releaseChannel": { "type": "string", "description": "Select fast if you want to get new ClickHouse releases as soon as they are available. You'll get new features faster, but with a higher risk of bugs. This feature is only available for production services.", "enum": [ "default", "fast" ] } } }, "PrivateEndpointConfig": { "properties": { "endpointServiceId": { "type": "string", "description": "Unique identifier of the interface endpoint you created in your VPC with the AWS(Service Name), GCP(Target Service) or AZURE (Private Link Service) resource" }, "privateDnsHostname": { "type": "string", "description": "Private DNS Hostname of the VPC you created" } } }, "IpAccessListPatch": { "properties": { "add": { "type": "array", "description": "Elements to add. Executed after \"remove\" part is processed.", "items": { "$ref": "#/components/schemas/IpAccessListEntry" } }, "remove": { "type": "array", "description": "Elements to remove. Executed before \"add\" part is processed.", "items": { "$ref": "#/components/schemas/IpAccessListEntry" } } } }, "InstancePrivateEndpointsPatch": { "properties": { "add": { "type": "array", "description": "Elements to add. Executed after \"remove\" part is processed.", "items": { "type": "string" } }, "remove": { "type": "array", "description": "Elements to remove. Executed before \"add\" part is processed.", "items": { "type": "string" } } } }, "Activity": { "properties": { "id": { "type": "string", "description": "Unique activity ID." }, "createdAt": { "type": "string", "description": "Timestamp of the activity. ISO-8601.", "format": "date-time" }, "type": { "type": "string", "description": "Type of the activity.", "enum": [ "create_organization", "organization_update_name", "transfer_service_in", "transfer_service_out", "save_payment_method", "marketplace_subscription", "migrate_marketplace_billing_details_in", "migrate_marketplace_billing_details_out", "organization_invite_create", "organization_invite_delete", "organization_member_join", "organization_member_add", "organization_member_leave", "organization_member_delete", "organization_member_update_role", "organization_member_update_mfa_method", "key_create", "key_delete", "openapi_key_update", "service_create", "service_start", "service_stop", "service_awaken", "service_partially_running", "service_delete", "service_update_name", "service_update_ip_access_list", "service_update_autoscaling_memory", "service_update_autoscaling_idling", "service_update_password", "service_update_autoscaling_replicas", "service_update_max_allowable_replicas", "service_update_backup_configuration", "service_restore_backup", "service_update_release_channel", "service_update_gpt_usage_consent", "service_import_to_organization", "service_export_from_organization", "backup_delete" ] }, "actorType": { "type": "string", "description": "Type of the actor: 'user', 'support', 'system', 'api'.", "enum": [ "user", "support", "system", "api" ] }, "actorId": { "type": "string", "description": "Unique actor ID." }, "actorDetails": { "type": "string", "description": "Additional information about the actor." }, "actorIpAddress": { "type": "string", "description": "IP address of the actor. Defined for 'user' and 'api' actor types." }, "organizationId": { "type": "string", "description": "Scope of the activity: organization ID this activity is related to." }, "serviceId": { "type": "string", "description": "Scope of the activity: service ID this activity is related to." } } }, "Backup configuration": { "properties": { "backupPeriodInHours": { "type": "number", "description": "The interval in hours between each backup." }, "backupRetentionPeriodInHours": { "type": "number", "description": "The minimum duration in hours for which the backups are available." }, "backupStartTime": { "type": "string", "description": "The time in HH:MM format for the backups to be performed (evaluated in UTC timezone). When defined the backup period resets to every 24 hours." } } }, "Backup": { "properties": { "id": { "type": "string", "description": "Unique backup ID.", "format": "uuid" }, "status": { "type": "string", "description": "Status of the backup: 'done', 'error', 'in_progress'.", "enum": [ "done", "error", "in_progress" ] }, "serviceId": { "type": "string", "description": "Name " }, "startedAt": { "type": "string", "description": "Backup start timestamp. ISO-8601.", "format": "date-time" }, "finishedAt": { "type": "string", "description": "Backup finish timestamp. ISO-8601. Available only for finished backups", "format": "date-time" }, "sizeInBytes": { "type": "number", "description": "Size of the backup in bytes." }, "durationInSeconds": { "type": "number", "description": "Time in seconds it took to perform the backup. If the status still in_progress, this is the time in seconds since the backup started until now." }, "type": { "type": "string", "description": "Backup type (\"full\" or \"incremental\").", "enum": [ "full", "incremental" ] } } }, "OrganizationPrivateEndpoint": { "properties": { "id": { "type": "string", "description": "Private endpoint identifier" }, "description": { "type": "string", "description": "Description of private endpoint" }, "cloudProvider": { "type": "string", "description": "Cloud provider in which the private endpoint is lcoated", "enum": [ "gcp", "aws", "azure" ] }, "region": { "type": "string", "description": "Region in which the private endpoint is located", "enum": [ "ap-south-1", "ap-southeast-1", "eu-central-1", "eu-west-1", "eu-west-2", "us-east-1", "us-east-2", "us-west-2", "ap-southeast-2", "ap-northeast-1", "ca-central-1", "sa-east-1", "af-south-1", "eu-north-1", "gcp-asia-southeast1", "gcp-asia-northeast1", "gcp-australia-southeast1", "gcp-europe-west3", "gcp-europe-west4", "gcp-europe-west6", "gcp-northamerica-northeast1", "gcp-us-central1", "gcp-us-east1", "gcp-us-west1", "azure-eastus", "azure-eastus2", "azure-westus3", "azure-germanywestcentral" ] } } }, "Organization": { "properties": { "id": { "type": "string", "description": "Unique organization ID.", "format": "uuid" }, "createdAt": { "type": "string", "description": "The timestamp the organization was created. ISO-8601.", "format": "date-time" }, "name": { "type": "string", "description": "Name of the organization." }, "privateEndpoints": { "type": "array", "description": "List of private endpoints for organization", "items": { "$ref": "#/components/schemas/OrganizationPrivateEndpoint" } } } }, "OrganizationCloudRegionPrivateEndpointConfig": { "properties": { "endpointServiceId": { "type": "string", "description": "Unique identifier of the interface endpoint you created in your VPC with the AWS(Service Name) or GCP(Target Service) resource" } } }, "OrganizationPatchPrivateEndpoint": { "properties": { "id": { "type": "string", "description": "Private endpoint identifier" }, "description": { "type": "string", "description": "Optional description of private endpoint" }, "cloudProvider": { "type": "string", "description": "Cloud provider in which the private endpoint is lcoated", "enum": [ "gcp", "aws", "azure" ] }, "region": { "type": "string", "description": "Region in which the private endpoint is located", "enum": [ "ap-south-1", "ap-southeast-1", "eu-central-1", "eu-west-1", "eu-west-2", "us-east-1", "us-east-2", "us-west-2", "ap-southeast-2", "ap-northeast-1", "ca-central-1", "sa-east-1", "af-south-1", "eu-north-1", "gcp-asia-southeast1", "gcp-asia-northeast1", "gcp-australia-southeast1", "gcp-europe-west3", "gcp-europe-west4", "gcp-europe-west6", "gcp-northamerica-northeast1", "gcp-us-central1", "gcp-us-east1", "gcp-us-west1", "azure-eastus", "azure-eastus2", "azure-westus3", "azure-germanywestcentral" ] } } }, "OrganizationPrivateEndpointsPatch": { "properties": { "add": { "type": "array", "description": "Elements to add. Executed after \"remove\" part is processed.", "items": { "$ref": "#/components/schemas/OrganizationPatchPrivateEndpoint" } }, "remove": { "type": "array", "description": "Elements to remove. Executed before \"add\" part is processed.", "items": { "$ref": "#/components/schemas/OrganizationPatchPrivateEndpoint" } } } }, "Member": { "properties": { "userId": { "type": "string", "description": "Unique user ID. If a user is a member in multiple organizations this ID will stay the same." }, "name": { "type": "string", "description": "Name of the member as set a personal user profile." }, "email": { "type": "string", "description": "Email of the member as set in personal user profile.", "format": "email" }, "role": { "type": "string", "description": "Role of the member in the organization.", "enum": [ "admin", "developer", "org_member", "billing" ] }, "joinedAt": { "type": "string", "description": "Timestamp the member joined the organization. ISO-8601.", "format": "date-time" } } }, "Invitation": { "properties": { "role": { "type": "string", "description": "Role of the member in the organization.", "enum": [ "admin", "developer", "org_member", "billing" ] }, "id": { "type": "string", "description": "Unique invitation ID.", "format": "uuid" }, "email": { "type": "string", "description": "Email of the invited user. Only a user with this email can join using the invitation. The email is stored in a lowercase form.", "format": "email" }, "createdAt": { "type": "string", "description": "Invitation creation timestamp. ISO-8601.", "format": "date-time" }, "expireAt": { "type": "string", "description": "Timestamp the invitation expires. ISO-8601.", "format": "date-time" } } }, "ApiKey": { "properties": { "id": { "type": "string", "description": "Unique API key ID.", "format": "uuid" }, "name": { "type": "string", "description": "Name of the key" }, "state": { "type": "string", "description": "State of the key: 'enabled', 'disabled'.", "enum": [ "enabled", "disabled" ] }, "roles": { "type": "array", "description": "List of roles assigned to the key. Contains at least 1 element.", "items": { "type": "string", "enum": [ "admin", "developer", "org_member", "billing" ] } }, "keySuffix": { "type": "string", "description": "Last 4 letters of the key." }, "createdAt": { "type": "string", "description": "Timestamp the key was created. ISO-8601.", "format": "date-time" }, "expireAt": { "type": "string", "description": "Timestamp the key expires. If not present or is empty the key never expires. ISO-8601.", "format": "date-time" }, "usedAt": { "type": "string", "description": "Timestamp the key was used last time. If not present the key was never used. ISO-8601.", "format": "date-time" } } }, "ApiKeyHashData": { "properties": { "keyIdHash": { "type": "string", "description": "Hash of the key ID. " }, "keyIdSuffix": { "type": "string", "description": "Last 4 digits of the key ID. Algorithm: echo -n \"yourpassword\" | sha256sum | tr -d '-' | xxd -r -p | base64" }, "keySecretHash": { "type": "string", "description": "Hash of the key secret. Algorithm: echo -n \"yourpassword\" | sha256sum | tr -d '-' | xxd -r -p | base64" } } }, "OrganizationPatchRequest": { "properties": { "name": { "type": "string", "description": "Name of the organization." }, "privateEndpoints": { "$ref": "#/components/schemas/OrganizationPrivateEndpointsPatch" } } }, "ServicePostResponse": { "properties": { "service": { "$ref": "#/components/schemas/Service" }, "password": { "type": "string", "description": "Password for the newly created service." } } }, "ServicePostRequest": { "properties": { "name": { "type": "string", "description": "Name of the service. Alphanumerical string with whitespaces up to 50 characters." }, "provider": { "type": "string", "description": "Cloud provider", "enum": [ "aws", "gcp", "azure" ] }, "region": { "type": "string", "description": "Service region.", "enum": [ "ap-south-1", "ap-southeast-1", "eu-central-1", "eu-west-1", "eu-west-2", "us-east-1", "us-east-2", "us-west-2", "ap-southeast-2", "ap-northeast-1", "us-east1", "us-central1", "europe-west4", "asia-southeast1", "eastus", "eastus2", "westus3", "germanywestcentral" ] }, "tier": { "type": "string", "description": "Tier of the service: 'development', 'production', 'dedicated_high_mem', 'dedicated_high_cpu', 'dedicated_standard', 'dedicated_standard_n2d_standard_4', 'dedicated_standard_n2d_standard_8', 'dedicated_standard_n2d_standard_32', 'dedicated_standard_n2d_standard_128'. Production services scale, Development are fixed size. Azure services don't support Development tier", "enum": [ "development", "production", "dedicated_high_mem", "dedicated_high_cpu", "dedicated_standard", "dedicated_standard_n2d_standard_4", "dedicated_standard_n2d_standard_8", "dedicated_standard_n2d_standard_32", "dedicated_standard_n2d_standard_128" ] }, "ipAccessList": { "type": "array", "description": "List of IP addresses allowed to access the service", "items": { "$ref": "#/components/schemas/IpAccessListEntry" } }, "minTotalMemoryGb": { "type": "number", "description": "DEPRECATED - inaccurate for services with non-default numbers of replicas. Minimum memory of three workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and greater than or equal to 24.", "minimum": 24, "maximum": 708, "multipleOf": 12, "example": 48, "deprecated": true }, "maxTotalMemoryGb": { "type": "number", "description": "DEPRECATED - inaccurate for services with non-default numbers of replicas. Maximum memory of three workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and lower than or equal to 360 for non paid services or 708 for paid services.", "minimum": 24, "maximum": 708, "multipleOf": 12, "example": 360, "deprecated": true }, "minReplicaMemoryGb": { "type": "number", "description": "Minimum total memory of each replica during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 4 and greater than or equal to 8.", "minimum": 8, "maximum": 236, "multipleOf": 4, "example": 16 }, "maxReplicaMemoryGb": { "type": "number", "description": "Maximum total memory of each replica during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 4 and lower than or equal to 120 for non paid services or 236 for paid services.", "minimum": 8, "maximum": 236, "multipleOf": 4, "example": 120 }, "numReplicas": { "type": "number", "description": "Number of replicas for the service. Must be between 3 and 20. Contact support to enable this feature.", "minimum": 3, "maximum": 20, "example": 3 }, "idleScaling": { "type": "boolean", "description": "When set to true the service is allowed to scale down to zero when idle. True by default." }, "idleTimeoutMinutes": { "type": "number", "description": "Set minimum idling timeout (in minutes). Must be >= 5 minutes." }, "isReadonly": { "type": "boolean", "description": "True if this service is read-only. It can only be read-only if a dataWarehouseId is provided." }, "dataWarehouseId": { "type": "string", "description": "Data warehouse containing this service" }, "backupId": { "type": "string", "description": "Optional backup ID used as an initial state for the new service. When used the region and the tier of the new instance must be the same as the values of the original instance.", "format": "uuid" }, "encryptionKey": { "type": "string", "description": "Optional customer provided disk encryption key" }, "encryptionAssumedRoleIdentifier": { "type": "string", "description": "Optional role to use for disk encryption" }, "privateEndpointIds": { "type": "array", "description": "List of private endpoints", "items": { "type": "string" } }, "privatePreviewTermsChecked": { "type": "boolean", "description": "Accept the private preview terms and conditions. It is only needed when creating the first service in the organization in case of a private preview" }, "releaseChannel": { "type": "string", "description": "Select fast if you want to get new ClickHouse releases as soon as they are available. You'll get new features faster, but with a higher risk of bugs. This feature is only available for production services.", "enum": [ "default", "fast" ] } } }, "ServicePatchRequest": { "properties": { "name": { "type": "string", "description": "Name of the service. Alphanumerical string with whitespaces up to 50 characters." }, "ipAccessList": { "$ref": "#/components/schemas/IpAccessListPatch" }, "privateEndpointIds": { "$ref": "#/components/schemas/InstancePrivateEndpointsPatch" }, "releaseChannel": { "type": "string", "description": "Select fast if you want to get new ClickHouse releases as soon as they are available. You'll get new features faster, but with a higher risk of bugs. This feature is only available for production services.", "enum": [ "default", "fast" ] } } }, "ServiceStatePatchRequest": { "properties": { "command": { "type": "string", "description": "Command to change the state: 'start', 'stop'.", "enum": [ "start", "stop" ] } } }, "ServiceScalingPatchRequest": { "properties": { "minTotalMemoryGb": { "type": "number", "description": "DEPRECATED - inaccurate for services with non-default numbers of replicas. Minimum memory of three workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and greater than or equal to 24.", "minimum": 24, "maximum": 708, "multipleOf": 12, "example": 48, "deprecated": true }, "maxTotalMemoryGb": { "type": "number", "description": "DEPRECATED - inaccurate for services with non-default numbers of replicas. Maximum memory of three workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and lower than or equal to 360 for non paid services or 708 for paid services.", "minimum": 24, "maximum": 708, "multipleOf": 12, "example": 360, "deprecated": true }, "numReplicas": { "type": "number", "description": "Number of replicas for the service. Must be between 3 and 20. Contact support to enable this feature.", "minimum": 3, "maximum": 20, "example": 3 }, "idleScaling": { "type": "boolean", "description": "When set to true the service is allowed to scale down to zero when idle. True by default." }, "idleTimeoutMinutes": { "type": "number", "description": "Set minimum idling timeout (in minutes). Must be >= 5 minutes." } } }, "ServiceScalingPatchResponse": { "properties": { "id": { "type": "string", "description": "Unique service ID.", "format": "uuid" }, "name": { "type": "string", "description": "Name of the service. Alphanumerical string with whitespaces up to 50 characters." }, "provider": { "type": "string", "description": "Cloud provider", "enum": [ "aws", "gcp", "azure" ] }, "region": { "type": "string", "description": "Service region.", "enum": [ "ap-south-1", "ap-southeast-1", "eu-central-1", "eu-west-1", "eu-west-2", "us-east-1", "us-east-2", "us-west-2", "ap-southeast-2", "ap-northeast-1", "us-east1", "us-central1", "europe-west4", "asia-southeast1", "eastus", "eastus2", "westus3", "germanywestcentral" ] }, "state": { "type": "string", "description": "Current state of the service.", "enum": [ "starting", "stopping", "terminating", "awaking", "partially_running", "provisioning", "running", "stopped", "terminated", "degraded", "failed", "idle" ] }, "endpoints": { "type": "array", "description": "List of all service endpoints.", "items": { "$ref": "#/components/schemas/ServiceEndpoint" } }, "tier": { "type": "string", "description": "Tier of the service: 'development', 'production', 'dedicated_high_mem', 'dedicated_high_cpu', 'dedicated_standard', 'dedicated_standard_n2d_standard_4', 'dedicated_standard_n2d_standard_8', 'dedicated_standard_n2d_standard_32', 'dedicated_standard_n2d_standard_128'. Production services scale, Development are fixed size. Azure services don't support Development tier", "enum": [ "development", "production", "dedicated_high_mem", "dedicated_high_cpu", "dedicated_standard", "dedicated_standard_n2d_standard_4", "dedicated_standard_n2d_standard_8", "dedicated_standard_n2d_standard_32", "dedicated_standard_n2d_standard_128" ] }, "minTotalMemoryGb": { "type": "number", "description": "DEPRECATED - inaccurate for services with non-default numbers of replicas. Minimum memory of three workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and greater than or equal to 24.", "minimum": 24, "maximum": 708, "multipleOf": 12, "example": 48, "deprecated": true }, "maxTotalMemoryGb": { "type": "number", "description": "DEPRECATED - inaccurate for services with non-default numbers of replicas. Maximum memory of three workers during auto-scaling in Gb. Available only for 'production' services. Must be a multiple of 12 and lower than or equal to 360 for non paid services or 708 for paid services.", "minimum": 24, "maximum": 708, "multipleOf": 12, "example": 360, "deprecated": true }, "minReplicaMemoryGb": { "type": "number", "description": "Minimum auto-scaling memory in Gb for a single replica. Available only for 'production' services. Must be a multiple of 4 and greater than or equal to 8.", "minimum": 8, "maximum": 236, "multipleOf": 4, "example": 16 }, "maxReplicaMemoryGb": { "type": "number", "description": "Maximum auto-scaling memory in Gb for a single replica . Available only for 'production' services. Must be a multiple of 4 and lower than or equal to 120 for non paid services or 236 for paid services.", "minimum": 8, "maximum": 236, "multipleOf": 4, "example": 120 }, "numReplicas": { "type": "number", "description": "Number of replicas for the service. Must be between 3 and 20. Contact support to enable this feature.", "minimum": 3, "maximum": 20, "example": 3 }, "idleScaling": { "type": "boolean", "description": "When set to true the service is allowed to scale down to zero when idle. True by default." }, "idleTimeoutMinutes": { "type": "number", "description": "Set minimum idling timeout (in minutes). Must be >= 5 minutes." }, "ipAccessList": { "type": "array", "description": "List of IP addresses allowed to access the service", "items": { "$ref": "#/components/schemas/IpAccessListEntry" } }, "createdAt": { "type": "string", "description": "Service creation timestamp. ISO-8601.", "format": "date-time" }, "encryptionKey": { "type": "string", "description": "Optional customer provided disk encryption key" }, "encryptionAssumedRoleIdentifier": { "type": "string", "description": "Optional role to use for disk encryption" }, "iamRole": { "type": "string", "description": "IAM role used for accessing objects in s3" }, "privateEndpointIds": { "type": "array", "description": "List of private endpoints", "items": { "type": "string" } }, "dataWarehouseId": { "type": "string", "description": "Data warehouse containing this service" }, "isPrimary": { "type": "boolean", "description": "True if this service is the primary service in the data warehouse" }, "isReadonly": { "type": "boolean", "description": "True if this service is read-only. It can only be read-only if a dataWarehouseId is provided." }, "releaseChannel": { "type": "string", "description": "Select fast if you want to get new ClickHouse releases as soon as they are available. You'll get new features faster, but with a higher risk of bugs. This feature is only available for production services.", "enum": [ "default", "fast" ] } } }, "ServiceReplicaScalingPatchRequest": { "properties": { "minReplicaMemoryGb": { "type": "number", "description": "Minimum auto-scaling memory in Gb for a single replica. Available only for 'production' services. Must be a multiple of 4 and greater than or equal to 8.", "minimum": 8, "maximum": 236, "multipleOf": 4, "example": 16 }, "maxReplicaMemoryGb": { "type": "number", "description": "Maximum auto-scaling memory in Gb for a single replica . Available only for 'production' services. Must be a multiple of 4 and lower than or equal to 120 for non paid services or 236 for paid services.", "minimum": 8, "maximum": 236, "multipleOf": 4, "example": 120 }, "numReplicas": { "type": "number", "description": "Number of replicas for the service. Must be between 3 and 20. Contact support to enable this feature.", "minimum": 3, "maximum": 20, "example": 3 }, "idleScaling": { "type": "boolean", "description": "When set to true the service is allowed to scale down to zero when idle. True by default." }, "idleTimeoutMinutes": { "type": "number", "description": "Set minimum idling timeout (in minutes). Must be >= 5 minutes." } } }, "ServicePasswordPatchResponse": { "properties": { "password": { "type": "string", "description": "New service password. Provided only if there was no 'newPasswordHash' in the request" } } }, "ServicePasswordPatchRequest": { "properties": { "newPasswordHash": { "type": "string", "description": "Optional password hash. Used to avoid password transmission over network. If not provided a new password is generated and is provided in the response. Otherwise this hash is used. Algorithm: echo -n \"yourpassword\" | sha256sum | tr -d '-' | xxd -r -p | base64" }, "newDoubleSha1Hash": { "type": "string", "description": "Optional double SHA1 password hash for MySQL protocol. If newPasswordHash is not provided this key will be ignored and the generated password will be used. Algorithm: echo -n \"yourpassword\" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'" } } }, "BackupConfigurationPatchRequest": { "properties": { "backupPeriodInHours": { "type": "number", "description": "The interval in hours between each backup." }, "backupRetentionPeriodInHours": { "type": "number", "description": "The minimum duration in hours for which the backups are available." }, "backupStartTime": { "type": "string", "description": "The time in HH:MM format for the backups to be performed (evaluated in UTC timezone). When defined the backup period resets to every 24 hours." } } }, "ApiKeyPostResponse": { "properties": { "key": { "$ref": "#/components/schemas/ApiKey" }, "keyId": { "type": "string", "description": "Generated key ID. Provided only if there was no 'hashData' in the request." }, "keySecret": { "type": "string", "description": "Generated key secret. Provided only if there was no 'hashData' in the request." } } }, "ApiKeyPostRequest": { "properties": { "name": { "type": "string", "description": "Name of the key." }, "expireAt": { "type": "string", "description": "Timestamp the key expires. If not present or is empty the key never expires. ISO-8601.", "format": "date-time" }, "state": { "type": "string", "description": "Initial state of the key: 'enabled', 'disabled'. If not provided the new key will be 'enabled'.", "enum": [ "enabled", "disabled" ] }, "hashData": { "$ref": "#/components/schemas/ApiKeyHashData" }, "roles": { "type": "array", "description": "List of roles assigned to the key. Contains at least 1 element.", "items": { "type": "string", "enum": [ "admin", "developer", "org_member", "billing" ] } } } }, "ApiKeyPatchRequest": { "properties": { "name": { "type": "string", "description": "Name of the key" }, "roles": { "type": "array", "description": "List of roles assigned to the key. Contains at least 1 element.", "items": { "type": "string", "enum": [ "admin", "developer", "org_member", "billing" ] } }, "expireAt": { "type": "string", "description": "Timestamp the key expires. If not present or is empty the key never expires. ISO-8601.", "format": "date-time" }, "state": { "type": "string", "description": "State of the key: 'enabled', 'disabled'.", "enum": [ "enabled", "disabled" ] } } }, "MemberPatchRequest": { "properties": { "role": { "type": "string", "description": "Role of the member in the organization.", "enum": [ "admin", "developer", "org_member", "billing" ] } } }, "InvitationPostRequest": { "properties": { "email": { "type": "string", "description": "Email of the invited user. Only a user with this email can join using the invitation. The email is stored in a lowercase form.", "format": "email" }, "role": { "type": "string", "description": "Role of the member in the organization.", "enum": [ "admin", "developer", "org_member", "billing" ] } } } } } }