models.py•121 kB
# generated by fastapi-codegen:
# filename: openapi.yaml
# timestamp: 2025-07-07T15:56:15+00:00
from __future__ import annotations
from datetime import date as date_aliased
from datetime import datetime
from enum import Enum
from typing import List, Optional, Union
from uuid import UUID
from pydantic import BaseModel, EmailStr, Field, RootModel, confloat, conint
class ActorType(Enum):
user = 'user'
support = 'support'
system = 'system'
api = 'api'
class Type(Enum):
create_organization = 'create_organization'
organization_update_name = 'organization_update_name'
transfer_service_in = 'transfer_service_in'
transfer_service_out = 'transfer_service_out'
save_payment_method = 'save_payment_method'
marketplace_subscription = 'marketplace_subscription'
migrate_marketplace_billing_details_in = 'migrate_marketplace_billing_details_in'
migrate_marketplace_billing_details_out = 'migrate_marketplace_billing_details_out'
organization_update_tier = 'organization_update_tier'
organization_invite_create = 'organization_invite_create'
organization_invite_delete = 'organization_invite_delete'
organization_member_join = 'organization_member_join'
organization_member_add = 'organization_member_add'
organization_member_leave = 'organization_member_leave'
organization_member_delete = 'organization_member_delete'
organization_member_update_role = 'organization_member_update_role'
organization_member_update_mfa_method = 'organization_member_update_mfa_method'
key_create = 'key_create'
key_delete = 'key_delete'
openapi_key_update = 'openapi_key_update'
service_create = 'service_create'
service_start = 'service_start'
service_stop = 'service_stop'
service_awaken = 'service_awaken'
service_partially_running = 'service_partially_running'
service_delete = 'service_delete'
service_update_name = 'service_update_name'
service_update_ip_access_list = 'service_update_ip_access_list'
service_update_autoscaling_memory = 'service_update_autoscaling_memory'
service_update_autoscaling_idling = 'service_update_autoscaling_idling'
service_update_password = 'service_update_password'
service_update_autoscaling_replicas = 'service_update_autoscaling_replicas'
service_update_max_allowable_replicas = 'service_update_max_allowable_replicas'
service_update_backup_configuration = 'service_update_backup_configuration'
service_restore_backup = 'service_restore_backup'
service_update_release_channel = 'service_update_release_channel'
service_update_gpt_usage_consent = 'service_update_gpt_usage_consent'
service_update_private_endpoints = 'service_update_private_endpoints'
service_import_to_organization = 'service_import_to_organization'
service_export_from_organization = 'service_export_from_organization'
service_maintenance_start = 'service_maintenance_start'
service_maintenance_end = 'service_maintenance_end'
backup_delete = 'backup_delete'
class Activity(BaseModel):
actorDetails: Optional[str] = Field(
None, description='Additional information about the actor.'
)
actorId: Optional[str] = Field(None, description='Unique actor ID.')
actorIpAddress: Optional[str] = Field(
None,
description="IP address of the actor. Defined for 'user' and 'api' actor types.",
)
actorType: Optional[ActorType] = Field(
None, description="Type of the actor: 'user', 'support', 'system', 'api'."
)
createdAt: Optional[datetime] = Field(
None, description='Timestamp of the activity. ISO-8601.'
)
id: Optional[str] = Field(None, description='Unique activity ID.')
organizationId: Optional[str] = Field(
None,
description='Scope of the activity: organization ID this activity is related to.',
)
serviceId: Optional[str] = Field(
None,
description='Scope of the activity: service ID this activity is related to.',
)
type: Optional[Type] = Field(None, description='Type of the activity.')
class Role(Enum):
admin = 'admin'
developer = 'developer'
query_endpoints = 'query_endpoints'
class State(Enum):
enabled = 'enabled'
disabled = 'disabled'
class ApiKeyHashData(BaseModel):
keyIdHash: Optional[str] = Field(None, description='Hash of the key ID. ')
keyIdSuffix: Optional[str] = Field(
None,
description='Last 4 digits of the key ID. Algorithm: echo -n "yourpassword" | sha256sum | tr -d \'-\' | xxd -r -p | base64',
)
keySecretHash: Optional[str] = Field(
None,
description='Hash of the key secret. Algorithm: echo -n "yourpassword" | sha256sum | tr -d \'-\' | xxd -r -p | base64',
)
class BucketProvider(Enum):
AWS = 'AWS'
class AwsBackupBucket(BaseModel):
bucketPath: Optional[str] = Field(None, description='Bucket path')
bucketProvider: Optional[BucketProvider] = Field(
None, description='Bucket provider'
)
iamRoleArn: Optional[str] = Field(None, description='AWS Role ARN')
iamRoleSessionName: Optional[str] = Field(
None, description='AWS Role session name'
)
id: Optional[UUID] = Field(None, description='Unique backup bucket ID')
class AwsBackupBucketPatchRequestV1(BaseModel):
bucketPath: Optional[str] = Field(None, description='Bucket path')
bucketProvider: Optional[BucketProvider] = Field(
None, description='Bucket provider'
)
iamRoleArn: Optional[str] = Field(None, description='AWS Role ARN')
iamRoleSessionName: Optional[str] = Field(
None, description='AWS IAM Role session name'
)
class AwsBackupBucketPostRequestV1(BaseModel):
bucketPath: Optional[str] = Field(None, description='Bucket path')
bucketProvider: Optional[BucketProvider] = Field(
None, description='Bucket provider'
)
iamRoleArn: Optional[str] = Field(None, description='AWS Role ARN')
iamRoleSessionName: Optional[str] = Field(None, description='AWS Role session name')
class AwsBackupBucketProperties(BaseModel):
bucketPath: Optional[str] = Field(None, description='Bucket path')
bucketProvider: Optional[BucketProvider] = Field(
None, description='Bucket provider'
)
iamRoleArn: Optional[str] = Field(None, description='AWS IAM Role')
iamRoleSessionName: Optional[str] = Field(None, description='AWS IAM Role')
class AzureEventHub(BaseModel):
connectionString: Optional[str] = Field(
None, description='Connection string for Azure EventHub source.'
)
class BucketProvider4(Enum):
AZURE = 'AZURE'
class AzureBackupBucket(BaseModel):
bucketProvider: Optional[BucketProvider4] = Field(
None, description='Bucket provider'
)
containerName: Optional[str] = Field(None, description='Container Name')
id: Optional[UUID] = Field(None, description='Unique backup bucket ID.')
class AzureBackupBucketPatchRequestV1(BaseModel):
bucketProvider: Optional[BucketProvider4] = Field(
None, description='Bucket provider'
)
connectionString: Optional[str] = Field(None, description='Connection String')
containerName: Optional[str] = Field(None, description='Container Name')
class AzureBackupBucketPostRequestV1(BaseModel):
bucketProvider: Optional[BucketProvider4] = Field(
None, description='Bucket provider'
)
connectionString: Optional[str] = Field(None, description='Connection String')
containerName: Optional[str] = Field(None, description='Container Name')
class AzureBackupBucketProperties(BaseModel):
bucketProvider: Optional[BucketProvider4] = Field(
None, description='Bucket provider'
)
containerName: Optional[str] = Field(None, description='Container Name')
class Status(Enum):
done = 'done'
error = 'error'
in_progress = 'in_progress'
class Type1(Enum):
full = 'full'
incremental = 'incremental'
class BackupConfiguration(BaseModel):
backupPeriodInHours: Optional[float] = Field(
None, description='The interval in hours between each backup.'
)
backupRetentionPeriodInHours: Optional[float] = Field(
None,
description='The minimum duration in hours for which the backups are available.',
)
backupStartTime: Optional[str] = Field(
None,
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.',
)
class BackupConfigurationPatchRequest(BaseModel):
backupPeriodInHours: Optional[float] = Field(
None, description='The interval in hours between each backup.'
)
backupRetentionPeriodInHours: Optional[float] = Field(
None,
description='The minimum duration in hours for which the backups are available.',
)
backupStartTime: Optional[str] = Field(
None,
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.',
)
class CloudProvider(Enum):
gcp = 'gcp'
aws = 'aws'
azure = 'azure'
class RegionId(Enum):
ap_south_1 = 'ap-south-1'
ap_southeast_1 = 'ap-southeast-1'
eu_central_1 = 'eu-central-1'
eu_west_1 = 'eu-west-1'
eu_west_2 = 'eu-west-2'
us_east_1 = 'us-east-1'
us_east_2 = 'us-east-2'
us_west_2 = 'us-west-2'
ap_southeast_2 = 'ap-southeast-2'
ap_northeast_1 = 'ap-northeast-1'
me_central_1 = 'me-central-1'
us_east1 = 'us-east1'
us_central1 = 'us-central1'
europe_west4 = 'europe-west4'
asia_southeast1 = 'asia-southeast1'
eastus = 'eastus'
eastus2 = 'eastus2'
westus3 = 'westus3'
germanywestcentral = 'germanywestcentral'
class State3(Enum):
infra_ready = 'infra-ready'
infra_provisioning = 'infra-provisioning'
infra_terminated = 'infra-terminated'
class ByocConfig(BaseModel):
accountName: Optional[str] = Field(None, description='Name of the account')
cloudProvider: Optional[CloudProvider] = Field(
None, description='Cloud provider of the region'
)
id: Optional[str] = Field(
None, description='Unique identifier of the BYOC configuration'
)
regionId: Optional[RegionId] = Field(
None,
description='Region for which the BYOC has been configured and where it is possible to create services',
)
state: Optional[State3] = Field(None, description='State of the infrastructure')
class ClickPipeDestinationColumn(BaseModel):
name: Optional[str] = Field(None, description='Name of the column.')
type: Optional[str] = Field(None, description='Type of the column.')
class Type2(Enum):
MergeTree = 'MergeTree'
class ClickPipeDestinationTableEngine(BaseModel):
type: Optional[Type2] = Field(
None,
description='Engine type of the destination table. Currently MergeTree is the only supported engine.',
)
class ClickPipeFieldMapping(BaseModel):
destinationField: Optional[str] = Field(None, description='Destination field name.')
sourceField: Optional[str] = Field(None, description='Source field name.')
class Strategy(Enum):
from_beginning = 'from_beginning'
from_latest = 'from_latest'
from_timestamp = 'from_timestamp'
class ClickPipeKafkaOffset(BaseModel):
strategy: Optional[Strategy] = Field(None, description='Offset strategy.')
timestamp: Optional[str] = Field(
None,
description='A minute precision UTC timestamp to start from. Required for "from_timestamp" strategy.',
examples=['2021-01-01T00:00'],
)
class Authentication(Enum):
PLAIN = 'PLAIN'
class ClickPipeKafkaSchemaRegistry(BaseModel):
authentication: Optional[Authentication] = Field(
None, description='Authentication type of the schema registry.'
)
url: Optional[str] = Field(
None,
description='Schema URL. HTTPS required.',
examples=['https://psrc-aa00.us-east-2.aws.confluent.cloud/schemas/ids/100004'],
)
class ClickPipeKafkaSchemaRegistryCredentials(BaseModel):
password: Optional[str] = Field(
None, description='Password for the schema registry.'
)
username: Optional[str] = Field(
None, description='Username for the schema registry.'
)
class Authentication1(Enum):
PLAIN = 'PLAIN'
SCRAM_SHA_256 = 'SCRAM-SHA-256'
SCRAM_SHA_512 = 'SCRAM-SHA-512'
IAM_ROLE = 'IAM_ROLE'
IAM_USER = 'IAM_USER'
MUTUAL_TLS = 'MUTUAL_TLS'
class Format(Enum):
JSONEachRow = 'JSONEachRow'
Avro = 'Avro'
AvroConfluent = 'AvroConfluent'
class Type3(Enum):
kafka = 'kafka'
redpanda = 'redpanda'
msk = 'msk'
confluent = 'confluent'
warpstream = 'warpstream'
azureeventhub = 'azureeventhub'
dokafka = 'dokafka'
class ClickPipeKafkaSource(BaseModel):
authentication: Optional[Authentication1] = Field(
None,
description='Authentication method of the Kafka source. Supported authentication methods: kafka: PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, MUTUAL_TLS, msk: SCRAM-SHA-512, IAM_ROLE, IAM_USER, MUTUAL_TLS, confluent: PLAIN, MUTUAL_TLS, warpstream: PLAIN, azureeventhub: PLAIN, redpanda: SCRAM-SHA-256, SCRAM-SHA-512, MUTUAL_TLS, dokafka: SCRAM-SHA-256, MUTUAL_TLS',
)
brokers: Optional[str] = Field(None, description='Brokers of the Kafka source.')
caCertificate: Optional[str] = Field(
None,
description="PEM encoded CA certificates to validate the broker's certificate.",
)
consumerGroup: Optional[str] = Field(
None,
description='Consumer group of the Kafka source. If not provided "clickpipes-<<ID>>" will be used.',
examples=['my-clickpipe-consumer-group'],
)
format: Optional[Format] = Field(None, description='Format of the Kafka source.')
iamRole: Optional[str] = Field(
None,
description='IAM role for the Kafka source. Use with IAM role authentication. Read more in ClickPipes documentation: https://clickhouse.com/docs/en/integrations/clickpipes/kafka#iam',
examples=['arn:aws:iam::123456789012:role/MyRole'],
)
offset: Optional[ClickPipeKafkaOffset] = None
reversePrivateEndpointIds: Optional[List[str]] = Field(
None,
description='Reverse private endpoint UUIDs used for a secure private connection to the Kafka source.',
)
schemaRegistry: Optional[ClickPipeKafkaSchemaRegistry] = None
topics: Optional[str] = Field(None, description='Topics of the Kafka source.')
type: Optional[Type3] = Field(None, description='Type of the Kafka source.')
class Authentication2(Enum):
IAM_ROLE = 'IAM_ROLE'
IAM_USER = 'IAM_USER'
class IteratorType(Enum):
TRIM_HORIZON = 'TRIM_HORIZON'
LATEST = 'LATEST'
AT_TIMESTAMP = 'AT_TIMESTAMP'
class ClickPipeKinesisSource(BaseModel):
authentication: Optional[Authentication2] = Field(
None, description='Authentication method to use with the Kinesis stream.'
)
format: Optional[Format] = Field(None, description='Format of the Kinesis stream.')
iamRole: Optional[str] = Field(
None,
description='IAM role to use for authentication. Required if IAM_ROLE is used.',
examples=['arn:aws:iam::123456789012:role/MyRole'],
)
iteratorType: Optional[IteratorType] = Field(
None,
description='Type of iterator to use when reading from the Kinesis stream. If AT_TIMESTAMP is used, the timestamp field must be provided.',
)
region: Optional[str] = Field(
None, description='AWS region of the Kinesis stream.', examples=['us-east-1']
)
streamName: Optional[str] = Field(
None, description='Name of the Kinesis stream.', examples=['my-stream']
)
timestamp: Optional[int] = Field(
None,
description='UNIX timestamp to start reading from the Kinesis stream. Required if iteratorType is AT_TIMESTAMP.',
examples=[1615766400],
)
useEnhancedFanOut: Optional[bool] = Field(
None, description='Use enhanced fan-out for the Kinesis stream.'
)
class Authentication3(Enum):
PLAIN = 'PLAIN'
class ClickPipeMutateKafkaSchemaRegistry(BaseModel):
authentication: Optional[Authentication3] = Field(
None, description='Authentication type of the schema registry.'
)
credentials: Optional[ClickPipeKafkaSchemaRegistryCredentials] = None
url: Optional[str] = Field(
None,
description='Schema URL. HTTPS required.',
examples=['https://psrc-aa00.us-east-2.aws.confluent.cloud/schemas/ids/100004'],
)
class Authentication4(Enum):
IAM_ROLE = 'IAM_ROLE'
IAM_USER = 'IAM_USER'
class Compression(Enum):
gzip = 'gzip'
gz = 'gz'
brotli = 'brotli'
br = 'br'
xz = 'xz'
LZMA = 'LZMA'
zstd = 'zstd'
auto = 'auto'
class Format2(Enum):
JSONEachRow = 'JSONEachRow'
CSV = 'CSV'
CSVWithNames = 'CSVWithNames'
Parquet = 'Parquet'
Avro = 'Avro'
class Type4(Enum):
s3 = 's3'
gcs = 'gcs'
dospaces = 'dospaces'
class ClickPipeObjectStorageSource(BaseModel):
authentication: Optional[Authentication4] = Field(
None,
description='Authentication method. If not provided, no authentication is used. It can be used to access public buckets.',
)
compression: Optional[Compression] = Field(
None, description='Compression algorithm used for the files.', examples=['auto']
)
delimiter: Optional[str] = Field(
None, description='Delimiter used in the files.', examples=[',']
)
format: Optional[Format2] = Field(None, description='Format of the files.')
iamRole: Optional[str] = Field(
None,
description='IAM role to be used with IAM role authentication. Read more in ClickPipes documentation: https://clickhouse.com/docs/en/integrations/clickpipes/object-storage#authentication',
examples=['arn:aws:iam::123456789012:role/MyRole'],
)
isContinuous: Optional[bool] = Field(
None,
description='If set to true, the pipe will continuously read new files from the source. If set to false, the pipe will read the files only once. New files have to be uploaded lexically order.',
)
type: Optional[Type4] = Field(None, description='Type of the ObjectStorage source.')
url: Optional[str] = Field(
None,
description='Provide a path to the file(s) you want to ingest. You can specify multiple files using bash-like wildcards. For more information, see the documentation on using wildcards in path: https://clickhouse.com/docs/en/integrations/clickpipes/object-storage#limitations',
examples=[
'https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/**.ndjson.gz'
],
)
class ClickPipePatchDestination(BaseModel):
columns: Optional[List[ClickPipeDestinationColumn]] = Field(
None,
description='Columns of the destination table. This will not update the table schema, only the ClickPipe configuration.',
)
class Authentication5(Enum):
PLAIN = 'PLAIN'
SCRAM_SHA_256 = 'SCRAM-SHA-256'
SCRAM_SHA_512 = 'SCRAM-SHA-512'
IAM_ROLE = 'IAM_ROLE'
IAM_USER = 'IAM_USER'
MUTUAL_TLS = 'MUTUAL_TLS'
class Authentication6(Enum):
IAM_ROLE = 'IAM_ROLE'
IAM_USER = 'IAM_USER'
class TableEngine(Enum):
MergeTree = 'MergeTree'
ReplacingMergeTree = 'ReplacingMergeTree'
Null = 'Null'
class ClickPipePatchPostgresPipeRemoveTableMapping(BaseModel):
sourceSchemaName: Optional[str] = Field(None, description='Source schema name.')
sourceTable: Optional[str] = Field(None, description='Source table name.')
tableEngine: Optional[TableEngine] = Field(
None, description='Table engine to use for the target table.'
)
targetTable: Optional[str] = Field(None, description='Target table name.')
class ClickPipePatchPostgresPipeSettings(BaseModel):
pullBatchSize: Optional[float] = Field(
None, description='Number of rows to pull in each batch.'
)
syncIntervalSeconds: Optional[float] = Field(
None, description='Interval in seconds to sync data from Postgres.'
)
class Authentication8(Enum):
PLAIN = 'PLAIN'
SCRAM_SHA_256 = 'SCRAM-SHA-256'
SCRAM_SHA_512 = 'SCRAM-SHA-512'
IAM_ROLE = 'IAM_ROLE'
IAM_USER = 'IAM_USER'
MUTUAL_TLS = 'MUTUAL_TLS'
class Format3(Enum):
JSONEachRow = 'JSONEachRow'
Avro = 'Avro'
AvroConfluent = 'AvroConfluent'
class Type5(Enum):
kafka = 'kafka'
redpanda = 'redpanda'
msk = 'msk'
confluent = 'confluent'
warpstream = 'warpstream'
azureeventhub = 'azureeventhub'
dokafka = 'dokafka'
class Authentication9(Enum):
IAM_ROLE = 'IAM_ROLE'
IAM_USER = 'IAM_USER'
class Format5(Enum):
JSONEachRow = 'JSONEachRow'
CSV = 'CSV'
CSVWithNames = 'CSVWithNames'
Parquet = 'Parquet'
Avro = 'Avro'
class Type6(Enum):
s3 = 's3'
gcs = 'gcs'
dospaces = 'dospaces'
class ReplicationMode(Enum):
cdc = 'cdc'
snapshot = 'snapshot'
cdc_only = 'cdc_only'
class ClickPipePostgresPipeSettings(BaseModel):
allowNullableColumns: Optional[bool] = Field(
None, description='Allow nullable columns in the destination table.'
)
initialLoadParallelism: Optional[float] = Field(
None, description='Number of parallel tables to sync during initial load.'
)
publicationName: Optional[str] = Field(
None, description='Publication name to use for replication.'
)
pullBatchSize: Optional[float] = Field(
None, description='Number of rows to pull in each batch.'
)
replicationMode: Optional[ReplicationMode] = Field(
None, description='Replication mode to use for the pipe.'
)
replicationSlotName: Optional[str] = Field(
None, description='Replication slot name to use for replication.'
)
snapshotNumRowsPerPartition: Optional[float] = Field(
None, description='Number of rows to snapshot per partition.'
)
snapshotNumberOfParallelTables: Optional[float] = Field(
None, description='Number of parallel tables to snapshot.'
)
syncIntervalSeconds: Optional[float] = Field(
None, description='Interval in seconds to sync data from Postgres.'
)
class ClickPipePostgresPipeTableMapping(BaseModel):
excludedColumns: Optional[List[str]] = Field(
None, description='Columns to exclude from the target table.'
)
sortingKeys: Optional[List[str]] = Field(
None,
description='Ordered list of columns to use as sorting key for the target table.',
)
sourceSchemaName: Optional[str] = Field(None, description='Source schema name.')
sourceTable: Optional[str] = Field(None, description='Source table name.')
tableEngine: Optional[TableEngine] = Field(
None, description='Table engine to use for the target table.'
)
targetTable: Optional[str] = Field(None, description='Target table name.')
useCustomSortingKey: Optional[bool] = Field(
None, description='Whether to use a custom sorting key for the target table.'
)
class ClickPipePostgresSource(BaseModel):
database: Optional[str] = Field(
None, description='Database of the Postgres instance to connect to.'
)
host: Optional[str] = Field(
None, description='Host of the Postgres instance to connect to.'
)
port: Optional[float] = Field(
None, description='Port of the Postgres instance to connect to.'
)
settings: Optional[ClickPipePostgresPipeSettings] = None
tableMappings: Optional[List[ClickPipePostgresPipeTableMapping]] = Field(
None, description='Table mappings for Postgres pipe.'
)
class ClickPipeScaling(BaseModel):
concurrency: Optional[int] = Field(
None,
description='Desired number of concurrency. Only for S3 pipes. If set to 0, concurrency is auto-scaled based on the cluster memory.',
)
replicas: Optional[int] = Field(
None, description='Desired number of replicas. Only for scalable pipes.'
)
class ClickPipeScalingPatchRequest(BaseModel):
replicas: Optional[conint(ge=1, le=10)] = Field(
None, description='Number of replicas to scale to. Use to scale Kafka pipes.'
)
class ClickPipeSource(BaseModel):
kafka: Optional[ClickPipeKafkaSource] = None
kinesis: Optional[ClickPipeKinesisSource] = None
objectStorage: Optional[ClickPipeObjectStorageSource] = None
postgres: Optional[ClickPipePostgresSource] = None
class Command(Enum):
start = 'start'
stop = 'stop'
resync = 'resync'
class ClickPipeStatePatchRequest(BaseModel):
command: Optional[Command] = Field(
None, description="Command to change the state: 'start', 'stop', 'resync'."
)
class MskAuthentication(Enum):
SASL_IAM = 'SASL_IAM'
SASL_SCRAM = 'SASL_SCRAM'
class Type7(Enum):
VPC_ENDPOINT_SERVICE = 'VPC_ENDPOINT_SERVICE'
VPC_RESOURCE = 'VPC_RESOURCE'
MSK_MULTI_VPC = 'MSK_MULTI_VPC'
class CreateReversePrivateEndpoint(BaseModel):
description: Optional[str] = Field(
None,
description='Reverse private endpoint description. Maximum length is 255 characters.',
examples=['My reverse private endpoint'],
)
mskAuthentication: Optional[MskAuthentication] = Field(
None,
description='MSK cluster authentication type. Required for MSK_MULTI_VPC type.',
examples=['SASL_IAM'],
)
mskClusterArn: Optional[str] = Field(
None,
description='MSK cluster ARN. Required for MSK_MULTI_VPC type.',
examples=['arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster'],
)
type: Optional[Type7] = Field(
None,
description='Reverse private endpoint type.',
examples=['VPC_ENDPOINT_SERVICE'],
)
vpcEndpointServiceName: Optional[str] = Field(
None,
description='VPC endpoint service name.',
examples=['com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567'],
)
vpcResourceConfigurationId: Optional[str] = Field(
None,
description='VPC resource configuration ID. Required for VPC_RESOURCE type.',
examples=['rcfg-12345678901234567'],
)
vpcResourceShareArn: Optional[str] = Field(
None,
description='VPC resource share ARN. Required for VPC_RESOURCE type.',
examples=[
'arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567'
],
)
class BucketProvider8(Enum):
GCP = 'GCP'
class GcpBackupBucket(BaseModel):
accessKeyId: Optional[str] = Field(None, description='Access Key ID (HMAC key)')
bucketPath: Optional[str] = Field(None, description='Bucket path')
bucketProvider: Optional[BucketProvider8] = Field(
None, description='Bucket provider'
)
id: Optional[UUID] = Field(None, description='Unique backup bucket ID')
class GcpBackupBucketPatchRequestV1(BaseModel):
accessKeyId: Optional[str] = Field(None, description='Access Key ID (HMAC key)')
bucketPath: Optional[str] = Field(None, description='Bucket path')
bucketProvider: Optional[BucketProvider8] = Field(
None, description='Bucket provider'
)
secretAccessKey: Optional[str] = Field(
None, description='Secret Access Key (HMAC secret key)'
)
class GcpBackupBucketPostRequestV1(BaseModel):
accessKeyId: Optional[str] = Field(None, description='Access Key ID (HMAC key)')
bucketPath: Optional[str] = Field(None, description='Bucket path')
bucketProvider: Optional[BucketProvider8] = Field(
None, description='Bucket provider'
)
secretAccessKey: Optional[str] = Field(
None, description='Secret Access Key (HMAC secret key)'
)
class GcpBackupBucketProperties(BaseModel):
accessKeyId: Optional[str] = Field(None, description='Access Key ID (HMAC key)')
bucketPath: Optional[str] = Field(None, description='Bucket path')
bucketProvider: Optional[BucketProvider8] = Field(
None, description='Bucket provider'
)
class Region(Enum):
ap_south_1 = 'ap-south-1'
ap_southeast_1 = 'ap-southeast-1'
eu_central_1 = 'eu-central-1'
eu_west_1 = 'eu-west-1'
eu_west_2 = 'eu-west-2'
us_east_1 = 'us-east-1'
us_east_2 = 'us-east-2'
us_west_2 = 'us-west-2'
ap_southeast_2 = 'ap-southeast-2'
ap_northeast_1 = 'ap-northeast-1'
me_central_1 = 'me-central-1'
us_east1 = 'us-east1'
us_central1 = 'us-central1'
europe_west4 = 'europe-west4'
asia_southeast1 = 'asia-southeast1'
eastus = 'eastus'
eastus2 = 'eastus2'
westus3 = 'westus3'
germanywestcentral = 'germanywestcentral'
class InstancePrivateEndpoint(BaseModel):
cloudProvider: Optional[CloudProvider] = Field(
None, description='Cloud provider in which the private endpoint is lcoated'
)
description: Optional[str] = Field(
None, description='Description of private endpoint'
)
id: Optional[str] = Field(None, description='Private endpoint identifier')
region: Optional[Region] = Field(
None, description='Region in which the private endpoint is located'
)
class InstancePrivateEndpointsPatch(BaseModel):
add: Optional[List[str]] = Field(
None, description='Elements to add. Executed after "remove" part is processed.'
)
remove: Optional[List[str]] = Field(
None, description='Elements to remove. Executed before "add" part is processed.'
)
class Role3(Enum):
sql_console_read_only = 'sql_console_read_only'
sql_console_admin = 'sql_console_admin'
class InstanceServiceQueryApiEndpointsPostRequest(BaseModel):
allowedOrigins: Optional[str] = Field(
None, description='The allowed origins as comma separated list of domains'
)
openApiKeys: Optional[List[str]] = Field(
None, description='The version of the service query endpoint'
)
roles: Optional[List[Role3]] = Field(None, description='The roles')
class Role4(Enum):
admin = 'admin'
developer = 'developer'
class Invitation(BaseModel):
createdAt: Optional[datetime] = Field(
None, description='Invitation creation timestamp. ISO-8601.'
)
email: Optional[EmailStr] = Field(
None,
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.',
)
expireAt: Optional[datetime] = Field(
None, description='Timestamp the invitation expires. ISO-8601.'
)
id: Optional[UUID] = Field(None, description='Unique invitation ID.')
role: Optional[Role4] = Field(
None, description='Role of the member in the organization.'
)
class InvitationPostRequest(BaseModel):
email: Optional[EmailStr] = Field(
None,
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.',
)
role: Optional[Role4] = Field(
None, description='Role of the member in the organization.'
)
class IpAccessListEntry(BaseModel):
description: Optional[str] = Field(
None,
description='Optional description of IPv4 address or IPv4 CIDR to allow access from',
)
source: Optional[str] = Field(None, description='IP or CIDR')
class IpAccessListPatch(BaseModel):
add: Optional[List[IpAccessListEntry]] = Field(
None, description='Elements to add. Executed after "remove" part is processed.'
)
remove: Optional[List[IpAccessListEntry]] = Field(
None, description='Elements to remove. Executed before "add" part is processed.'
)
class MSKIAMUser(BaseModel):
accessKeyId: Optional[str] = Field(None, description='IAM access key ID.')
secretKey: Optional[str] = Field(None, description='IAM secret key.')
class Member(BaseModel):
email: Optional[EmailStr] = Field(
None, description='Email of the member as set in personal user profile.'
)
joinedAt: Optional[datetime] = Field(
None, description='Timestamp the member joined the organization. ISO-8601.'
)
name: Optional[str] = Field(
None, description='Name of the member as set a personal user profile.'
)
role: Optional[Role4] = Field(
None, description='Role of the member in the organization.'
)
userId: Optional[str] = Field(
None,
description='Unique user ID. If a user is a member in multiple organizations this ID will stay the same.',
)
class MemberPatchRequest(BaseModel):
role: Optional[Role4] = Field(
None, description='Role of the member in the organization.'
)
class OrganizationCloudRegionPrivateEndpointConfig(BaseModel):
endpointServiceId: Optional[str] = Field(
None,
description='Unique identifier of the interface endpoint you created in your VPC with the AWS(Service Name) or GCP(Target Service) resource',
)
class OrganizationPatchPrivateEndpoint(BaseModel):
cloudProvider: Optional[CloudProvider] = Field(
None, description='Cloud provider in which the private endpoint is lcoated'
)
description: Optional[str] = Field(
None, description='Optional description of private endpoint'
)
id: Optional[str] = Field(None, description='Private endpoint identifier')
region: Optional[Region] = Field(
None, description='Region in which the private endpoint is located'
)
class OrganizationPrivateEndpoint(BaseModel):
cloudProvider: Optional[CloudProvider] = Field(
None, description='Cloud provider in which the private endpoint is lcoated'
)
description: Optional[str] = Field(
None, description='Description of private endpoint'
)
id: Optional[str] = Field(None, description='Private endpoint identifier')
region: Optional[Region] = Field(
None, description='Region in which the private endpoint is located'
)
class OrganizationPrivateEndpointsPatch(BaseModel):
add: Optional[List[OrganizationPatchPrivateEndpoint]] = Field(
None,
description='Elements to add. Executed after "remove" part is processed. Please use the `Update Service Basic Details` endpoint instead to modify the private endpoints.',
)
remove: Optional[List[OrganizationPatchPrivateEndpoint]] = Field(
None, description='Elements to remove. Executed before "add" part is processed.'
)
class PLAIN(BaseModel):
password: Optional[str] = Field(None, description='Password.')
username: Optional[str] = Field(None, description='Username.')
class PrivateEndpointConfig(BaseModel):
endpointServiceId: Optional[str] = Field(
None,
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: Optional[str] = Field(
None, description='Private DNS Hostname of the VPC you created'
)
class Status1(Enum):
Unknown = 'Unknown'
Provisioning = 'Provisioning'
Deleting = 'Deleting'
Ready = 'Ready'
Failed = 'Failed'
PendingAcceptance = 'PendingAcceptance'
Rejected = 'Rejected'
Expired = 'Expired'
class ReversePrivateEndpoint(BaseModel):
description: Optional[str] = Field(
None,
description='Reverse private endpoint description. Maximum length is 255 characters.',
examples=['My reverse private endpoint'],
)
dnsNames: Optional[List[str]] = Field(
None, description='Reverse private endpoint internal DNS names.'
)
endpointId: Optional[str] = Field(
None,
description='Reverse private endpoint endpoint ID.',
examples=['vpce-12345678901234567'],
)
id: Optional[UUID] = Field(
None,
description='Reverse private endpoint ID.',
examples=['12345678-1234-1234-1234-123456789012'],
)
mskAuthentication: Optional[MskAuthentication] = Field(
None,
description='MSK cluster authentication type. Required for MSK_MULTI_VPC type.',
examples=['SASL_IAM'],
)
mskClusterArn: Optional[str] = Field(
None,
description='MSK cluster ARN. Required for MSK_MULTI_VPC type.',
examples=['arn:aws:kafka:us-east-1:123456789012:cluster/my-cluster'],
)
privateDnsNames: Optional[List[str]] = Field(
None, description='Reverse private endpoint private DNS names.'
)
serviceId: Optional[UUID] = Field(
None,
description='ClickHouse service ID reverse private endpoint is associated with.',
examples=['12345678-1234-1234-1234-123456789012'],
)
status: Optional[Status1] = Field(
None, description='Reverse private endpoint status.', examples=['Ready']
)
type: Optional[Type7] = Field(
None,
description='Reverse private endpoint type.',
examples=['VPC_ENDPOINT_SERVICE'],
)
vpcEndpointServiceName: Optional[str] = Field(
None,
description='VPC endpoint service name.',
examples=['com.amazonaws.vpce.us-east-1.vpce-svc-12345678901234567'],
)
vpcResourceConfigurationId: Optional[str] = Field(
None,
description='VPC resource configuration ID. Required for VPC_RESOURCE type.',
examples=['rcfg-12345678901234567'],
)
vpcResourceShareArn: Optional[str] = Field(
None,
description='VPC resource share ARN. Required for VPC_RESOURCE type.',
examples=[
'arn:aws:ram:us-east-1:123456789012:resource-share/share-12345678901234567'
],
)
class ServicPrivateEndpointePostRequest(BaseModel):
description: Optional[str] = Field(
None, description='Description of private endpoint'
)
id: Optional[str] = Field(None, description='Private endpoint identifier')
class Provider(Enum):
aws = 'aws'
gcp = 'gcp'
azure = 'azure'
class ReleaseChannel(Enum):
slow = 'slow'
default = 'default'
fast = 'fast'
class State4(Enum):
starting = 'starting'
stopping = 'stopping'
terminating = 'terminating'
awaking = 'awaking'
partially_running = 'partially_running'
provisioning = 'provisioning'
running = 'running'
stopped = 'stopped'
terminated = 'terminated'
degraded = 'degraded'
failed = 'failed'
idle = 'idle'
class Tier(Enum):
development = 'development'
production = 'production'
dedicated_high_mem = 'dedicated_high_mem'
dedicated_high_cpu = 'dedicated_high_cpu'
dedicated_standard = 'dedicated_standard'
dedicated_standard_n2d_standard_4 = 'dedicated_standard_n2d_standard_4'
dedicated_standard_n2d_standard_8 = 'dedicated_standard_n2d_standard_8'
dedicated_standard_n2d_standard_32 = 'dedicated_standard_n2d_standard_32'
dedicated_standard_n2d_standard_128 = 'dedicated_standard_n2d_standard_128'
dedicated_standard_n2d_standard_32_16SSD = (
'dedicated_standard_n2d_standard_32_16SSD'
)
dedicated_standard_n2d_standard_64_24SSD = (
'dedicated_standard_n2d_standard_64_24SSD'
)
class Protocol(Enum):
https = 'https'
nativesecure = 'nativesecure'
mysql = 'mysql'
class ServiceEndpoint(BaseModel):
host: Optional[str] = Field(None, description='Service host name')
port: Optional[float] = Field(None, description='Numeric port')
protocol: Optional[Protocol] = Field(
None,
description="Endpoint protocol: 'https', 'nativesecure', 'mysql'.",
examples=['mysql'],
)
username: Optional[str] = Field(
None, description='Optional username for the endpoint'
)
class Protocol1(Enum):
mysql = 'mysql'
class ServiceEndpointChange(BaseModel):
enabled: Optional[bool] = Field(None, description='Enable or disable the endpoint')
protocol: Optional[Protocol1] = Field(
None, description='Endpoint protocol', examples=['mysql']
)
class ServicePasswordPatchRequest(BaseModel):
newDoubleSha1Hash: Optional[str] = Field(
None,
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 \'-\'',
)
newPasswordHash: Optional[str] = Field(
None,
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',
)
class ServicePasswordPatchResponse(BaseModel):
password: Optional[str] = Field(
None,
description="New service password. Provided only if there was no 'newPasswordHash' in the request",
)
class ServicePatchRequest(BaseModel):
endpoints: Optional[List[ServiceEndpointChange]] = Field(
None, description='List of service endpoints to change'
)
ipAccessList: Optional[IpAccessListPatch] = None
name: Optional[str] = Field(
None,
description='Name of the service. Alphanumerical string with whitespaces up to 50 characters.',
)
privateEndpointIds: Optional[InstancePrivateEndpointsPatch] = None
releaseChannel: Optional[ReleaseChannel] = Field(
None,
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. Select slow if you would like to defer releases to give yourself more time to test. This feature is only available for production services. default is the regular release channel.",
)
transparentDataEncryptionKeyId: Optional[str] = Field(
None, description='The id of the key to rotate'
)
class ServicePostRequest(BaseModel):
backupId: Optional[UUID] = Field(
None,
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.',
)
byocId: Optional[str] = Field(
None,
description='This is the ID returned after setting up a region for Bring Your Own Cloud (BYOC). When the byocId parameter is specified, the minReplicaMemoryGb and the maxReplicaGb parameters are required too, with values included among the following sizes: 48, 116, 172, 232.',
)
dataWarehouseId: Optional[str] = Field(
None, description='Data warehouse containing this service'
)
encryptionAssumedRoleIdentifier: Optional[str] = Field(
None, description='Optional role to use for disk encryption'
)
encryptionKey: Optional[str] = Field(
None, description='Optional customer provided disk encryption key'
)
endpoints: Optional[List[ServiceEndpointChange]] = Field(
None, description='List of service endpoints to enable or disable'
)
hasTransparentDataEncryption: Optional[bool] = Field(
None,
description='True if the service should have the Transparent Data Encryption (TDE) enabled. TDE is only available for ENTERPRISE organizations tiers and can only be enabled at service creation.',
)
idleScaling: Optional[bool] = Field(
None,
description='When set to true the service is allowed to scale down to zero when idle. True by default.',
)
idleTimeoutMinutes: Optional[float] = Field(
None,
description='Set minimum idling timeout (in minutes). Must be >= 5 minutes.',
)
ipAccessList: Optional[List[IpAccessListEntry]] = Field(
None, description='List of IP addresses allowed to access the service'
)
isReadonly: Optional[bool] = Field(
None,
description='True if this service is read-only. It can only be read-only if a dataWarehouseId is provided.',
)
maxReplicaMemoryGb: Optional[confloat(ge=8.0, le=356.0, multiple_of=4.0)] = Field(
None,
description='Maximum total memory of each replica during auto-scaling in Gb. Must be a multiple of 4 and lower than or equal to 120* for non paid services or 356* for paid services.* - maximum replica size subject to cloud provider hardware availability in your selected region. ',
examples=[120],
)
maxTotalMemoryGb: Optional[confloat(ge=24.0, le=1068.0, multiple_of=12.0)] = Field(
None,
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 1068 for paid services.",
examples=[360],
)
minReplicaMemoryGb: Optional[confloat(ge=8.0, le=356.0, multiple_of=4.0)] = Field(
None,
description='Minimum total memory of each replica during auto-scaling in Gb. Must be a multiple of 4 and greater than or equal to 8.',
examples=[16],
)
minTotalMemoryGb: Optional[confloat(ge=24.0, le=1068.0, multiple_of=12.0)] = Field(
None,
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.",
examples=[48],
)
name: Optional[str] = Field(
None,
description='Name of the service. Alphanumerical string with whitespaces up to 50 characters.',
)
numReplicas: Optional[confloat(ge=1.0, le=20.0)] = Field(
None,
description="Number of replicas for the service. The number of replicas must be between 2 and 20 for the first service in a warehouse. Services that are created in an existing warehouse can have a number of replicas as low as 1. Further restrictions may apply based on your organization's tier. It defaults to 1 for the BASIC tier and 3 for the SCALE and ENTERPRISE tiers.",
examples=[3],
)
privateEndpointIds: Optional[List[str]] = Field(
None,
description='To associate the service with private endpoints, first create the service, then use the `Update Service Basic Details` endpoint to modify private endpoints.',
)
privatePreviewTermsChecked: Optional[bool] = Field(
None,
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',
)
provider: Optional[Provider] = Field(None, description='Cloud provider')
region: Optional[Region] = Field(None, description='Service region.')
releaseChannel: Optional[ReleaseChannel] = Field(
None,
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. Select slow if you would like to defer releases to give yourself more time to test. This feature is only available for production services. default is the regular release channel.",
)
tier: Optional[Tier] = Field(
None,
description="DEPRECATED for BASIC, SCALE and ENTERPRISE organization tiers. 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', 'dedicated_standard_n2d_standard_32_16SSD', 'dedicated_standard_n2d_standard_64_24SSD'. Production services scale, Development are fixed size. Azure services don't support Development tier",
)
class Role8(Enum):
sql_console_read_only = 'sql_console_read_only'
sql_console_admin = 'sql_console_admin'
class ServiceQueryAPIEndpoint(BaseModel):
allowedOrigins: Optional[str] = Field(
None, description='The allowed origins as comma separated list of domains'
)
id: Optional[str] = Field(None, description='The id of the service query endpoint')
openApiKeys: Optional[List[str]] = Field(
None,
description='List of OpenAPI keys that can access the service query endpoint',
)
roles: Optional[List[Role8]] = Field(
None, description='List of roles that can access the service query endpoint'
)
class ServiceReplicaScalingPatchRequest(BaseModel):
idleScaling: Optional[bool] = Field(
None,
description='When set to true the service is allowed to scale down to zero when idle. True by default.',
)
idleTimeoutMinutes: Optional[float] = Field(
None,
description='Set minimum idling timeout (in minutes). Must be >= 5 minutes.',
)
maxReplicaMemoryGb: Optional[confloat(ge=8.0, le=356.0, multiple_of=4.0)] = Field(
None,
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 356 for paid services.",
examples=[120],
)
minReplicaMemoryGb: Optional[confloat(ge=8.0, le=356.0, multiple_of=4.0)] = Field(
None,
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.",
examples=[16],
)
numReplicas: Optional[confloat(ge=1.0, le=20.0)] = Field(
None,
description="Number of replicas for the service. The number of replicas must be between 2 and 20 for the first service in a warehouse. Services that are created in an existing warehouse can have a number of replicas as low as 1. Further restrictions may apply based on your organization's tier. It defaults to 1 for the BASIC tier and 3 for the SCALE and ENTERPRISE tiers.",
examples=[3],
)
class ServiceScalingPatchRequest(BaseModel):
idleScaling: Optional[bool] = Field(
None,
description='When set to true the service is allowed to scale down to zero when idle. True by default.',
)
idleTimeoutMinutes: Optional[float] = Field(
None,
description='Set minimum idling timeout (in minutes). Must be >= 5 minutes.',
)
maxTotalMemoryGb: Optional[confloat(ge=24.0, le=1068.0, multiple_of=12.0)] = Field(
None,
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 1068 for paid services.",
examples=[360],
)
minTotalMemoryGb: Optional[confloat(ge=24.0, le=1068.0, multiple_of=12.0)] = Field(
None,
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.",
examples=[48],
)
numReplicas: Optional[confloat(ge=1.0, le=20.0)] = Field(
None,
description="Number of replicas for the service. The number of replicas must be between 2 and 20 for the first service in a warehouse. Services that are created in an existing warehouse can have a number of replicas as low as 1. Further restrictions may apply based on your organization's tier. It defaults to 1 for the BASIC tier and 3 for the SCALE and ENTERPRISE tiers.",
examples=[3],
)
class ServiceScalingPatchResponse(BaseModel):
availablePrivateEndpointIds: Optional[List[str]] = Field(
None,
description='List of available private endpoints ids that can be attached to the service',
)
byocId: Optional[str] = Field(
None,
description='This is the ID returned after setting up a region for Bring Your Own Cloud (BYOC). When the byocId parameter is specified, the minReplicaMemoryGb and the maxReplicaGb parameters are required too, with values included among the following sizes: 48, 116, 172, 232.',
)
clickhouseVersion: Optional[str] = Field(
None, description='ClickHouse version of the service.'
)
createdAt: Optional[datetime] = Field(
None, description='Service creation timestamp. ISO-8601.'
)
dataWarehouseId: Optional[str] = Field(
None, description='Data warehouse containing this service'
)
encryptionAssumedRoleIdentifier: Optional[str] = Field(
None, description='Optional role to use for disk encryption'
)
encryptionKey: Optional[str] = Field(
None, description='Optional customer provided disk encryption key'
)
encryptionRoleId: Optional[str] = Field(
None,
description='The ID of the IAM role used for encryption. This is only available if hasTransparentDataEncryption is true.',
)
endpoints: Optional[List[ServiceEndpoint]] = Field(
None, description='List of all service endpoints.'
)
hasTransparentDataEncryption: Optional[bool] = Field(
None,
description='True if the service should have the Transparent Data Encryption (TDE) enabled. TDE is only available for ENTERPRISE organizations tiers and can only be enabled at service creation.',
)
iamRole: Optional[str] = Field(
None, description='IAM role used for accessing objects in s3'
)
id: Optional[UUID] = Field(None, description='Unique service ID.')
idleScaling: Optional[bool] = Field(
None,
description='When set to true the service is allowed to scale down to zero when idle. True by default.',
)
idleTimeoutMinutes: Optional[float] = Field(
None,
description='Set minimum idling timeout (in minutes). Must be >= 5 minutes.',
)
ipAccessList: Optional[List[IpAccessListEntry]] = Field(
None, description='List of IP addresses allowed to access the service'
)
isPrimary: Optional[bool] = Field(
None,
description='True if this service is the primary service in the data warehouse',
)
isReadonly: Optional[bool] = Field(
None,
description='True if this service is read-only. It can only be read-only if a dataWarehouseId is provided.',
)
maxReplicaMemoryGb: Optional[confloat(ge=8.0, le=356.0, multiple_of=4.0)] = Field(
None,
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 356 for paid services.",
examples=[120],
)
maxTotalMemoryGb: Optional[confloat(ge=24.0, le=1068.0, multiple_of=12.0)] = Field(
None,
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 1068 for paid services.",
examples=[360],
)
minReplicaMemoryGb: Optional[confloat(ge=8.0, le=356.0, multiple_of=4.0)] = Field(
None,
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.",
examples=[16],
)
minTotalMemoryGb: Optional[confloat(ge=24.0, le=1068.0, multiple_of=12.0)] = Field(
None,
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.",
examples=[48],
)
name: Optional[str] = Field(
None,
description='Name of the service. Alphanumerical string with whitespaces up to 50 characters.',
)
numReplicas: Optional[confloat(ge=1.0, le=20.0)] = Field(
None,
description="Number of replicas for the service. The number of replicas must be between 2 and 20 for the first service in a warehouse. Services that are created in an existing warehouse can have a number of replicas as low as 1. Further restrictions may apply based on your organization's tier. It defaults to 1 for the BASIC tier and 3 for the SCALE and ENTERPRISE tiers.",
examples=[3],
)
privateEndpointIds: Optional[List[str]] = Field(
None, description='List of private endpoints'
)
provider: Optional[Provider] = Field(None, description='Cloud provider')
region: Optional[Region] = Field(None, description='Service region.')
releaseChannel: Optional[ReleaseChannel] = Field(
None,
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. Select slow if you would like to defer releases to give yourself more time to test. This feature is only available for production services. default is the regular release channel.",
)
state: Optional[State4] = Field(None, description='Current state of the service.')
tier: Optional[Tier] = Field(
None,
description="DEPRECATED for BASIC, SCALE and ENTERPRISE organization tiers. 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', 'dedicated_standard_n2d_standard_32_16SSD', 'dedicated_standard_n2d_standard_64_24SSD'. Production services scale, Development are fixed size. Azure services don't support Development tier",
)
transparentDataEncryptionKeyId: Optional[str] = Field(
None,
description='The ID of the Transparent Data Encryption key used for the service. This is only available if hasTransparentDataEncryption is true.',
)
class Command1(Enum):
start = 'start'
stop = 'stop'
class ServiceStatePatchRequest(BaseModel):
command: Optional[Command1] = Field(
None, description="Command to change the state: 'start', 'stop'."
)
class UsageCostMetrics(BaseModel):
backupCHC: Optional[float] = Field(
None,
description='Cost of backup in ClickHouse Credits (CHCs). Applies to dataWarehouse entities.',
)
computeCHC: Optional[float] = Field(
None,
description='Cost of compute in ClickHouse Credits (CHCs). Applies to service and clickpipe entities.',
)
dataTransferCHC: Optional[float] = Field(
None,
description='Cost of data transfer in ClickHouse Credits (CHCs). Applies to clickpipe entities.',
)
interRegionTier1DataTransferCHC: Optional[float] = Field(
None,
description='Cost of tier1 inter-region data transfer in ClickHouse Credits (CHCs). Applies to service entities.',
)
interRegionTier2DataTransferCHC: Optional[float] = Field(
None,
description='Cost of tier2 inter-region data transfer in ClickHouse Credits (CHCs). Applies to service entities.',
)
interRegionTier3DataTransferCHC: Optional[float] = Field(
None,
description='Cost of tier3 inter-region data transfer in ClickHouse Credits (CHCs). Applies to service entities.',
)
interRegionTier4DataTransferCHC: Optional[float] = Field(
None,
description='Cost of tier4 inter-region data transfer in ClickHouse Credits (CHCs). Applies to service entities.',
)
publicDataTransferCHC: Optional[float] = Field(
None,
description='Cost of data transfer in ClickHouse Credits (CHCs). Applies to service entities.',
)
storageCHC: Optional[float] = Field(
None,
description='Cost of storage in ClickHouse Credits (CHCs). Applies to dataWarehouse entities.',
)
class EntityType(Enum):
datawarehouse = 'datawarehouse'
service = 'service'
clickpipe = 'clickpipe'
class UsageCostRecord(BaseModel):
dataWarehouseId: Optional[UUID] = Field(
None, description='ID of the dataWarehouse this entity belongs to (or is).'
)
date: Optional[date_aliased] = Field(
None, description='Date of the usage. ISO-8601 date, based on the UTC timezone.'
)
entityId: Optional[UUID] = Field(None, description='Unique ID of the entity.')
entityName: Optional[str] = Field(None, description='Name of the entity.')
entityType: Optional[EntityType] = Field(None, description='Type of the entity.')
locked: Optional[bool] = Field(
None,
description='When true, the record is immutable. Unlocked records are subject to change until locked.',
)
metrics: Optional[UsageCostMetrics] = None
serviceId: Optional[UUID] = Field(
None,
description='ID of the service this entity belongs to (or is). Set to null for dataWarehouse entities.',
)
totalCHC: Optional[float] = Field(
None,
description='Total cost of usage in ClickHouse Credits (CHCs) for this entity.',
)
class V1OrganizationsGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdPatchResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdActivitiesGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[List[Activity]] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdActivitiesGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdActivitiesActivityIdGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[Activity] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdActivitiesActivityIdGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdInvitationsGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[List[Invitation]] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdInvitationsGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdInvitationsPostResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[Invitation] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdInvitationsPostResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdInvitationsInvitationIdDeleteResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdInvitationsInvitationIdDeleteResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdInvitationsInvitationIdGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[Invitation] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdInvitationsInvitationIdGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdKeysGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdKeysPostResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdKeysKeyIdDeleteResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdKeysKeyIdDeleteResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdKeysKeyIdGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdKeysKeyIdPatchResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdMembersGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[List[Member]] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdMembersGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdMembersUserIdDeleteResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdMembersUserIdDeleteResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdMembersUserIdGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[Member] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdMembersUserIdGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdMembersUserIdPatchResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[Member] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdMembersUserIdPatchResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdPrivateEndpointConfigGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[OrganizationCloudRegionPrivateEndpointConfig] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdPrivateEndpointConfigGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdPrometheusGetResponse(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesPostResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdDeleteResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdDeleteResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdPatchResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdBackupConfigurationGetResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[BackupConfiguration] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdBackupConfigurationGetResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdBackupConfigurationPatchResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[BackupConfiguration] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdBackupConfigurationPatchResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdBackupsGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdBackupsBackupIdGetResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesPostResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesClickPipeIdDeleteResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesClickPipeIdDeleteResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesClickPipeIdGetResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesClickPipeIdPatchResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesClickPipeIdScalingPatchResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesClickPipeIdStatePatchResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesReversePrivateEndpointsGetResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[List[ReversePrivateEndpoint]] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesReversePrivateEndpointsGetResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesReversePrivateEndpointsPostResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ReversePrivateEndpoint] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesReversePrivateEndpointsPostResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesReversePrivateEndpointsReversePrivateEndpointIdDeleteResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesReversePrivateEndpointsReversePrivateEndpointIdDeleteResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesReversePrivateEndpointsReversePrivateEndpointIdGetResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ReversePrivateEndpoint] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesReversePrivateEndpointsReversePrivateEndpointIdGetResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdPasswordPatchResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ServicePasswordPatchResponse] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdPasswordPatchResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdPrivateEndpointPostResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[InstancePrivateEndpoint] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdPrivateEndpointPostResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdPrivateEndpointConfigGetResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[PrivateEndpointConfig] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdPrivateEndpointConfigGetResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdPrometheusGetResponse(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdReplicaScalingPatchResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ServiceScalingPatchResponse] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdReplicaScalingPatchResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdScalingPatchResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdServiceQueryEndpointDeleteResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdServiceQueryEndpointDeleteResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdServiceQueryEndpointGetResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ServiceQueryAPIEndpoint] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdServiceQueryEndpointGetResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdServiceQueryEndpointPostResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ServiceQueryAPIEndpoint] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdServiceQueryEndpointPostResponse1(
BaseModel
):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdServicesServiceIdStatePatchResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class V1OrganizationsOrganizationIdUsageCostGetResponse1(BaseModel):
error: Optional[str] = Field(None, description='Detailed error description.')
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[400]
)
class ApiKey(BaseModel):
createdAt: Optional[datetime] = Field(
None, description='Timestamp the key was created. ISO-8601.'
)
expireAt: Optional[datetime] = Field(
None,
description='Timestamp the key expires. If not present, `null` or is empty the key never expires. ISO-8601.',
)
id: Optional[UUID] = Field(None, description='Unique API key ID.')
ipAccessList: Optional[List[IpAccessListEntry]] = Field(
None,
description='List of IP addresses allowed to access the API using this key',
)
keySuffix: Optional[str] = Field(None, description='Last 4 letters of the key.')
name: Optional[str] = Field(None, description='Name of the key')
roles: Optional[List[Role]] = Field(
None,
description='List of roles assigned to the key. Contains at least 1 element.',
)
state: Optional[State] = Field(
None, description="State of the key: 'enabled', 'disabled'."
)
usedAt: Optional[datetime] = Field(
None,
description='Timestamp the key was used last time. If not present the key was never used. ISO-8601.',
)
class ApiKeyPatchRequest(BaseModel):
expireAt: Optional[datetime] = Field(
None,
description='Timestamp the key expires. If `null` or is empty the key never expires. ISO-8601.',
)
ipAccessList: Optional[List[IpAccessListEntry]] = Field(
None,
description='List of IP addresses allowed to access the API using this key',
)
name: Optional[str] = Field(None, description='Name of the key')
roles: Optional[List[Role]] = Field(
None,
description='List of roles assigned to the key. Contains at least 1 element.',
)
state: Optional[State] = Field(
None, description="State of the key: 'enabled', 'disabled'."
)
class ApiKeyPostRequest(BaseModel):
expireAt: Optional[datetime] = Field(
None,
description='Timestamp the key expires. If not present, `null` or is empty the key never expires. ISO-8601.',
)
hashData: Optional[ApiKeyHashData] = None
ipAccessList: Optional[List[IpAccessListEntry]] = Field(
None,
description='List of IP addresses allowed to access the API using this key',
)
name: Optional[str] = Field(None, description='Name of the key.')
roles: Optional[List[Role]] = Field(
None,
description='List of roles assigned to the key. Contains at least 1 element.',
)
state: Optional[State] = Field(
None,
description="Initial state of the key: 'enabled', 'disabled'. If not provided the new key will be 'enabled'.",
)
class ApiKeyPostResponse(BaseModel):
key: Optional[ApiKey] = None
keyId: Optional[str] = Field(
None,
description="Generated key ID. Provided only if there was no 'hashData' in the request.",
)
keySecret: Optional[str] = Field(
None,
description="Generated key secret. Provided only if there was no 'hashData' in the request.",
)
class Backup(BaseModel):
backupName: Optional[str] = Field(
None, description='Backup name on the external backup bucket.'
)
bucket: Optional[
Union[
AwsBackupBucketProperties,
GcpBackupBucketProperties,
AzureBackupBucketProperties,
]
] = Field(None, description='Backup bucket where the backup is stored.')
durationInSeconds: Optional[float] = Field(
None,
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.',
)
finishedAt: Optional[datetime] = Field(
None,
description='Backup finish timestamp. ISO-8601. Available only for finished backups',
)
id: Optional[UUID] = Field(None, description='Unique backup ID.')
serviceId: Optional[str] = Field(None, description='Name ')
sizeInBytes: Optional[float] = Field(
None, description='Size of the backup in bytes.'
)
startedAt: Optional[datetime] = Field(
None, description='Backup start timestamp. ISO-8601.'
)
status: Optional[Status] = Field(
None, description="Status of the backup: 'done', 'error', 'in_progress'."
)
type: Optional[Type1] = Field(
None, description='Backup type ("full" or "incremental").'
)
class BackupBucket(
RootModel[Union[AwsBackupBucket, GcpBackupBucket, AzureBackupBucket]]
):
root: Union[AwsBackupBucket, GcpBackupBucket, AzureBackupBucket]
class BackupBucketPatchRequest(
RootModel[
Union[
AwsBackupBucketPatchRequestV1,
GcpBackupBucketPatchRequestV1,
AzureBackupBucketPatchRequestV1,
]
]
):
root: Union[
AwsBackupBucketPatchRequestV1,
GcpBackupBucketPatchRequestV1,
AzureBackupBucketPatchRequestV1,
]
class BackupBucketPostRequest(
RootModel[
Union[
AwsBackupBucketPostRequestV1,
GcpBackupBucketPostRequestV1,
AzureBackupBucketPostRequestV1,
]
]
):
root: Union[
AwsBackupBucketPostRequestV1,
GcpBackupBucketPostRequestV1,
AzureBackupBucketPostRequestV1,
]
class BackupBucketProperties(
RootModel[
Union[
AwsBackupBucketProperties,
GcpBackupBucketProperties,
AzureBackupBucketProperties,
]
]
):
root: Union[
AwsBackupBucketProperties,
GcpBackupBucketProperties,
AzureBackupBucketProperties,
]
class ClickPipeDestinationTableDefinition(BaseModel):
engine: Optional[ClickPipeDestinationTableEngine] = None
partitionBy: Optional[str] = Field(
None, description='Partition key SQL expression.'
)
primaryKey: Optional[str] = Field(
None, description='Primary key of SQL expression.'
)
sortingKey: Optional[List[str]] = Field(
None, description='Sorting key of the destination table. List of columns.'
)
class ClickPipeMutateDestination(BaseModel):
columns: Optional[List[ClickPipeDestinationColumn]] = Field(
None,
description='Columns of the destination table. Required field for all pipe types except Postgres.',
)
database: Optional[str] = Field(None, description='Destination database.')
managedTable: Optional[bool] = Field(
None,
description='Is the table managed by ClickPipes? Required field for all pipe types except Postgres.',
)
roles: Optional[List[str]] = Field(
None,
description='ClickPipe will create a ClickHouse user with these roles. Add your custom roles here if required.',
)
table: Optional[str] = Field(
None,
description='Destination table. Required field for all pipe types except Postgres.',
)
tableDefinition: Optional[ClickPipeDestinationTableDefinition] = None
class ClickPipeMutatePostgresSource(BaseModel):
credentials: Optional[PLAIN] = None
database: Optional[str] = Field(
None, description='Database of the Postgres instance to connect to.'
)
host: Optional[str] = Field(
None, description='Host of the Postgres instance to connect to.'
)
port: Optional[float] = Field(
None, description='Port of the Postgres instance to connect to.'
)
settings: Optional[ClickPipePostgresPipeSettings] = None
tableMappings: Optional[List[ClickPipePostgresPipeTableMapping]] = Field(
None, description='Table mappings for Postgres pipe.'
)
class ClickPipePatchKafkaSource(BaseModel):
authentication: Optional[Authentication5] = Field(
None,
description='Authentication method of the Kafka source. Supported authentication methods: kafka: PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, MUTUAL_TLS, msk: SCRAM-SHA-512, IAM_ROLE, IAM_USER, MUTUAL_TLS, confluent: PLAIN, MUTUAL_TLS, warpstream: PLAIN, azureeventhub: PLAIN, redpanda: SCRAM-SHA-256, SCRAM-SHA-512, MUTUAL_TLS, dokafka: SCRAM-SHA-256, MUTUAL_TLS',
)
caCertificate: Optional[str] = Field(
None,
description="PEM encoded CA certificates to validate the broker's certificate.",
)
credentials: Optional[Union[PLAIN, MSKIAMUser, AzureEventHub]] = Field(
None,
description='Credentials for Kafka source. Chose one of that is supported by the authentication method.',
)
iamRole: Optional[str] = Field(
None,
description='IAM role for the Kafka source. Use with IAM role authentication. Read more in ClickPipes documentation: https://clickhouse.com/docs/en/integrations/clickpipes/kafka#iam',
examples=['arn:aws:iam::123456789012:role/MyRole'],
)
reversePrivateEndpointIds: Optional[List[str]] = Field(
None,
description='Reverse private endpoint UUIDs used for a secure private connection to the Kafka source.',
)
class ClickPipePatchKinesisSource(BaseModel):
accessKey: Optional[MSKIAMUser] = None
authentication: Optional[Authentication6] = Field(
None, description='Authentication method to use with the Kinesis stream.'
)
iamRole: Optional[str] = Field(
None,
description='IAM role to use for authentication. Required if IAM_ROLE is used.',
examples=['arn:aws:iam::123456789012:role/MyRole'],
)
class ClickPipePatchObjectStorageSource(BaseModel):
accessKey: Optional[MSKIAMUser] = None
authentication: Optional[Authentication6] = Field(
None,
description='Authentication method. If not provided, no authentication is used. It can be used to access public buckets.',
)
iamRole: Optional[str] = Field(
None,
description='IAM role to be used with IAM role authentication. Read more in ClickPipes documentation: https://clickhouse.com/docs/en/integrations/clickpipes/object-storage#authentication',
examples=['arn:aws:iam::123456789012:role/MyRole'],
)
class ClickPipePatchPostgresSource(BaseModel):
credentials: Optional[PLAIN] = None
database: Optional[str] = Field(
None, description='Database of the Postgres instance to connect to.'
)
host: Optional[str] = Field(
None, description='Host of the Postgres instance to connect to.'
)
port: Optional[float] = Field(
None, description='Port of the Postgres instance to connect to.'
)
settings: Optional[ClickPipePatchPostgresPipeSettings] = None
tableMappingsToAdd: Optional[List[ClickPipePostgresPipeTableMapping]] = Field(
None, description='Table mappings to add to Postgres pipe.'
)
tableMappingsToRemove: Optional[
List[ClickPipePatchPostgresPipeRemoveTableMapping]
] = Field(None, description='Table mappings to remove from Postgres pipe.')
class ClickPipePatchSource(BaseModel):
kafka: Optional[ClickPipePatchKafkaSource] = None
kinesis: Optional[ClickPipePatchKinesisSource] = None
objectStorage: Optional[ClickPipePatchObjectStorageSource] = None
postgres: Optional[ClickPipePatchPostgresSource] = None
validateSamples: Optional[bool] = Field(
None,
description='Validate data samples received from data source. It will validate the connection and data availability and correctness. If not enabled, only connection will be validated. This has no effect on Postgres pipes, they always only validate the connection and table definitions. This is experimental and can be removed in the future.',
)
class ClickPipePostKafkaSource(BaseModel):
authentication: Optional[Authentication8] = Field(
None,
description='Authentication method of the Kafka source. Supported authentication methods: kafka: PLAIN, SCRAM-SHA-256, SCRAM-SHA-512, MUTUAL_TLS, msk: SCRAM-SHA-512, IAM_ROLE, IAM_USER, MUTUAL_TLS, confluent: PLAIN, MUTUAL_TLS, warpstream: PLAIN, azureeventhub: PLAIN, redpanda: SCRAM-SHA-256, SCRAM-SHA-512, MUTUAL_TLS, dokafka: SCRAM-SHA-256, MUTUAL_TLS',
)
brokers: Optional[str] = Field(None, description='Brokers of the Kafka source.')
caCertificate: Optional[str] = Field(
None,
description="PEM encoded CA certificates to validate the broker's certificate.",
)
consumerGroup: Optional[str] = Field(
None,
description='Consumer group of the Kafka source. If not provided "clickpipes-<<ID>>" will be used.',
examples=['my-clickpipe-consumer-group'],
)
credentials: Optional[Union[PLAIN, MSKIAMUser, AzureEventHub]] = Field(
None,
description='Credentials for Kafka source. Chose one of that is supported by the authentication method.',
)
format: Optional[Format3] = Field(None, description='Format of the Kafka source.')
iamRole: Optional[str] = Field(
None,
description='IAM role for the Kafka source. Use with IAM role authentication. Read more in ClickPipes documentation: https://clickhouse.com/docs/en/integrations/clickpipes/kafka#iam',
examples=['arn:aws:iam::123456789012:role/MyRole'],
)
offset: Optional[ClickPipeKafkaOffset] = None
reversePrivateEndpointIds: Optional[List[str]] = Field(
None,
description='Reverse private endpoint UUIDs used for a secure private connection to the Kafka source.',
)
schemaRegistry: Optional[ClickPipeMutateKafkaSchemaRegistry] = None
topics: Optional[str] = Field(None, description='Topics of the Kafka source.')
type: Optional[Type5] = Field(None, description='Type of the Kafka source.')
class ClickPipePostKinesisSource(BaseModel):
accessKey: Optional[MSKIAMUser] = None
authentication: Optional[Authentication9] = Field(
None, description='Authentication method to use with the Kinesis stream.'
)
format: Optional[Format3] = Field(None, description='Format of the Kinesis stream.')
iamRole: Optional[str] = Field(
None,
description='IAM role to use for authentication. Required if IAM_ROLE is used.',
examples=['arn:aws:iam::123456789012:role/MyRole'],
)
iteratorType: Optional[IteratorType] = Field(
None,
description='Type of iterator to use when reading from the Kinesis stream. If AT_TIMESTAMP is used, the timestamp field must be provided.',
)
region: Optional[str] = Field(
None, description='AWS region of the Kinesis stream.', examples=['us-east-1']
)
streamName: Optional[str] = Field(
None, description='Name of the Kinesis stream.', examples=['my-stream']
)
timestamp: Optional[int] = Field(
None,
description='UNIX timestamp to start reading from the Kinesis stream. Required if iteratorType is AT_TIMESTAMP.',
examples=[1615766400],
)
useEnhancedFanOut: Optional[bool] = Field(
None, description='Use enhanced fan-out for the Kinesis stream.'
)
class ClickPipePostObjectStorageSource(BaseModel):
accessKey: Optional[MSKIAMUser] = None
authentication: Optional[Authentication9] = Field(
None,
description='Authentication method. If not provided, no authentication is used. It can be used to access public buckets.',
)
compression: Optional[Compression] = Field(
None, description='Compression algorithm used for the files.', examples=['auto']
)
delimiter: Optional[str] = Field(
None, description='Delimiter used in the files.', examples=[',']
)
format: Optional[Format5] = Field(None, description='Format of the files.')
iamRole: Optional[str] = Field(
None,
description='IAM role to be used with IAM role authentication. Read more in ClickPipes documentation: https://clickhouse.com/docs/en/integrations/clickpipes/object-storage#authentication',
examples=['arn:aws:iam::123456789012:role/MyRole'],
)
isContinuous: Optional[bool] = Field(
None,
description='If set to true, the pipe will continuously read new files from the source. If set to false, the pipe will read the files only once. New files have to be uploaded lexically order.',
)
type: Optional[Type6] = Field(None, description='Type of the ObjectStorage source.')
url: Optional[str] = Field(
None,
description='Provide a path to the file(s) you want to ingest. You can specify multiple files using bash-like wildcards. For more information, see the documentation on using wildcards in path: https://clickhouse.com/docs/en/integrations/clickpipes/object-storage#limitations',
examples=[
'https://datasets-documentation.s3.eu-west-3.amazonaws.com/http/**.ndjson.gz'
],
)
class ClickPipePostSource(BaseModel):
kafka: Optional[ClickPipePostKafkaSource] = None
kinesis: Optional[ClickPipePostKinesisSource] = None
objectStorage: Optional[ClickPipePostObjectStorageSource] = None
postgres: Optional[ClickPipeMutatePostgresSource] = None
validateSamples: Optional[bool] = Field(
None,
description='Validate data samples received from data source. It will validate the connection and data availability and correctness. If not enabled, only connection will be validated. This has no effect on Postgres pipes, they always only validate the connection and table definitions. This is experimental and can be removed in the future.',
)
class Organization(BaseModel):
byocConfig: Optional[List[ByocConfig]] = Field(
None, description='BYOC configuration for the organization'
)
createdAt: Optional[datetime] = Field(
None, description='The timestamp the organization was created. ISO-8601.'
)
id: Optional[UUID] = Field(None, description='Unique organization ID.')
name: Optional[str] = Field(None, description='Name of the organization.')
privateEndpoints: Optional[List[OrganizationPrivateEndpoint]] = Field(
None, description='List of private endpoints for organization'
)
class OrganizationPatchRequest(BaseModel):
name: Optional[str] = Field(None, description='Name of the organization.')
privateEndpoints: Optional[OrganizationPrivateEndpointsPatch] = None
class Service(BaseModel):
availablePrivateEndpointIds: Optional[List[str]] = Field(
None,
description='List of available private endpoints ids that can be attached to the service',
)
byocId: Optional[str] = Field(
None,
description='This is the ID returned after setting up a region for Bring Your Own Cloud (BYOC). When the byocId parameter is specified, the minReplicaMemoryGb and the maxReplicaGb parameters are required too, with values included among the following sizes: 48, 116, 172, 232.',
)
clickhouseVersion: Optional[str] = Field(
None, description='ClickHouse version of the service.'
)
createdAt: Optional[datetime] = Field(
None, description='Service creation timestamp. ISO-8601.'
)
dataWarehouseId: Optional[str] = Field(
None, description='Data warehouse containing this service'
)
encryptionAssumedRoleIdentifier: Optional[str] = Field(
None, description='Optional role to use for disk encryption'
)
encryptionKey: Optional[str] = Field(
None, description='Optional customer provided disk encryption key'
)
encryptionRoleId: Optional[str] = Field(
None,
description='The ID of the IAM role used for encryption. This is only available if hasTransparentDataEncryption is true.',
)
endpoints: Optional[List[ServiceEndpoint]] = Field(
None, description='List of all service endpoints.'
)
hasTransparentDataEncryption: Optional[bool] = Field(
None,
description='True if the service should have the Transparent Data Encryption (TDE) enabled. TDE is only available for ENTERPRISE organizations tiers and can only be enabled at service creation.',
)
iamRole: Optional[str] = Field(
None, description='IAM role used for accessing objects in s3'
)
id: Optional[UUID] = Field(None, description='Unique service ID.')
idleScaling: Optional[bool] = Field(
None,
description='When set to true the service is allowed to scale down to zero when idle. True by default.',
)
idleTimeoutMinutes: Optional[float] = Field(
None,
description='Set minimum idling timeout (in minutes). Must be >= 5 minutes.',
)
ipAccessList: Optional[List[IpAccessListEntry]] = Field(
None, description='List of IP addresses allowed to access the service'
)
isPrimary: Optional[bool] = Field(
None,
description='True if this service is the primary service in the data warehouse',
)
isReadonly: Optional[bool] = Field(
None,
description='True if this service is read-only. It can only be read-only if a dataWarehouseId is provided.',
)
maxReplicaMemoryGb: Optional[confloat(ge=8.0, le=356.0, multiple_of=4.0)] = Field(
None,
description='Maximum total memory of each replica during auto-scaling in Gb. Must be a multiple of 4 and lower than or equal to 120* for non paid services or 356* for paid services.* - maximum replica size subject to cloud provider hardware availability in your selected region. ',
examples=[120],
)
maxTotalMemoryGb: Optional[confloat(ge=24.0, le=1068.0, multiple_of=12.0)] = Field(
None,
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 1068 for paid services.",
examples=[360],
)
minReplicaMemoryGb: Optional[confloat(ge=8.0, le=356.0, multiple_of=4.0)] = Field(
None,
description='Minimum total memory of each replica during auto-scaling in Gb. Must be a multiple of 4 and greater than or equal to 8.',
examples=[16],
)
minTotalMemoryGb: Optional[confloat(ge=24.0, le=1068.0, multiple_of=12.0)] = Field(
None,
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.",
examples=[48],
)
name: Optional[str] = Field(
None,
description='Name of the service. Alphanumerical string with whitespaces up to 50 characters.',
)
numReplicas: Optional[confloat(ge=1.0, le=20.0)] = Field(
None,
description="Number of replicas for the service. The number of replicas must be between 2 and 20 for the first service in a warehouse. Services that are created in an existing warehouse can have a number of replicas as low as 1. Further restrictions may apply based on your organization's tier. It defaults to 1 for the BASIC tier and 3 for the SCALE and ENTERPRISE tiers.",
examples=[3],
)
privateEndpointIds: Optional[List[str]] = Field(
None, description='List of private endpoints'
)
provider: Optional[Provider] = Field(None, description='Cloud provider')
region: Optional[Region] = Field(None, description='Service region.')
releaseChannel: Optional[ReleaseChannel] = Field(
None,
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. Select slow if you would like to defer releases to give yourself more time to test. This feature is only available for production services. default is the regular release channel.",
)
state: Optional[State4] = Field(None, description='Current state of the service.')
tier: Optional[Tier] = Field(
None,
description="DEPRECATED for BASIC, SCALE and ENTERPRISE organization tiers. 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', 'dedicated_standard_n2d_standard_32_16SSD', 'dedicated_standard_n2d_standard_64_24SSD'. Production services scale, Development are fixed size. Azure services don't support Development tier",
)
transparentDataEncryptionKeyId: Optional[str] = Field(
None,
description='The ID of the Transparent Data Encryption key used for the service. This is only available if hasTransparentDataEncryption is true.',
)
class ServicePostResponse(BaseModel):
password: Optional[str] = Field(
None, description='Password for the newly created service.'
)
service: Optional[Service] = None
class UsageCost(BaseModel):
costs: Optional[UsageCostRecord] = None
grandTotalCHC: Optional[float] = Field(
None, description='Grand total cost of usage in ClickHouse Credits (CHCs).'
)
class V1OrganizationsGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[List[Organization]] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[Organization] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdPatchResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[Organization] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdKeysGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[List[ApiKey]] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdKeysPostResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ApiKeyPostResponse] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdKeysKeyIdGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ApiKey] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdKeysKeyIdPatchResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ApiKey] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[List[Service]] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesPostResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ServicePostResponse] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[Service] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdPatchResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[Service] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdBackupsGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[List[Backup]] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdBackupsBackupIdGetResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[Backup] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdScalingPatchResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[Service] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdStatePatchResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[Service] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdUsageCostGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[UsageCost] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class ClickPipeDestination(BaseModel):
columns: Optional[List[ClickPipeDestinationColumn]] = Field(
None,
description='Columns of the destination table. Required field for all pipe types except Postgres.',
)
database: Optional[str] = Field(None, description='Destination database.')
managedTable: Optional[bool] = Field(
None,
description='Is the table managed by ClickPipes? Required field for all pipe types except Postgres.',
)
table: Optional[str] = Field(
None,
description='Destination table. Required field for all pipe types except Postgres.',
)
tableDefinition: Optional[ClickPipeDestinationTableDefinition] = None
class ClickPipePatchRequest(BaseModel):
description: Optional[str] = Field(
None, description='Description of the ClickPipe.'
)
destination: Optional[ClickPipePatchDestination] = None
fieldMappings: Optional[List[ClickPipeFieldMapping]] = Field(
None,
description='Field mappings of the ClickPipe. This will not update the table schema, only the ClickPipe configuration.',
)
name: Optional[str] = Field(None, description='Name of the ClickPipe.')
source: Optional[ClickPipePatchSource] = None
class ClickPipePostRequest(BaseModel):
description: Optional[str] = Field(
None, description='Description of the ClickPipe.'
)
destination: Optional[ClickPipeMutateDestination] = None
fieldMappings: Optional[List[ClickPipeFieldMapping]] = Field(
None, description='Field mappings of the ClickPipe.'
)
name: Optional[str] = Field(None, description='Name of the ClickPipe.')
source: Optional[ClickPipePostSource] = None
class ClickPipe(BaseModel):
createdAt: Optional[str] = Field(
None, description='Creation date of the ClickPipe.'
)
description: Optional[str] = Field(
None, description='Description of the ClickPipe.'
)
destination: Optional[ClickPipeDestination] = None
fieldMappings: Optional[List[ClickPipeFieldMapping]] = Field(
None, description='Field mappings of the ClickPipe.'
)
id: Optional[UUID] = Field(None, description='Unique ClickPipe ID.')
name: Optional[str] = Field(None, description='Name of the ClickPipe.')
scaling: Optional[ClickPipeScaling] = None
serviceId: Optional[UUID] = Field(
None, description='ID of the service this ClickPipe belongs to.'
)
source: Optional[ClickPipeSource] = None
state: Optional[str] = Field(None, description='Current state of the ClickPipe.')
updatedAt: Optional[str] = Field(
None, description='Last update date of the ClickPipe.'
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesGetResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[List[ClickPipe]] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesPostResponse(BaseModel):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ClickPipe] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesClickPipeIdGetResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ClickPipe] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesClickPipeIdPatchResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ClickPipe] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesClickPipeIdScalingPatchResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ClickPipe] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)
class V1OrganizationsOrganizationIdServicesServiceIdClickpipesClickPipeIdStatePatchResponse(
BaseModel
):
requestId: Optional[UUID] = Field(
None, description='Unique id assigned to every request. UUIDv4'
)
result: Optional[ClickPipe] = None
status: Optional[float] = Field(
None, description='HTTP status code.', examples=[200]
)