import type {IProtobufTimeObject} from './common'; /** * Execution mode for script/query execution * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/ydb_query.proto */ export enum ExecMode { EXEC_MODE_UNSPECIFIED = 'EXEC_MODE_UNSPECIFIED', EXEC_MODE_PARSE = 'EXEC_MODE_PARSE', EXEC_MODE_VALIDATE = 'EXEC_MODE_VALIDATE', EXEC_MODE_EXPLAIN = 'EXEC_MODE_EXPLAIN', EXEC_MODE_EXECUTE = 'EXEC_MODE_EXECUTE', } /** * Execution status for script/query execution * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/ydb_query.proto */ export enum ExecStatus { EXEC_STATUS_UNSPECIFIED = 'EXEC_STATUS_UNSPECIFIED', EXEC_STATUS_STARTING = 'EXEC_STATUS_STARTING', EXEC_STATUS_RUNNING = 'EXEC_STATUS_RUNNING', EXEC_STATUS_COMPLETED = 'EXEC_STATUS_COMPLETED', EXEC_STATUS_FAILED = 'EXEC_STATUS_FAILED', EXEC_STATUS_CANCELLED = 'EXEC_STATUS_CANCELLED', } /** * endpoint: /operation/list * * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/ydb_operation.proto */ export enum EStatusCode { STATUS_CODE_UNSPECIFIED = 'STATUS_CODE_UNSPECIFIED', SUCCESS = 'SUCCESS', BAD_REQUEST = 'BAD_REQUEST', UNAUTHORIZED = 'UNAUTHORIZED', INTERNAL_ERROR = 'INTERNAL_ERROR', ABORTED = 'ABORTED', UNAVAILABLE = 'UNAVAILABLE', OVERLOADED = 'OVERLOADED', SCHEME_ERROR = 'SCHEME_ERROR', GENERIC_ERROR = 'GENERIC_ERROR', TIMEOUT = 'TIMEOUT', BAD_SESSION = 'BAD_SESSION', PRECONDITION_FAILED = 'PRECONDITION_FAILED', ALREADY_EXISTS = 'ALREADY_EXISTS', NOT_FOUND = 'NOT_FOUND', SESSION_EXPIRED = 'SESSION_EXPIRED', CANCELLED = 'CANCELLED', UNDETERMINED = 'UNDETERMINED', UNSUPPORTED = 'UNSUPPORTED', SESSION_BUSY = 'SESSION_BUSY', EXTERNAL_ERROR = 'EXTERNAL_ERROR', } export interface TPosition { row?: number; column?: number; file?: string; } export interface TIssueMessage { position?: TPosition; message?: string; end_position?: TPosition; issue_code?: number; severity?: number; issues?: TIssueMessage[]; } export interface IndexBuildMetadata { '@type'?: 'type.googleapis.com/Ydb.Table.IndexBuildMetadata'; description?: IndexBuildDescription; state?: IndexBuildState; progress?: number; } interface IndexBuildDescription { path?: string; index?: TableIndex; } export type TGlobalIndex = {_type?: 'global_index'; global_index: unknown}; export type TGlobalAsyncIndex = {_type?: 'global_async_index'; global_async_index: unknown}; export type TGlobalUniqueIndex = {_type?: 'global_unique_index'; global_unique_index: unknown}; export type TGlobalVectorKmeansTreeIndexIndex = { _type?: 'global_vector_kmeans_tree_index'; global_vector_kmeans_tree_index: unknown; }; export type TIndexType = | TGlobalIndex | TGlobalAsyncIndex | TGlobalUniqueIndex | TGlobalVectorKmeansTreeIndexIndex; type TableIndex = { name?: string; index_columns?: string[]; data_columns?: string[]; } & TIndexType; export enum IndexBuildState { STATE_UNSPECIFIED = 'STATE_UNSPECIFIED', STATE_PREPARING = 'STATE_PREPARING', STATE_TRANSFERING_DATA = 'STATE_TRANSFERING_DATA', STATE_APPLYING = 'STATE_APPLYING', STATE_DONE = 'STATE_DONE', STATE_CANCELLATION = 'STATE_CANCELLATION', STATE_CANCELLED = 'STATE_CANCELLED', STATE_REJECTION = 'STATE_REJECTION', STATE_REJECTED = 'STATE_REJECTED', } export enum CompactState { STATE_UNSPECIFIED = 'STATE_UNSPECIFIED', STATE_IN_PROGRESS = 'STATE_IN_PROGRESS', STATE_DONE = 'STATE_DONE', STATE_CANCELLED = 'STATE_CANCELLED', } export const OPERATION_METADATA_TYPE_URLS = { IndexBuild: 'type.googleapis.com/Ydb.Table.IndexBuildMetadata', ImportFromS3: 'type.googleapis.com/Ydb.Import.ImportFromS3Metadata', ImportFromFs: 'type.googleapis.com/Ydb.Import.ImportFromFsMetadata', ExportToS3: 'type.googleapis.com/Ydb.Export.ExportToS3Metadata', ExportToYt: 'type.googleapis.com/Ydb.Export.ExportToYtMetadata', ExportToFs: 'type.googleapis.com/Ydb.Export.ExportToFsMetadata', Compact: 'type.googleapis.com/Ydb.Table.CompactMetadata', IncrementalBackup: 'type.googleapis.com/Ydb.Backup.IncrementalBackupMetadata', Restore: 'type.googleapis.com/Ydb.Backup.RestoreMetadata', } as const; export type OperationMetadataTypeUrl = (typeof OPERATION_METADATA_TYPE_URLS)[keyof typeof OPERATION_METADATA_TYPE_URLS]; /** * Import/Export progress enum * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/ydb_import.proto */ export enum ImportExportProgress { PROGRESS_UNSPECIFIED = 'PROGRESS_UNSPECIFIED', PROGRESS_PREPARING = 'PROGRESS_PREPARING', PROGRESS_TRANSFER_DATA = 'PROGRESS_TRANSFER_DATA', PROGRESS_BUILD_INDEXES = 'PROGRESS_BUILD_INDEXES', PROGRESS_DONE = 'PROGRESS_DONE', PROGRESS_CANCELLATION = 'PROGRESS_CANCELLATION', PROGRESS_CANCELLED = 'PROGRESS_CANCELLED', PROGRESS_CREATE_CHANGEFEEDS = 'PROGRESS_CREATE_CHANGEFEEDS', } /** * Import/Export item progress * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/ydb_import.proto */ export interface ImportExportItemProgress { parts_total?: number; parts_completed?: number; start_time?: IProtobufTimeObject; end_time?: IProtobufTimeObject; } /** * Import from S3 metadata * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/ydb_import.proto#L108 */ export interface ImportFromS3Metadata { '@type'?: typeof OPERATION_METADATA_TYPE_URLS.ImportFromS3; settings?: { endpoint?: string; scheme?: string; bucket?: string; items?: Array<{ source_prefix?: string; source_path?: string; destination_path?: string; }>; [key: string]: unknown; }; progress?: ImportExportProgress | string; items_progress?: ImportExportItemProgress[]; } /** * Export to S3 metadata * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/ydb_export.proto */ export interface ExportToS3Metadata { '@type'?: typeof OPERATION_METADATA_TYPE_URLS.ExportToS3; settings?: { endpoint?: string; scheme?: string; bucket?: string; items?: Array<{ source_path?: string; destination_prefix?: string; }>; [key: string]: unknown; }; progress?: ImportExportProgress | string; items_progress?: ImportExportItemProgress[]; } /** * Export to YT metadata * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/ydb_export.proto */ export interface ExportToYtMetadata { '@type'?: typeof OPERATION_METADATA_TYPE_URLS.ExportToYt; settings?: { [key: string]: unknown; }; progress?: ImportExportProgress | string; items_progress?: ImportExportItemProgress[]; } /** * Import from file system (NFS) metadata * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/ydb_import.proto */ export interface ImportFromFsMetadata { '@type'?: typeof OPERATION_METADATA_TYPE_URLS.ImportFromFs; settings?: { base_path?: string; items?: Array<{ source_path?: string; source_path_db?: string; destination_path?: string; }>; [key: string]: unknown; }; progress?: ImportExportProgress | string; items_progress?: ImportExportItemProgress[]; } /** * Export to file system (NFS) metadata * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/ydb_export.proto */ export interface ExportToFsMetadata { '@type'?: typeof OPERATION_METADATA_TYPE_URLS.ExportToFs; settings?: { base_path?: string; items?: Array<{ source_path?: string; destination_path?: string; }>; [key: string]: unknown; }; progress?: ImportExportProgress | string; items_progress?: ImportExportItemProgress[]; } /** * Backup progress enum (covers IncrementalBackup and Restore) * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/draft/ydb_backup.proto */ export enum BackupProgress { PROGRESS_UNSPECIFIED = 'PROGRESS_UNSPECIFIED', PROGRESS_PREPARING = 'PROGRESS_PREPARING', PROGRESS_TRANSFER_DATA = 'PROGRESS_TRANSFER_DATA', PROGRESS_DONE = 'PROGRESS_DONE', PROGRESS_CANCELLATION = 'PROGRESS_CANCELLATION', PROGRESS_CANCELLED = 'PROGRESS_CANCELLED', } /** * Incremental backup metadata * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/draft/ydb_backup.proto */ export interface IncrementalBackupMetadata { '@type'?: typeof OPERATION_METADATA_TYPE_URLS.IncrementalBackup; progress?: BackupProgress; progress_percent?: number; } /** * Restore metadata * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/draft/ydb_backup.proto */ export interface RestoreMetadata { '@type'?: typeof OPERATION_METADATA_TYPE_URLS.Restore; progress?: BackupProgress; progress_percent?: number; } /** * Compact table metadata * source: https://github.com/ydb-platform/ydb/blob/main/ydb/public/api/protos/ydb_table.proto */ export interface CompactMetadata { '@type'?: typeof OPERATION_METADATA_TYPE_URLS.Compact; path?: string; cascade?: boolean; state?: CompactState; progress?: number; shards_done?: number; shards_total?: number; max_shards_in_flight?: number; } export type TOperationMetadata = | IndexBuildMetadata | ImportFromS3Metadata | ImportFromFsMetadata | ExportToS3Metadata | ExportToYtMetadata | ExportToFsMetadata | CompactMetadata | IncrementalBackupMetadata | RestoreMetadata; export interface TCostInfo { consumed_units?: number; } export interface TOperation { id?: string; ready?: boolean; status?: EStatusCode; issues?: TIssueMessage[]; metadata?: TOperationMetadata; cost_info?: TCostInfo; create_time?: IProtobufTimeObject; end_time?: IProtobufTimeObject; created_by?: string; } export interface TOperationList { status?: EStatusCode; issues?: TIssueMessage[]; operations?: TOperation[]; next_page_token?: string; } export type OperationKind = | 'ss/backgrounds' | 'import' | 'import/s3' | 'import/nfs' | 'export' | 'export/s3' | 'export/yt' | 'export/nfs' | 'buildindex' | 'analyze' | 'compaction' | 'incbackup' | 'restore' | 'scriptexec'; export interface OperationListRequestParams { database: string; kind: OperationKind; // required and important to pass correct value. page_size: number; page_token?: string; } export interface OperationCancelRequestParams { database: string; id: string; } export interface OperationForgetRequestParams { database: string; id: string; }