ydb_grpc_bindings/generated/
ydb.table.rs

1/// Create new session
2#[allow(clippy::derive_partial_eq_without_eq)]
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct CreateSessionRequest {
5    #[prost(message, optional, tag = "1")]
6    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
7}
8/// Create new session
9#[allow(clippy::derive_partial_eq_without_eq)]
10#[derive(Clone, PartialEq, ::prost::Message)]
11pub struct CreateSessionResponse {
12    /// Holds CreateSessionResult in case of CreateSessionResult
13    #[prost(message, optional, tag = "1")]
14    pub operation: ::core::option::Option<super::operations::Operation>,
15}
16#[allow(clippy::derive_partial_eq_without_eq)]
17#[derive(Clone, PartialEq, ::prost::Message)]
18pub struct CreateSessionResult {
19    /// Session identifier
20    #[prost(string, tag = "1")]
21    pub session_id: ::prost::alloc::string::String,
22}
23/// Delete session with given id string
24#[allow(clippy::derive_partial_eq_without_eq)]
25#[derive(Clone, PartialEq, ::prost::Message)]
26pub struct DeleteSessionRequest {
27    /// Session identifier
28    #[prost(string, tag = "1")]
29    pub session_id: ::prost::alloc::string::String,
30    #[prost(message, optional, tag = "2")]
31    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
32}
33#[allow(clippy::derive_partial_eq_without_eq)]
34#[derive(Clone, PartialEq, ::prost::Message)]
35pub struct DeleteSessionResponse {
36    #[prost(message, optional, tag = "1")]
37    pub operation: ::core::option::Option<super::operations::Operation>,
38}
39#[allow(clippy::derive_partial_eq_without_eq)]
40#[derive(Clone, PartialEq, ::prost::Message)]
41pub struct GlobalIndex {}
42#[allow(clippy::derive_partial_eq_without_eq)]
43#[derive(Clone, PartialEq, ::prost::Message)]
44pub struct GlobalAsyncIndex {}
45/// Represent secondary index
46#[allow(clippy::derive_partial_eq_without_eq)]
47#[derive(Clone, PartialEq, ::prost::Message)]
48pub struct TableIndex {
49    /// Name of index
50    #[prost(string, tag = "1")]
51    pub name: ::prost::alloc::string::String,
52    /// list of columns
53    #[prost(string, repeated, tag = "2")]
54    pub index_columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
55    /// list of columns content to be copied in to index table
56    #[prost(string, repeated, tag = "5")]
57    pub data_columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
58    /// Type of index
59    #[prost(oneof = "table_index::Type", tags = "3, 4")]
60    pub r#type: ::core::option::Option<table_index::Type>,
61}
62/// Nested message and enum types in `TableIndex`.
63pub mod table_index {
64    /// Type of index
65    #[allow(clippy::derive_partial_eq_without_eq)]
66    #[derive(Clone, PartialEq, ::prost::Oneof)]
67    pub enum Type {
68        #[prost(message, tag = "3")]
69        GlobalIndex(super::GlobalIndex),
70        #[prost(message, tag = "4")]
71        GlobalAsyncIndex(super::GlobalAsyncIndex),
72    }
73}
74/// Represent secondary index with index state
75#[allow(clippy::derive_partial_eq_without_eq)]
76#[derive(Clone, PartialEq, ::prost::Message)]
77pub struct TableIndexDescription {
78    /// Name of index
79    #[prost(string, tag = "1")]
80    pub name: ::prost::alloc::string::String,
81    /// list of columns
82    #[prost(string, repeated, tag = "2")]
83    pub index_columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
84    #[prost(enumeration = "table_index_description::Status", tag = "4")]
85    pub status: i32,
86    /// list of columns content to be copied in to index table
87    #[prost(string, repeated, tag = "6")]
88    pub data_columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
89    /// Size of index data in bytes
90    #[prost(uint64, tag = "7")]
91    pub size_bytes: u64,
92    /// Type of index
93    #[prost(oneof = "table_index_description::Type", tags = "3, 5")]
94    pub r#type: ::core::option::Option<table_index_description::Type>,
95}
96/// Nested message and enum types in `TableIndexDescription`.
97pub mod table_index_description {
98    #[derive(
99        Clone,
100        Copy,
101        Debug,
102        PartialEq,
103        Eq,
104        Hash,
105        PartialOrd,
106        Ord,
107        ::prost::Enumeration
108    )]
109    #[repr(i32)]
110    pub enum Status {
111        Unspecified = 0,
112        /// Index is ready to use
113        Ready = 1,
114        /// index is being built
115        Building = 2,
116    }
117    impl Status {
118        /// String value of the enum field names used in the ProtoBuf definition.
119        ///
120        /// The values are not transformed in any way and thus are considered stable
121        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
122        pub fn as_str_name(&self) -> &'static str {
123            match self {
124                Status::Unspecified => "STATUS_UNSPECIFIED",
125                Status::Ready => "STATUS_READY",
126                Status::Building => "STATUS_BUILDING",
127            }
128        }
129        /// Creates an enum from field names used in the ProtoBuf definition.
130        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
131            match value {
132                "STATUS_UNSPECIFIED" => Some(Self::Unspecified),
133                "STATUS_READY" => Some(Self::Ready),
134                "STATUS_BUILDING" => Some(Self::Building),
135                _ => None,
136            }
137        }
138    }
139    /// Type of index
140    #[allow(clippy::derive_partial_eq_without_eq)]
141    #[derive(Clone, PartialEq, ::prost::Oneof)]
142    pub enum Type {
143        #[prost(message, tag = "3")]
144        GlobalIndex(super::GlobalIndex),
145        #[prost(message, tag = "5")]
146        GlobalAsyncIndex(super::GlobalAsyncIndex),
147    }
148}
149/// State of index building operation
150#[allow(clippy::derive_partial_eq_without_eq)]
151#[derive(Clone, PartialEq, ::prost::Message)]
152pub struct IndexBuildState {}
153/// Nested message and enum types in `IndexBuildState`.
154pub mod index_build_state {
155    #[derive(
156        Clone,
157        Copy,
158        Debug,
159        PartialEq,
160        Eq,
161        Hash,
162        PartialOrd,
163        Ord,
164        ::prost::Enumeration
165    )]
166    #[repr(i32)]
167    pub enum State {
168        Unspecified = 0,
169        Preparing = 1,
170        TransferingData = 2,
171        Applying = 3,
172        Done = 4,
173        Cancellation = 5,
174        Cancelled = 6,
175        Rejection = 7,
176        Rejected = 8,
177    }
178    impl State {
179        /// String value of the enum field names used in the ProtoBuf definition.
180        ///
181        /// The values are not transformed in any way and thus are considered stable
182        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
183        pub fn as_str_name(&self) -> &'static str {
184            match self {
185                State::Unspecified => "STATE_UNSPECIFIED",
186                State::Preparing => "STATE_PREPARING",
187                State::TransferingData => "STATE_TRANSFERING_DATA",
188                State::Applying => "STATE_APPLYING",
189                State::Done => "STATE_DONE",
190                State::Cancellation => "STATE_CANCELLATION",
191                State::Cancelled => "STATE_CANCELLED",
192                State::Rejection => "STATE_REJECTION",
193                State::Rejected => "STATE_REJECTED",
194            }
195        }
196        /// Creates an enum from field names used in the ProtoBuf definition.
197        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
198            match value {
199                "STATE_UNSPECIFIED" => Some(Self::Unspecified),
200                "STATE_PREPARING" => Some(Self::Preparing),
201                "STATE_TRANSFERING_DATA" => Some(Self::TransferingData),
202                "STATE_APPLYING" => Some(Self::Applying),
203                "STATE_DONE" => Some(Self::Done),
204                "STATE_CANCELLATION" => Some(Self::Cancellation),
205                "STATE_CANCELLED" => Some(Self::Cancelled),
206                "STATE_REJECTION" => Some(Self::Rejection),
207                "STATE_REJECTED" => Some(Self::Rejected),
208                _ => None,
209            }
210        }
211    }
212}
213/// Description of index building operation
214#[allow(clippy::derive_partial_eq_without_eq)]
215#[derive(Clone, PartialEq, ::prost::Message)]
216pub struct IndexBuildDescription {
217    #[prost(string, tag = "1")]
218    pub path: ::prost::alloc::string::String,
219    #[prost(message, optional, tag = "2")]
220    pub index: ::core::option::Option<TableIndex>,
221}
222#[allow(clippy::derive_partial_eq_without_eq)]
223#[derive(Clone, PartialEq, ::prost::Message)]
224pub struct IndexBuildMetadata {
225    #[prost(message, optional, tag = "1")]
226    pub description: ::core::option::Option<IndexBuildDescription>,
227    #[prost(enumeration = "index_build_state::State", tag = "2")]
228    pub state: i32,
229    #[prost(float, tag = "3")]
230    pub progress: f32,
231}
232#[allow(clippy::derive_partial_eq_without_eq)]
233#[derive(Clone, PartialEq, ::prost::Message)]
234pub struct ChangefeedMode {}
235/// Nested message and enum types in `ChangefeedMode`.
236pub mod changefeed_mode {
237    #[derive(
238        Clone,
239        Copy,
240        Debug,
241        PartialEq,
242        Eq,
243        Hash,
244        PartialOrd,
245        Ord,
246        ::prost::Enumeration
247    )]
248    #[repr(i32)]
249    pub enum Mode {
250        Unspecified = 0,
251        /// Only the key component of the modified row
252        KeysOnly = 1,
253        /// Updated columns
254        Updates = 2,
255        /// The entire row, as it appears after it was modified
256        NewImage = 3,
257        /// The entire row, as it appeared before it was modified
258        OldImage = 4,
259        /// Both new and old images of the row
260        NewAndOldImages = 5,
261    }
262    impl Mode {
263        /// String value of the enum field names used in the ProtoBuf definition.
264        ///
265        /// The values are not transformed in any way and thus are considered stable
266        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
267        pub fn as_str_name(&self) -> &'static str {
268            match self {
269                Mode::Unspecified => "MODE_UNSPECIFIED",
270                Mode::KeysOnly => "MODE_KEYS_ONLY",
271                Mode::Updates => "MODE_UPDATES",
272                Mode::NewImage => "MODE_NEW_IMAGE",
273                Mode::OldImage => "MODE_OLD_IMAGE",
274                Mode::NewAndOldImages => "MODE_NEW_AND_OLD_IMAGES",
275            }
276        }
277        /// Creates an enum from field names used in the ProtoBuf definition.
278        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
279            match value {
280                "MODE_UNSPECIFIED" => Some(Self::Unspecified),
281                "MODE_KEYS_ONLY" => Some(Self::KeysOnly),
282                "MODE_UPDATES" => Some(Self::Updates),
283                "MODE_NEW_IMAGE" => Some(Self::NewImage),
284                "MODE_OLD_IMAGE" => Some(Self::OldImage),
285                "MODE_NEW_AND_OLD_IMAGES" => Some(Self::NewAndOldImages),
286                _ => None,
287            }
288        }
289    }
290}
291#[allow(clippy::derive_partial_eq_without_eq)]
292#[derive(Clone, PartialEq, ::prost::Message)]
293pub struct ChangefeedFormat {}
294/// Nested message and enum types in `ChangefeedFormat`.
295pub mod changefeed_format {
296    #[derive(
297        Clone,
298        Copy,
299        Debug,
300        PartialEq,
301        Eq,
302        Hash,
303        PartialOrd,
304        Ord,
305        ::prost::Enumeration
306    )]
307    #[repr(i32)]
308    pub enum Format {
309        Unspecified = 0,
310        Json = 1,
311    }
312    impl Format {
313        /// String value of the enum field names used in the ProtoBuf definition.
314        ///
315        /// The values are not transformed in any way and thus are considered stable
316        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
317        pub fn as_str_name(&self) -> &'static str {
318            match self {
319                Format::Unspecified => "FORMAT_UNSPECIFIED",
320                Format::Json => "FORMAT_JSON",
321            }
322        }
323        /// Creates an enum from field names used in the ProtoBuf definition.
324        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
325            match value {
326                "FORMAT_UNSPECIFIED" => Some(Self::Unspecified),
327                "FORMAT_JSON" => Some(Self::Json),
328                _ => None,
329            }
330        }
331    }
332}
333#[allow(clippy::derive_partial_eq_without_eq)]
334#[derive(Clone, PartialEq, ::prost::Message)]
335pub struct Changefeed {
336    /// Name of the feed
337    #[prost(string, tag = "1")]
338    pub name: ::prost::alloc::string::String,
339    /// Mode specifies the information that will be written to the feed
340    #[prost(enumeration = "changefeed_mode::Mode", tag = "2")]
341    pub mode: i32,
342    /// Format of the data
343    #[prost(enumeration = "changefeed_format::Format", tag = "3")]
344    pub format: i32,
345    /// How long data in changefeed's underlying topic should be stored
346    #[prost(message, optional, tag = "4")]
347    pub retention_period: ::core::option::Option<
348        super::super::google::protobuf::Duration,
349    >,
350    /// Emit virtual timestamps of changes along with data or not
351    #[prost(bool, tag = "5")]
352    pub virtual_timestamps: bool,
353}
354#[allow(clippy::derive_partial_eq_without_eq)]
355#[derive(Clone, PartialEq, ::prost::Message)]
356pub struct ChangefeedDescription {
357    /// Name of the feed
358    #[prost(string, tag = "1")]
359    pub name: ::prost::alloc::string::String,
360    /// Mode specifies the information that will be written to the feed
361    #[prost(enumeration = "changefeed_mode::Mode", tag = "2")]
362    pub mode: i32,
363    /// Format of the data
364    #[prost(enumeration = "changefeed_format::Format", tag = "3")]
365    pub format: i32,
366    /// State of the feed
367    #[prost(enumeration = "changefeed_description::State", tag = "4")]
368    pub state: i32,
369    /// State of emitting of virtual timestamps along with data
370    #[prost(bool, tag = "5")]
371    pub virtual_timestamps: bool,
372}
373/// Nested message and enum types in `ChangefeedDescription`.
374pub mod changefeed_description {
375    #[derive(
376        Clone,
377        Copy,
378        Debug,
379        PartialEq,
380        Eq,
381        Hash,
382        PartialOrd,
383        Ord,
384        ::prost::Enumeration
385    )]
386    #[repr(i32)]
387    pub enum State {
388        Unspecified = 0,
389        Enabled = 1,
390        Disabled = 2,
391    }
392    impl State {
393        /// String value of the enum field names used in the ProtoBuf definition.
394        ///
395        /// The values are not transformed in any way and thus are considered stable
396        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
397        pub fn as_str_name(&self) -> &'static str {
398            match self {
399                State::Unspecified => "STATE_UNSPECIFIED",
400                State::Enabled => "STATE_ENABLED",
401                State::Disabled => "STATE_DISABLED",
402            }
403        }
404        /// Creates an enum from field names used in the ProtoBuf definition.
405        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
406            match value {
407                "STATE_UNSPECIFIED" => Some(Self::Unspecified),
408                "STATE_ENABLED" => Some(Self::Enabled),
409                "STATE_DISABLED" => Some(Self::Disabled),
410                _ => None,
411            }
412        }
413    }
414}
415#[allow(clippy::derive_partial_eq_without_eq)]
416#[derive(Clone, PartialEq, ::prost::Message)]
417pub struct StoragePool {
418    #[prost(string, tag = "1")]
419    pub media: ::prost::alloc::string::String,
420}
421#[allow(clippy::derive_partial_eq_without_eq)]
422#[derive(Clone, PartialEq, ::prost::Message)]
423pub struct StoragePolicy {
424    #[prost(string, tag = "1")]
425    pub preset_name: ::prost::alloc::string::String,
426    #[prost(message, optional, tag = "2")]
427    pub syslog: ::core::option::Option<StoragePool>,
428    #[prost(message, optional, tag = "3")]
429    pub log: ::core::option::Option<StoragePool>,
430    #[prost(message, optional, tag = "4")]
431    pub data: ::core::option::Option<StoragePool>,
432    #[prost(message, optional, tag = "5")]
433    pub external: ::core::option::Option<StoragePool>,
434    #[prost(enumeration = "super::feature_flag::Status", tag = "6")]
435    pub keep_in_memory: i32,
436    #[prost(message, repeated, tag = "7")]
437    pub column_families: ::prost::alloc::vec::Vec<ColumnFamilyPolicy>,
438}
439#[allow(clippy::derive_partial_eq_without_eq)]
440#[derive(Clone, PartialEq, ::prost::Message)]
441pub struct ColumnFamilyPolicy {
442    /// Name of the column family, the name "default" must be used for the
443    /// primary column family that contains as least primary key columns
444    #[prost(string, tag = "1")]
445    pub name: ::prost::alloc::string::String,
446    /// Storage settings for the column group (default to values in storage policy)
447    #[prost(message, optional, tag = "2")]
448    pub data: ::core::option::Option<StoragePool>,
449    #[prost(message, optional, tag = "3")]
450    pub external: ::core::option::Option<StoragePool>,
451    /// When enabled table data will be kept in memory
452    /// WARNING: DO NOT USE
453    #[prost(enumeration = "super::feature_flag::Status", tag = "4")]
454    pub keep_in_memory: i32,
455    /// Optionally specify whether data should be compressed
456    #[prost(enumeration = "column_family_policy::Compression", tag = "5")]
457    pub compression: i32,
458}
459/// Nested message and enum types in `ColumnFamilyPolicy`.
460pub mod column_family_policy {
461    #[derive(
462        Clone,
463        Copy,
464        Debug,
465        PartialEq,
466        Eq,
467        Hash,
468        PartialOrd,
469        Ord,
470        ::prost::Enumeration
471    )]
472    #[repr(i32)]
473    pub enum Compression {
474        Unspecified = 0,
475        Uncompressed = 1,
476        Compressed = 2,
477    }
478    impl Compression {
479        /// String value of the enum field names used in the ProtoBuf definition.
480        ///
481        /// The values are not transformed in any way and thus are considered stable
482        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
483        pub fn as_str_name(&self) -> &'static str {
484            match self {
485                Compression::Unspecified => "COMPRESSION_UNSPECIFIED",
486                Compression::Uncompressed => "UNCOMPRESSED",
487                Compression::Compressed => "COMPRESSED",
488            }
489        }
490        /// Creates an enum from field names used in the ProtoBuf definition.
491        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
492            match value {
493                "COMPRESSION_UNSPECIFIED" => Some(Self::Unspecified),
494                "UNCOMPRESSED" => Some(Self::Uncompressed),
495                "COMPRESSED" => Some(Self::Compressed),
496                _ => None,
497            }
498        }
499    }
500}
501#[allow(clippy::derive_partial_eq_without_eq)]
502#[derive(Clone, PartialEq, ::prost::Message)]
503pub struct CompactionPolicy {
504    #[prost(string, tag = "1")]
505    pub preset_name: ::prost::alloc::string::String,
506}
507#[allow(clippy::derive_partial_eq_without_eq)]
508#[derive(Clone, PartialEq, ::prost::Message)]
509pub struct ExplicitPartitions {
510    /// Specify key values used to split table into partitions.
511    /// Each value becomes the first key of a new partition.
512    /// Key values should go in ascending order.
513    /// Total number of created partitions is number of specified
514    /// keys + 1.
515    #[prost(message, repeated, tag = "1")]
516    pub split_points: ::prost::alloc::vec::Vec<super::TypedValue>,
517}
518#[allow(clippy::derive_partial_eq_without_eq)]
519#[derive(Clone, PartialEq, ::prost::Message)]
520pub struct PartitionStats {
521    /// Approximate number of rows in shard
522    #[prost(uint64, tag = "1")]
523    pub rows_estimate: u64,
524    /// Approximate size of shard (bytes)
525    #[prost(uint64, tag = "2")]
526    pub store_size: u64,
527}
528#[allow(clippy::derive_partial_eq_without_eq)]
529#[derive(Clone, PartialEq, ::prost::Message)]
530pub struct TableStats {
531    /// Stats for each partition
532    #[prost(message, repeated, tag = "1")]
533    pub partition_stats: ::prost::alloc::vec::Vec<PartitionStats>,
534    /// Approximate number of rows in table
535    #[prost(uint64, tag = "2")]
536    pub rows_estimate: u64,
537    /// Approximate size of table (bytes)
538    #[prost(uint64, tag = "3")]
539    pub store_size: u64,
540    /// Number of partitions in table
541    #[prost(uint64, tag = "4")]
542    pub partitions: u64,
543    /// Timestamp of table creation
544    #[prost(message, optional, tag = "5")]
545    pub creation_time: ::core::option::Option<super::super::google::protobuf::Timestamp>,
546    /// Timestamp of last modification
547    #[prost(message, optional, tag = "6")]
548    pub modification_time: ::core::option::Option<
549        super::super::google::protobuf::Timestamp,
550    >,
551}
552#[allow(clippy::derive_partial_eq_without_eq)]
553#[derive(Clone, PartialEq, ::prost::Message)]
554pub struct PartitioningPolicy {
555    #[prost(string, tag = "1")]
556    pub preset_name: ::prost::alloc::string::String,
557    #[prost(enumeration = "partitioning_policy::AutoPartitioningPolicy", tag = "2")]
558    pub auto_partitioning: i32,
559    #[prost(oneof = "partitioning_policy::Partitions", tags = "3, 4")]
560    pub partitions: ::core::option::Option<partitioning_policy::Partitions>,
561}
562/// Nested message and enum types in `PartitioningPolicy`.
563pub mod partitioning_policy {
564    #[derive(
565        Clone,
566        Copy,
567        Debug,
568        PartialEq,
569        Eq,
570        Hash,
571        PartialOrd,
572        Ord,
573        ::prost::Enumeration
574    )]
575    #[repr(i32)]
576    pub enum AutoPartitioningPolicy {
577        Unspecified = 0,
578        Disabled = 1,
579        AutoSplit = 2,
580        AutoSplitMerge = 3,
581    }
582    impl AutoPartitioningPolicy {
583        /// String value of the enum field names used in the ProtoBuf definition.
584        ///
585        /// The values are not transformed in any way and thus are considered stable
586        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
587        pub fn as_str_name(&self) -> &'static str {
588            match self {
589                AutoPartitioningPolicy::Unspecified => {
590                    "AUTO_PARTITIONING_POLICY_UNSPECIFIED"
591                }
592                AutoPartitioningPolicy::Disabled => "DISABLED",
593                AutoPartitioningPolicy::AutoSplit => "AUTO_SPLIT",
594                AutoPartitioningPolicy::AutoSplitMerge => "AUTO_SPLIT_MERGE",
595            }
596        }
597        /// Creates an enum from field names used in the ProtoBuf definition.
598        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
599            match value {
600                "AUTO_PARTITIONING_POLICY_UNSPECIFIED" => Some(Self::Unspecified),
601                "DISABLED" => Some(Self::Disabled),
602                "AUTO_SPLIT" => Some(Self::AutoSplit),
603                "AUTO_SPLIT_MERGE" => Some(Self::AutoSplitMerge),
604                _ => None,
605            }
606        }
607    }
608    #[allow(clippy::derive_partial_eq_without_eq)]
609    #[derive(Clone, PartialEq, ::prost::Oneof)]
610    pub enum Partitions {
611        /// Allows to enable uniform sharding using given shards number.
612        /// The first components of primary key must have Uint32/Uint64 type.
613        #[prost(uint64, tag = "3")]
614        UniformPartitions(u64),
615        /// Explicitly specify key values which are used as borders for
616        /// created partitions.
617        #[prost(message, tag = "4")]
618        ExplicitPartitions(super::ExplicitPartitions),
619    }
620}
621#[allow(clippy::derive_partial_eq_without_eq)]
622#[derive(Clone, PartialEq, ::prost::Message)]
623pub struct ExecutionPolicy {
624    #[prost(string, tag = "1")]
625    pub preset_name: ::prost::alloc::string::String,
626}
627#[allow(clippy::derive_partial_eq_without_eq)]
628#[derive(Clone, PartialEq, ::prost::Message)]
629pub struct ReplicationPolicy {
630    #[prost(string, tag = "1")]
631    pub preset_name: ::prost::alloc::string::String,
632    /// If value is non-zero then it specifies a number of read-only
633    /// replicas to create for a table. Zero value means preset
634    /// setting usage.
635    #[prost(uint32, tag = "2")]
636    pub replicas_count: u32,
637    /// If this feature in enabled then requested number of replicas
638    /// will be created in each availability zone.
639    #[prost(enumeration = "super::feature_flag::Status", tag = "3")]
640    pub create_per_availability_zone: i32,
641    /// If this feature in enabled then read-only replicas can be promoted
642    /// to leader.
643    #[prost(enumeration = "super::feature_flag::Status", tag = "4")]
644    pub allow_promotion: i32,
645}
646#[allow(clippy::derive_partial_eq_without_eq)]
647#[derive(Clone, PartialEq, ::prost::Message)]
648pub struct CachingPolicy {
649    #[prost(string, tag = "1")]
650    pub preset_name: ::prost::alloc::string::String,
651}
652#[allow(clippy::derive_partial_eq_without_eq)]
653#[derive(Clone, PartialEq, ::prost::Message)]
654pub struct TableProfile {
655    #[prost(string, tag = "1")]
656    pub preset_name: ::prost::alloc::string::String,
657    #[prost(message, optional, tag = "2")]
658    pub storage_policy: ::core::option::Option<StoragePolicy>,
659    #[prost(message, optional, tag = "3")]
660    pub compaction_policy: ::core::option::Option<CompactionPolicy>,
661    #[prost(message, optional, tag = "4")]
662    pub partitioning_policy: ::core::option::Option<PartitioningPolicy>,
663    #[prost(message, optional, tag = "5")]
664    pub execution_policy: ::core::option::Option<ExecutionPolicy>,
665    #[prost(message, optional, tag = "6")]
666    pub replication_policy: ::core::option::Option<ReplicationPolicy>,
667    #[prost(message, optional, tag = "7")]
668    pub caching_policy: ::core::option::Option<CachingPolicy>,
669}
670#[allow(clippy::derive_partial_eq_without_eq)]
671#[derive(Clone, PartialEq, ::prost::Message)]
672pub struct ColumnMeta {
673    /// Name of column
674    #[prost(string, tag = "1")]
675    pub name: ::prost::alloc::string::String,
676    /// Type of column
677    #[prost(message, optional, tag = "2")]
678    pub r#type: ::core::option::Option<super::Type>,
679    /// Column family name of the column
680    #[prost(string, tag = "3")]
681    pub family: ::prost::alloc::string::String,
682}
683/// The row will be considered as expired at the moment of time, when the value
684/// stored in <column_name> is less than or equal to the current time (in epoch
685/// time format), and <expire_after_seconds> has passed since that moment;
686/// i.e. the expiration threshold is the value of <column_name> plus <expire_after_seconds>.
687#[allow(clippy::derive_partial_eq_without_eq)]
688#[derive(Clone, PartialEq, ::prost::Message)]
689pub struct DateTypeColumnModeSettings {
690    /// The column type must be a date type
691    #[prost(string, tag = "1")]
692    pub column_name: ::prost::alloc::string::String,
693    #[prost(uint32, tag = "2")]
694    pub expire_after_seconds: u32,
695}
696/// Same as DateTypeColumnModeSettings (above), but useful when type of the
697/// value stored in <column_name> is not a date type.
698#[allow(clippy::derive_partial_eq_without_eq)]
699#[derive(Clone, PartialEq, ::prost::Message)]
700pub struct ValueSinceUnixEpochModeSettings {
701    /// The column type must be one of:
702    /// - Uint32
703    /// - Uint64
704    /// - DyNumber
705    #[prost(string, tag = "1")]
706    pub column_name: ::prost::alloc::string::String,
707    /// Interpretation of the value stored in <column_name>
708    #[prost(enumeration = "value_since_unix_epoch_mode_settings::Unit", tag = "2")]
709    pub column_unit: i32,
710    /// This option is always interpreted as seconds regardless of the
711    /// <column_unit> value.
712    #[prost(uint32, tag = "3")]
713    pub expire_after_seconds: u32,
714}
715/// Nested message and enum types in `ValueSinceUnixEpochModeSettings`.
716pub mod value_since_unix_epoch_mode_settings {
717    #[derive(
718        Clone,
719        Copy,
720        Debug,
721        PartialEq,
722        Eq,
723        Hash,
724        PartialOrd,
725        Ord,
726        ::prost::Enumeration
727    )]
728    #[repr(i32)]
729    pub enum Unit {
730        Unspecified = 0,
731        Seconds = 1,
732        Milliseconds = 2,
733        Microseconds = 3,
734        Nanoseconds = 4,
735    }
736    impl Unit {
737        /// String value of the enum field names used in the ProtoBuf definition.
738        ///
739        /// The values are not transformed in any way and thus are considered stable
740        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
741        pub fn as_str_name(&self) -> &'static str {
742            match self {
743                Unit::Unspecified => "UNIT_UNSPECIFIED",
744                Unit::Seconds => "UNIT_SECONDS",
745                Unit::Milliseconds => "UNIT_MILLISECONDS",
746                Unit::Microseconds => "UNIT_MICROSECONDS",
747                Unit::Nanoseconds => "UNIT_NANOSECONDS",
748            }
749        }
750        /// Creates an enum from field names used in the ProtoBuf definition.
751        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
752            match value {
753                "UNIT_UNSPECIFIED" => Some(Self::Unspecified),
754                "UNIT_SECONDS" => Some(Self::Seconds),
755                "UNIT_MILLISECONDS" => Some(Self::Milliseconds),
756                "UNIT_MICROSECONDS" => Some(Self::Microseconds),
757                "UNIT_NANOSECONDS" => Some(Self::Nanoseconds),
758                _ => None,
759            }
760        }
761    }
762}
763#[allow(clippy::derive_partial_eq_without_eq)]
764#[derive(Clone, PartialEq, ::prost::Message)]
765pub struct TtlSettings {
766    /// How often to run BRO on the same partition.
767    /// BRO will not be started more often, but may be started less often.
768    #[prost(uint32, tag = "3")]
769    pub run_interval_seconds: u32,
770    #[prost(oneof = "ttl_settings::Mode", tags = "1, 2")]
771    pub mode: ::core::option::Option<ttl_settings::Mode>,
772}
773/// Nested message and enum types in `TtlSettings`.
774pub mod ttl_settings {
775    #[allow(clippy::derive_partial_eq_without_eq)]
776    #[derive(Clone, PartialEq, ::prost::Oneof)]
777    pub enum Mode {
778        #[prost(message, tag = "1")]
779        DateTypeColumn(super::DateTypeColumnModeSettings),
780        #[prost(message, tag = "2")]
781        ValueSinceUnixEpoch(super::ValueSinceUnixEpochModeSettings),
782    }
783}
784#[allow(clippy::derive_partial_eq_without_eq)]
785#[derive(Clone, PartialEq, ::prost::Message)]
786pub struct StorageSettings {
787    /// This specifies internal channel 0 commit log storage pool
788    /// Fastest available storage recommended, negligible amounts of short-lived data
789    #[prost(message, optional, tag = "1")]
790    pub tablet_commit_log0: ::core::option::Option<StoragePool>,
791    /// This specifies internal channel 1 commit log storage pool
792    /// Fastest available storage recommended, small amounts of short-lived data
793    #[prost(message, optional, tag = "2")]
794    pub tablet_commit_log1: ::core::option::Option<StoragePool>,
795    /// This specifies external blobs storage pool
796    #[prost(message, optional, tag = "4")]
797    pub external: ::core::option::Option<StoragePool>,
798    /// Optionally store large values in "external blobs"
799    /// WARNING: DO NOT USE
800    /// This feature is experimental and should not be used, restrictions apply:
801    /// * Table cannot split/merge when this is enabled
802    /// * Table cannot be copied or backed up when this is enabled
803    /// * This feature cannot be disabled once enabled for a table
804    #[prost(enumeration = "super::feature_flag::Status", tag = "5")]
805    pub store_external_blobs: i32,
806}
807#[allow(clippy::derive_partial_eq_without_eq)]
808#[derive(Clone, PartialEq, ::prost::Message)]
809pub struct ColumnFamily {
810    /// Name of the column family, the name "default" must be used for the
811    /// primary column family that contains at least primary key columns
812    #[prost(string, tag = "1")]
813    pub name: ::prost::alloc::string::String,
814    /// This specifies data storage settings for column family
815    #[prost(message, optional, tag = "2")]
816    pub data: ::core::option::Option<StoragePool>,
817    /// Optionally specify how data should be compressed
818    #[prost(enumeration = "column_family::Compression", tag = "3")]
819    pub compression: i32,
820    /// When enabled table data will be kept in memory
821    /// WARNING: DO NOT USE
822    #[prost(enumeration = "super::feature_flag::Status", tag = "4")]
823    pub keep_in_memory: i32,
824}
825/// Nested message and enum types in `ColumnFamily`.
826pub mod column_family {
827    #[derive(
828        Clone,
829        Copy,
830        Debug,
831        PartialEq,
832        Eq,
833        Hash,
834        PartialOrd,
835        Ord,
836        ::prost::Enumeration
837    )]
838    #[repr(i32)]
839    pub enum Compression {
840        Unspecified = 0,
841        None = 1,
842        Lz4 = 2,
843    }
844    impl Compression {
845        /// String value of the enum field names used in the ProtoBuf definition.
846        ///
847        /// The values are not transformed in any way and thus are considered stable
848        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
849        pub fn as_str_name(&self) -> &'static str {
850            match self {
851                Compression::Unspecified => "COMPRESSION_UNSPECIFIED",
852                Compression::None => "COMPRESSION_NONE",
853                Compression::Lz4 => "COMPRESSION_LZ4",
854            }
855        }
856        /// Creates an enum from field names used in the ProtoBuf definition.
857        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
858            match value {
859                "COMPRESSION_UNSPECIFIED" => Some(Self::Unspecified),
860                "COMPRESSION_NONE" => Some(Self::None),
861                "COMPRESSION_LZ4" => Some(Self::Lz4),
862                _ => None,
863            }
864        }
865    }
866}
867#[allow(clippy::derive_partial_eq_without_eq)]
868#[derive(Clone, PartialEq, ::prost::Message)]
869pub struct PartitioningSettings {
870    /// List of columns to partition by
871    #[prost(string, repeated, tag = "1")]
872    pub partition_by: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
873    /// Enable auto partitioning on reaching upper or lower partition size bound
874    #[prost(enumeration = "super::feature_flag::Status", tag = "2")]
875    pub partitioning_by_size: i32,
876    /// Preferred partition size for auto partitioning by size, Mb
877    #[prost(uint64, tag = "3")]
878    pub partition_size_mb: u64,
879    /// Enable auto partitioning based on load on each partition
880    #[prost(enumeration = "super::feature_flag::Status", tag = "4")]
881    pub partitioning_by_load: i32,
882    /// Minimum partitions count auto merge would stop working at
883    #[prost(uint64, tag = "6")]
884    pub min_partitions_count: u64,
885    /// Maximum partitions count auto split would stop working at
886    #[prost(uint64, tag = "7")]
887    pub max_partitions_count: u64,
888}
889#[allow(clippy::derive_partial_eq_without_eq)]
890#[derive(Clone, PartialEq, ::prost::Message)]
891pub struct AzReadReplicasSettings {
892    /// AZ name
893    #[prost(string, tag = "1")]
894    pub name: ::prost::alloc::string::String,
895    /// Read replicas count in this AZ
896    #[prost(uint64, tag = "2")]
897    pub read_replicas_count: u64,
898}
899#[allow(clippy::derive_partial_eq_without_eq)]
900#[derive(Clone, PartialEq, ::prost::Message)]
901pub struct ClusterReplicasSettings {
902    /// List of read replicas settings for each AZ
903    #[prost(message, repeated, tag = "2")]
904    pub az_read_replicas_settings: ::prost::alloc::vec::Vec<AzReadReplicasSettings>,
905}
906#[allow(clippy::derive_partial_eq_without_eq)]
907#[derive(Clone, PartialEq, ::prost::Message)]
908pub struct ReadReplicasSettings {
909    #[prost(oneof = "read_replicas_settings::Settings", tags = "1, 2")]
910    pub settings: ::core::option::Option<read_replicas_settings::Settings>,
911}
912/// Nested message and enum types in `ReadReplicasSettings`.
913pub mod read_replicas_settings {
914    #[allow(clippy::derive_partial_eq_without_eq)]
915    #[derive(Clone, PartialEq, ::prost::Oneof)]
916    pub enum Settings {
917        /// Set equal read replicas count for every AZ
918        #[prost(uint64, tag = "1")]
919        PerAzReadReplicasCount(u64),
920        /// Set total replicas count between all AZs
921        #[prost(uint64, tag = "2")]
922        AnyAzReadReplicasCount(u64),
923    }
924}
925#[allow(clippy::derive_partial_eq_without_eq)]
926#[derive(Clone, PartialEq, ::prost::Message)]
927pub struct CreateTableRequest {
928    /// Session identifier
929    #[prost(string, tag = "1")]
930    pub session_id: ::prost::alloc::string::String,
931    /// Full path
932    #[prost(string, tag = "2")]
933    pub path: ::prost::alloc::string::String,
934    /// Columns (name, type)
935    #[prost(message, repeated, tag = "3")]
936    pub columns: ::prost::alloc::vec::Vec<ColumnMeta>,
937    /// List of columns used as primary key
938    #[prost(string, repeated, tag = "4")]
939    pub primary_key: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
940    /// Table profile
941    #[prost(message, optional, tag = "5")]
942    pub profile: ::core::option::Option<TableProfile>,
943    #[prost(message, optional, tag = "6")]
944    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
945    /// List of secondary indexes
946    #[prost(message, repeated, tag = "7")]
947    pub indexes: ::prost::alloc::vec::Vec<TableIndex>,
948    /// Table rows time to live settings
949    #[prost(message, optional, tag = "8")]
950    pub ttl_settings: ::core::option::Option<TtlSettings>,
951    /// Storage settings for table
952    #[prost(message, optional, tag = "9")]
953    pub storage_settings: ::core::option::Option<StorageSettings>,
954    /// Column families
955    #[prost(message, repeated, tag = "10")]
956    pub column_families: ::prost::alloc::vec::Vec<ColumnFamily>,
957    /// Attributes. Total size is limited to 10 KB.
958    #[prost(map = "string, string", tag = "11")]
959    pub attributes: ::std::collections::HashMap<
960        ::prost::alloc::string::String,
961        ::prost::alloc::string::String,
962    >,
963    /// Predefined named set of settings for table compaction ["default", "small_table", "log_table"].
964    #[prost(string, tag = "12")]
965    pub compaction_policy: ::prost::alloc::string::String,
966    /// Partitioning settings for table
967    #[prost(message, optional, tag = "15")]
968    pub partitioning_settings: ::core::option::Option<PartitioningSettings>,
969    /// Bloom filter by key
970    #[prost(enumeration = "super::feature_flag::Status", tag = "16")]
971    pub key_bloom_filter: i32,
972    /// Read replicas settings for table
973    #[prost(message, optional, tag = "17")]
974    pub read_replicas_settings: ::core::option::Option<ReadReplicasSettings>,
975    /// Either one of the following partitions options can be specified
976    #[prost(oneof = "create_table_request::Partitions", tags = "13, 14")]
977    pub partitions: ::core::option::Option<create_table_request::Partitions>,
978}
979/// Nested message and enum types in `CreateTableRequest`.
980pub mod create_table_request {
981    /// Either one of the following partitions options can be specified
982    #[allow(clippy::derive_partial_eq_without_eq)]
983    #[derive(Clone, PartialEq, ::prost::Oneof)]
984    pub enum Partitions {
985        /// Enable uniform partitioning using given partitions count.
986        /// The first components of primary key must have Uint32/Uint64 type.
987        #[prost(uint64, tag = "13")]
988        UniformPartitions(u64),
989        /// Explicitly specify key values which are used as borders for created partitions.
990        #[prost(message, tag = "14")]
991        PartitionAtKeys(super::ExplicitPartitions),
992    }
993}
994#[allow(clippy::derive_partial_eq_without_eq)]
995#[derive(Clone, PartialEq, ::prost::Message)]
996pub struct CreateTableResponse {
997    #[prost(message, optional, tag = "1")]
998    pub operation: ::core::option::Option<super::operations::Operation>,
999}
1000/// Drop table with given path
1001#[allow(clippy::derive_partial_eq_without_eq)]
1002#[derive(Clone, PartialEq, ::prost::Message)]
1003pub struct DropTableRequest {
1004    /// Session identifier
1005    #[prost(string, tag = "1")]
1006    pub session_id: ::prost::alloc::string::String,
1007    /// Full path
1008    #[prost(string, tag = "2")]
1009    pub path: ::prost::alloc::string::String,
1010    #[prost(message, optional, tag = "4")]
1011    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1012}
1013#[allow(clippy::derive_partial_eq_without_eq)]
1014#[derive(Clone, PartialEq, ::prost::Message)]
1015pub struct DropTableResponse {
1016    #[prost(message, optional, tag = "1")]
1017    pub operation: ::core::option::Option<super::operations::Operation>,
1018}
1019#[allow(clippy::derive_partial_eq_without_eq)]
1020#[derive(Clone, PartialEq, ::prost::Message)]
1021pub struct RenameIndexItem {
1022    /// Index name to rename
1023    #[prost(string, tag = "1")]
1024    pub source_name: ::prost::alloc::string::String,
1025    /// Target index name
1026    #[prost(string, tag = "2")]
1027    pub destination_name: ::prost::alloc::string::String,
1028    /// Move options
1029    #[prost(bool, tag = "3")]
1030    pub replace_destination: bool,
1031}
1032/// Alter table with given path
1033#[allow(clippy::derive_partial_eq_without_eq)]
1034#[derive(Clone, PartialEq, ::prost::Message)]
1035pub struct AlterTableRequest {
1036    /// Session identifier
1037    #[prost(string, tag = "1")]
1038    pub session_id: ::prost::alloc::string::String,
1039    /// Full path
1040    #[prost(string, tag = "2")]
1041    pub path: ::prost::alloc::string::String,
1042    /// Columns (name, type) to add
1043    #[prost(message, repeated, tag = "3")]
1044    pub add_columns: ::prost::alloc::vec::Vec<ColumnMeta>,
1045    /// Columns to remove
1046    #[prost(string, repeated, tag = "4")]
1047    pub drop_columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1048    #[prost(message, optional, tag = "5")]
1049    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1050    /// Columns to alter
1051    #[prost(message, repeated, tag = "6")]
1052    pub alter_columns: ::prost::alloc::vec::Vec<ColumnMeta>,
1053    /// Add secondary indexes
1054    #[prost(message, repeated, tag = "9")]
1055    pub add_indexes: ::prost::alloc::vec::Vec<TableIndex>,
1056    /// Remove secondary indexes
1057    #[prost(string, repeated, tag = "10")]
1058    pub drop_indexes: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1059    /// Change table storage settings
1060    #[prost(message, optional, tag = "11")]
1061    pub alter_storage_settings: ::core::option::Option<StorageSettings>,
1062    /// Add/alter column families
1063    #[prost(message, repeated, tag = "12")]
1064    pub add_column_families: ::prost::alloc::vec::Vec<ColumnFamily>,
1065    #[prost(message, repeated, tag = "13")]
1066    pub alter_column_families: ::prost::alloc::vec::Vec<ColumnFamily>,
1067    /// Alter attributes. Leave the value blank to drop an attribute.
1068    /// Cannot be used in combination with other fields (except session_id and path) at the moment.
1069    #[prost(map = "string, string", tag = "14")]
1070    pub alter_attributes: ::std::collections::HashMap<
1071        ::prost::alloc::string::String,
1072        ::prost::alloc::string::String,
1073    >,
1074    /// Set predefined named set of settings for table compaction ["default", "small_table", "log_table"].
1075    /// Set "default" to use default preset.
1076    #[prost(string, tag = "15")]
1077    pub set_compaction_policy: ::prost::alloc::string::String,
1078    /// Change table partitioning settings
1079    #[prost(message, optional, tag = "16")]
1080    pub alter_partitioning_settings: ::core::option::Option<PartitioningSettings>,
1081    /// Enable/disable bloom filter by key
1082    #[prost(enumeration = "super::feature_flag::Status", tag = "17")]
1083    pub set_key_bloom_filter: i32,
1084    /// Set read replicas settings for table
1085    #[prost(message, optional, tag = "18")]
1086    pub set_read_replicas_settings: ::core::option::Option<ReadReplicasSettings>,
1087    /// Add change feeds
1088    #[prost(message, repeated, tag = "19")]
1089    pub add_changefeeds: ::prost::alloc::vec::Vec<Changefeed>,
1090    /// Remove change feeds (by its names)
1091    #[prost(string, repeated, tag = "20")]
1092    pub drop_changefeeds: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1093    /// Rename existed index
1094    #[prost(message, repeated, tag = "21")]
1095    pub rename_indexes: ::prost::alloc::vec::Vec<RenameIndexItem>,
1096    /// Setup or remove time to live settings
1097    #[prost(oneof = "alter_table_request::TtlAction", tags = "7, 8")]
1098    pub ttl_action: ::core::option::Option<alter_table_request::TtlAction>,
1099}
1100/// Nested message and enum types in `AlterTableRequest`.
1101pub mod alter_table_request {
1102    /// Setup or remove time to live settings
1103    #[allow(clippy::derive_partial_eq_without_eq)]
1104    #[derive(Clone, PartialEq, ::prost::Oneof)]
1105    pub enum TtlAction {
1106        #[prost(message, tag = "7")]
1107        SetTtlSettings(super::TtlSettings),
1108        #[prost(message, tag = "8")]
1109        DropTtlSettings(super::super::super::google::protobuf::Empty),
1110    }
1111}
1112#[allow(clippy::derive_partial_eq_without_eq)]
1113#[derive(Clone, PartialEq, ::prost::Message)]
1114pub struct AlterTableResponse {
1115    #[prost(message, optional, tag = "1")]
1116    pub operation: ::core::option::Option<super::operations::Operation>,
1117}
1118/// Copy table with given path
1119#[allow(clippy::derive_partial_eq_without_eq)]
1120#[derive(Clone, PartialEq, ::prost::Message)]
1121pub struct CopyTableRequest {
1122    /// Session identifier
1123    #[prost(string, tag = "1")]
1124    pub session_id: ::prost::alloc::string::String,
1125    /// Copy from path
1126    #[prost(string, tag = "2")]
1127    pub source_path: ::prost::alloc::string::String,
1128    /// Copy to path
1129    #[prost(string, tag = "3")]
1130    pub destination_path: ::prost::alloc::string::String,
1131    #[prost(message, optional, tag = "4")]
1132    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1133}
1134#[allow(clippy::derive_partial_eq_without_eq)]
1135#[derive(Clone, PartialEq, ::prost::Message)]
1136pub struct CopyTableResponse {
1137    #[prost(message, optional, tag = "1")]
1138    pub operation: ::core::option::Option<super::operations::Operation>,
1139}
1140#[allow(clippy::derive_partial_eq_without_eq)]
1141#[derive(Clone, PartialEq, ::prost::Message)]
1142pub struct CopyTableItem {
1143    /// Copy from path
1144    #[prost(string, tag = "1")]
1145    pub source_path: ::prost::alloc::string::String,
1146    /// Copy to path
1147    #[prost(string, tag = "2")]
1148    pub destination_path: ::prost::alloc::string::String,
1149    /// Copy options
1150    #[prost(bool, tag = "3")]
1151    pub omit_indexes: bool,
1152}
1153/// Creates consistent copy of given tables.
1154#[allow(clippy::derive_partial_eq_without_eq)]
1155#[derive(Clone, PartialEq, ::prost::Message)]
1156pub struct CopyTablesRequest {
1157    #[prost(message, optional, tag = "1")]
1158    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1159    /// Session identifier
1160    #[prost(string, tag = "2")]
1161    pub session_id: ::prost::alloc::string::String,
1162    /// Source and destination paths which describe copies
1163    #[prost(message, repeated, tag = "3")]
1164    pub tables: ::prost::alloc::vec::Vec<CopyTableItem>,
1165}
1166#[allow(clippy::derive_partial_eq_without_eq)]
1167#[derive(Clone, PartialEq, ::prost::Message)]
1168pub struct CopyTablesResponse {
1169    #[prost(message, optional, tag = "1")]
1170    pub operation: ::core::option::Option<super::operations::Operation>,
1171}
1172#[allow(clippy::derive_partial_eq_without_eq)]
1173#[derive(Clone, PartialEq, ::prost::Message)]
1174pub struct RenameTableItem {
1175    /// Full path
1176    #[prost(string, tag = "1")]
1177    pub source_path: ::prost::alloc::string::String,
1178    /// Full path
1179    #[prost(string, tag = "2")]
1180    pub destination_path: ::prost::alloc::string::String,
1181    /// Move options
1182    #[prost(bool, tag = "3")]
1183    pub replace_destination: bool,
1184}
1185/// Moves given tables
1186#[allow(clippy::derive_partial_eq_without_eq)]
1187#[derive(Clone, PartialEq, ::prost::Message)]
1188pub struct RenameTablesRequest {
1189    #[prost(message, optional, tag = "1")]
1190    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1191    /// Session identifier
1192    #[prost(string, tag = "2")]
1193    pub session_id: ::prost::alloc::string::String,
1194    /// Source and destination paths inside RenameTableItem describe rename actions
1195    #[prost(message, repeated, tag = "3")]
1196    pub tables: ::prost::alloc::vec::Vec<RenameTableItem>,
1197}
1198#[allow(clippy::derive_partial_eq_without_eq)]
1199#[derive(Clone, PartialEq, ::prost::Message)]
1200pub struct RenameTablesResponse {
1201    #[prost(message, optional, tag = "1")]
1202    pub operation: ::core::option::Option<super::operations::Operation>,
1203}
1204/// Describe table with given path
1205#[allow(clippy::derive_partial_eq_without_eq)]
1206#[derive(Clone, PartialEq, ::prost::Message)]
1207pub struct DescribeTableRequest {
1208    /// Session identifier
1209    #[prost(string, tag = "1")]
1210    pub session_id: ::prost::alloc::string::String,
1211    /// Full path
1212    #[prost(string, tag = "2")]
1213    pub path: ::prost::alloc::string::String,
1214    #[prost(message, optional, tag = "4")]
1215    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1216    /// Includes shard key distribution info
1217    #[prost(bool, tag = "5")]
1218    pub include_shard_key_bounds: bool,
1219    /// Includes table statistics
1220    #[prost(bool, tag = "6")]
1221    pub include_table_stats: bool,
1222    /// Includes partition statistics (required include_table_statistics)
1223    #[prost(bool, tag = "7")]
1224    pub include_partition_stats: bool,
1225}
1226#[allow(clippy::derive_partial_eq_without_eq)]
1227#[derive(Clone, PartialEq, ::prost::Message)]
1228pub struct DescribeTableResponse {
1229    /// Holds DescribeTableResult in case of successful call
1230    #[prost(message, optional, tag = "1")]
1231    pub operation: ::core::option::Option<super::operations::Operation>,
1232}
1233#[allow(clippy::derive_partial_eq_without_eq)]
1234#[derive(Clone, PartialEq, ::prost::Message)]
1235pub struct DescribeTableResult {
1236    /// Description of scheme object
1237    #[prost(message, optional, tag = "1")]
1238    pub self_: ::core::option::Option<super::scheme::Entry>,
1239    /// List of columns
1240    #[prost(message, repeated, tag = "2")]
1241    pub columns: ::prost::alloc::vec::Vec<ColumnMeta>,
1242    /// List of primary key columns
1243    #[prost(string, repeated, tag = "3")]
1244    pub primary_key: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1245    /// List of key ranges for shard
1246    #[prost(message, repeated, tag = "4")]
1247    pub shard_key_bounds: ::prost::alloc::vec::Vec<super::TypedValue>,
1248    /// List of indexes
1249    #[prost(message, repeated, tag = "5")]
1250    pub indexes: ::prost::alloc::vec::Vec<TableIndexDescription>,
1251    /// Statistics of table
1252    #[prost(message, optional, tag = "6")]
1253    pub table_stats: ::core::option::Option<TableStats>,
1254    /// TTL params
1255    #[prost(message, optional, tag = "7")]
1256    pub ttl_settings: ::core::option::Option<TtlSettings>,
1257    /// Storage settings for table
1258    #[prost(message, optional, tag = "8")]
1259    pub storage_settings: ::core::option::Option<StorageSettings>,
1260    /// Column families
1261    #[prost(message, repeated, tag = "9")]
1262    pub column_families: ::prost::alloc::vec::Vec<ColumnFamily>,
1263    /// Attributes
1264    #[prost(map = "string, string", tag = "10")]
1265    pub attributes: ::std::collections::HashMap<
1266        ::prost::alloc::string::String,
1267        ::prost::alloc::string::String,
1268    >,
1269    /// Partitioning settings for table
1270    #[prost(message, optional, tag = "12")]
1271    pub partitioning_settings: ::core::option::Option<PartitioningSettings>,
1272    /// Bloom filter by key
1273    #[prost(enumeration = "super::feature_flag::Status", tag = "13")]
1274    pub key_bloom_filter: i32,
1275    /// Read replicas settings for table
1276    #[prost(message, optional, tag = "14")]
1277    pub read_replicas_settings: ::core::option::Option<ReadReplicasSettings>,
1278    /// List of changefeeds
1279    #[prost(message, repeated, tag = "15")]
1280    pub changefeeds: ::prost::alloc::vec::Vec<ChangefeedDescription>,
1281}
1282#[allow(clippy::derive_partial_eq_without_eq)]
1283#[derive(Clone, PartialEq, ::prost::Message)]
1284pub struct Query {
1285    /// Text of query or id prepared query
1286    #[prost(oneof = "query::Query", tags = "1, 2")]
1287    pub query: ::core::option::Option<query::Query>,
1288}
1289/// Nested message and enum types in `Query`.
1290pub mod query {
1291    /// Text of query or id prepared query
1292    #[allow(clippy::derive_partial_eq_without_eq)]
1293    #[derive(Clone, PartialEq, ::prost::Oneof)]
1294    pub enum Query {
1295        /// SQL program
1296        #[prost(string, tag = "1")]
1297        YqlText(::prost::alloc::string::String),
1298        /// Prepared query id
1299        #[prost(string, tag = "2")]
1300        Id(::prost::alloc::string::String),
1301    }
1302}
1303#[allow(clippy::derive_partial_eq_without_eq)]
1304#[derive(Clone, PartialEq, ::prost::Message)]
1305pub struct SerializableModeSettings {}
1306#[allow(clippy::derive_partial_eq_without_eq)]
1307#[derive(Clone, PartialEq, ::prost::Message)]
1308pub struct OnlineModeSettings {
1309    #[prost(bool, tag = "1")]
1310    pub allow_inconsistent_reads: bool,
1311}
1312#[allow(clippy::derive_partial_eq_without_eq)]
1313#[derive(Clone, PartialEq, ::prost::Message)]
1314pub struct StaleModeSettings {}
1315#[allow(clippy::derive_partial_eq_without_eq)]
1316#[derive(Clone, PartialEq, ::prost::Message)]
1317pub struct SnapshotModeSettings {}
1318#[allow(clippy::derive_partial_eq_without_eq)]
1319#[derive(Clone, PartialEq, ::prost::Message)]
1320pub struct TransactionSettings {
1321    #[prost(oneof = "transaction_settings::TxMode", tags = "1, 2, 3, 4")]
1322    pub tx_mode: ::core::option::Option<transaction_settings::TxMode>,
1323}
1324/// Nested message and enum types in `TransactionSettings`.
1325pub mod transaction_settings {
1326    #[allow(clippy::derive_partial_eq_without_eq)]
1327    #[derive(Clone, PartialEq, ::prost::Oneof)]
1328    pub enum TxMode {
1329        #[prost(message, tag = "1")]
1330        SerializableReadWrite(super::SerializableModeSettings),
1331        #[prost(message, tag = "2")]
1332        OnlineReadOnly(super::OnlineModeSettings),
1333        #[prost(message, tag = "3")]
1334        StaleReadOnly(super::StaleModeSettings),
1335        #[prost(message, tag = "4")]
1336        SnapshotReadOnly(super::SnapshotModeSettings),
1337    }
1338}
1339#[allow(clippy::derive_partial_eq_without_eq)]
1340#[derive(Clone, PartialEq, ::prost::Message)]
1341pub struct TransactionControl {
1342    #[prost(bool, tag = "10")]
1343    pub commit_tx: bool,
1344    #[prost(oneof = "transaction_control::TxSelector", tags = "1, 2")]
1345    pub tx_selector: ::core::option::Option<transaction_control::TxSelector>,
1346}
1347/// Nested message and enum types in `TransactionControl`.
1348pub mod transaction_control {
1349    #[allow(clippy::derive_partial_eq_without_eq)]
1350    #[derive(Clone, PartialEq, ::prost::Oneof)]
1351    pub enum TxSelector {
1352        #[prost(string, tag = "1")]
1353        TxId(::prost::alloc::string::String),
1354        #[prost(message, tag = "2")]
1355        BeginTx(super::TransactionSettings),
1356    }
1357}
1358#[allow(clippy::derive_partial_eq_without_eq)]
1359#[derive(Clone, PartialEq, ::prost::Message)]
1360pub struct QueryCachePolicy {
1361    #[prost(bool, tag = "1")]
1362    pub keep_in_cache: bool,
1363}
1364/// Collect and return query execution stats
1365#[allow(clippy::derive_partial_eq_without_eq)]
1366#[derive(Clone, PartialEq, ::prost::Message)]
1367pub struct QueryStatsCollection {}
1368/// Nested message and enum types in `QueryStatsCollection`.
1369pub mod query_stats_collection {
1370    #[derive(
1371        Clone,
1372        Copy,
1373        Debug,
1374        PartialEq,
1375        Eq,
1376        Hash,
1377        PartialOrd,
1378        Ord,
1379        ::prost::Enumeration
1380    )]
1381    #[repr(i32)]
1382    pub enum Mode {
1383        StatsCollectionUnspecified = 0,
1384        /// Stats collection is disabled
1385        StatsCollectionNone = 1,
1386        /// Aggregated stats of reads, updates and deletes per table
1387        StatsCollectionBasic = 2,
1388        /// Add execution stats and plan on top of STATS_COLLECTION_BASIC
1389        StatsCollectionFull = 3,
1390        /// Detailed execution stats including stats for individual tasks and channels
1391        StatsCollectionProfile = 4,
1392    }
1393    impl Mode {
1394        /// String value of the enum field names used in the ProtoBuf definition.
1395        ///
1396        /// The values are not transformed in any way and thus are considered stable
1397        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1398        pub fn as_str_name(&self) -> &'static str {
1399            match self {
1400                Mode::StatsCollectionUnspecified => "STATS_COLLECTION_UNSPECIFIED",
1401                Mode::StatsCollectionNone => "STATS_COLLECTION_NONE",
1402                Mode::StatsCollectionBasic => "STATS_COLLECTION_BASIC",
1403                Mode::StatsCollectionFull => "STATS_COLLECTION_FULL",
1404                Mode::StatsCollectionProfile => "STATS_COLLECTION_PROFILE",
1405            }
1406        }
1407        /// Creates an enum from field names used in the ProtoBuf definition.
1408        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1409            match value {
1410                "STATS_COLLECTION_UNSPECIFIED" => Some(Self::StatsCollectionUnspecified),
1411                "STATS_COLLECTION_NONE" => Some(Self::StatsCollectionNone),
1412                "STATS_COLLECTION_BASIC" => Some(Self::StatsCollectionBasic),
1413                "STATS_COLLECTION_FULL" => Some(Self::StatsCollectionFull),
1414                "STATS_COLLECTION_PROFILE" => Some(Self::StatsCollectionProfile),
1415                _ => None,
1416            }
1417        }
1418    }
1419}
1420#[allow(clippy::derive_partial_eq_without_eq)]
1421#[derive(Clone, PartialEq, ::prost::Message)]
1422pub struct ExecuteDataQueryRequest {
1423    /// Session identifier
1424    #[prost(string, tag = "1")]
1425    pub session_id: ::prost::alloc::string::String,
1426    #[prost(message, optional, tag = "2")]
1427    pub tx_control: ::core::option::Option<TransactionControl>,
1428    #[prost(message, optional, tag = "3")]
1429    pub query: ::core::option::Option<Query>,
1430    /// Map of query parameters (optional)
1431    #[prost(map = "string, message", tag = "4")]
1432    pub parameters: ::std::collections::HashMap<
1433        ::prost::alloc::string::String,
1434        super::TypedValue,
1435    >,
1436    #[prost(message, optional, tag = "5")]
1437    pub query_cache_policy: ::core::option::Option<QueryCachePolicy>,
1438    #[prost(message, optional, tag = "6")]
1439    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1440    #[prost(enumeration = "query_stats_collection::Mode", tag = "7")]
1441    pub collect_stats: i32,
1442}
1443#[allow(clippy::derive_partial_eq_without_eq)]
1444#[derive(Clone, PartialEq, ::prost::Message)]
1445pub struct ExecuteDataQueryResponse {
1446    #[prost(message, optional, tag = "1")]
1447    pub operation: ::core::option::Option<super::operations::Operation>,
1448}
1449#[allow(clippy::derive_partial_eq_without_eq)]
1450#[derive(Clone, PartialEq, ::prost::Message)]
1451pub struct ExecuteSchemeQueryRequest {
1452    /// Session identifier
1453    #[prost(string, tag = "1")]
1454    pub session_id: ::prost::alloc::string::String,
1455    /// SQL text
1456    #[prost(string, tag = "2")]
1457    pub yql_text: ::prost::alloc::string::String,
1458    #[prost(message, optional, tag = "3")]
1459    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1460}
1461#[allow(clippy::derive_partial_eq_without_eq)]
1462#[derive(Clone, PartialEq, ::prost::Message)]
1463pub struct ExecuteSchemeQueryResponse {
1464    #[prost(message, optional, tag = "1")]
1465    pub operation: ::core::option::Option<super::operations::Operation>,
1466}
1467/// Holds transaction id
1468#[allow(clippy::derive_partial_eq_without_eq)]
1469#[derive(Clone, PartialEq, ::prost::Message)]
1470pub struct TransactionMeta {
1471    /// Transaction identifier
1472    #[prost(string, tag = "1")]
1473    pub id: ::prost::alloc::string::String,
1474}
1475/// Holds query id and type of parameters
1476#[allow(clippy::derive_partial_eq_without_eq)]
1477#[derive(Clone, PartialEq, ::prost::Message)]
1478pub struct QueryMeta {
1479    /// Query identifier
1480    #[prost(string, tag = "1")]
1481    pub id: ::prost::alloc::string::String,
1482    /// Type of parameters
1483    #[prost(map = "string, message", tag = "2")]
1484    pub parameters_types: ::std::collections::HashMap<
1485        ::prost::alloc::string::String,
1486        super::Type,
1487    >,
1488}
1489/// One QueryResult can contain multiple tables
1490#[allow(clippy::derive_partial_eq_without_eq)]
1491#[derive(Clone, PartialEq, ::prost::Message)]
1492pub struct ExecuteQueryResult {
1493    /// Result rets (for each table)
1494    #[prost(message, repeated, tag = "1")]
1495    pub result_sets: ::prost::alloc::vec::Vec<super::ResultSet>,
1496    /// Transaction metadata
1497    #[prost(message, optional, tag = "2")]
1498    pub tx_meta: ::core::option::Option<TransactionMeta>,
1499    /// Query metadata
1500    #[prost(message, optional, tag = "3")]
1501    pub query_meta: ::core::option::Option<QueryMeta>,
1502    /// Query execution statistics
1503    #[prost(message, optional, tag = "4")]
1504    pub query_stats: ::core::option::Option<super::table_stats::QueryStats>,
1505}
1506/// Explain data query
1507#[allow(clippy::derive_partial_eq_without_eq)]
1508#[derive(Clone, PartialEq, ::prost::Message)]
1509pub struct ExplainDataQueryRequest {
1510    /// Session identifier
1511    #[prost(string, tag = "1")]
1512    pub session_id: ::prost::alloc::string::String,
1513    /// SQL text to explain
1514    #[prost(string, tag = "2")]
1515    pub yql_text: ::prost::alloc::string::String,
1516    #[prost(message, optional, tag = "3")]
1517    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1518}
1519#[allow(clippy::derive_partial_eq_without_eq)]
1520#[derive(Clone, PartialEq, ::prost::Message)]
1521pub struct ExplainDataQueryResponse {
1522    /// Holds ExplainQueryResult in case of successful call
1523    #[prost(message, optional, tag = "1")]
1524    pub operation: ::core::option::Option<super::operations::Operation>,
1525}
1526#[allow(clippy::derive_partial_eq_without_eq)]
1527#[derive(Clone, PartialEq, ::prost::Message)]
1528pub struct ExplainQueryResult {
1529    #[prost(string, tag = "1")]
1530    pub query_ast: ::prost::alloc::string::String,
1531    #[prost(string, tag = "2")]
1532    pub query_plan: ::prost::alloc::string::String,
1533}
1534/// Prepare given program to execute
1535#[allow(clippy::derive_partial_eq_without_eq)]
1536#[derive(Clone, PartialEq, ::prost::Message)]
1537pub struct PrepareDataQueryRequest {
1538    /// Session identifier
1539    #[prost(string, tag = "1")]
1540    pub session_id: ::prost::alloc::string::String,
1541    /// SQL text
1542    #[prost(string, tag = "2")]
1543    pub yql_text: ::prost::alloc::string::String,
1544    #[prost(message, optional, tag = "3")]
1545    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1546}
1547#[allow(clippy::derive_partial_eq_without_eq)]
1548#[derive(Clone, PartialEq, ::prost::Message)]
1549pub struct PrepareDataQueryResponse {
1550    /// Holds PrepareQueryResult in case of successful call
1551    #[prost(message, optional, tag = "1")]
1552    pub operation: ::core::option::Option<super::operations::Operation>,
1553}
1554#[allow(clippy::derive_partial_eq_without_eq)]
1555#[derive(Clone, PartialEq, ::prost::Message)]
1556pub struct PrepareQueryResult {
1557    /// Query id, used to perform ExecuteDataQuery
1558    #[prost(string, tag = "1")]
1559    pub query_id: ::prost::alloc::string::String,
1560    /// Parameters type, used to fill in parameter values
1561    #[prost(map = "string, message", tag = "2")]
1562    pub parameters_types: ::std::collections::HashMap<
1563        ::prost::alloc::string::String,
1564        super::Type,
1565    >,
1566}
1567/// Keep session alive
1568#[allow(clippy::derive_partial_eq_without_eq)]
1569#[derive(Clone, PartialEq, ::prost::Message)]
1570pub struct KeepAliveRequest {
1571    /// Session identifier
1572    #[prost(string, tag = "1")]
1573    pub session_id: ::prost::alloc::string::String,
1574    #[prost(message, optional, tag = "2")]
1575    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1576}
1577#[allow(clippy::derive_partial_eq_without_eq)]
1578#[derive(Clone, PartialEq, ::prost::Message)]
1579pub struct KeepAliveResponse {
1580    #[prost(message, optional, tag = "1")]
1581    pub operation: ::core::option::Option<super::operations::Operation>,
1582}
1583#[allow(clippy::derive_partial_eq_without_eq)]
1584#[derive(Clone, PartialEq, ::prost::Message)]
1585pub struct KeepAliveResult {
1586    #[prost(enumeration = "keep_alive_result::SessionStatus", tag = "1")]
1587    pub session_status: i32,
1588}
1589/// Nested message and enum types in `KeepAliveResult`.
1590pub mod keep_alive_result {
1591    #[derive(
1592        Clone,
1593        Copy,
1594        Debug,
1595        PartialEq,
1596        Eq,
1597        Hash,
1598        PartialOrd,
1599        Ord,
1600        ::prost::Enumeration
1601    )]
1602    #[repr(i32)]
1603    pub enum SessionStatus {
1604        Unspecified = 0,
1605        Ready = 1,
1606        Busy = 2,
1607    }
1608    impl SessionStatus {
1609        /// String value of the enum field names used in the ProtoBuf definition.
1610        ///
1611        /// The values are not transformed in any way and thus are considered stable
1612        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1613        pub fn as_str_name(&self) -> &'static str {
1614            match self {
1615                SessionStatus::Unspecified => "SESSION_STATUS_UNSPECIFIED",
1616                SessionStatus::Ready => "SESSION_STATUS_READY",
1617                SessionStatus::Busy => "SESSION_STATUS_BUSY",
1618            }
1619        }
1620        /// Creates an enum from field names used in the ProtoBuf definition.
1621        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1622            match value {
1623                "SESSION_STATUS_UNSPECIFIED" => Some(Self::Unspecified),
1624                "SESSION_STATUS_READY" => Some(Self::Ready),
1625                "SESSION_STATUS_BUSY" => Some(Self::Busy),
1626                _ => None,
1627            }
1628        }
1629    }
1630}
1631/// Begin transaction on given session with given settings
1632#[allow(clippy::derive_partial_eq_without_eq)]
1633#[derive(Clone, PartialEq, ::prost::Message)]
1634pub struct BeginTransactionRequest {
1635    /// Session identifier
1636    #[prost(string, tag = "1")]
1637    pub session_id: ::prost::alloc::string::String,
1638    #[prost(message, optional, tag = "2")]
1639    pub tx_settings: ::core::option::Option<TransactionSettings>,
1640    #[prost(message, optional, tag = "3")]
1641    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1642}
1643#[allow(clippy::derive_partial_eq_without_eq)]
1644#[derive(Clone, PartialEq, ::prost::Message)]
1645pub struct BeginTransactionResponse {
1646    /// Holds BeginTransactionResult in case of successful call
1647    #[prost(message, optional, tag = "1")]
1648    pub operation: ::core::option::Option<super::operations::Operation>,
1649}
1650#[allow(clippy::derive_partial_eq_without_eq)]
1651#[derive(Clone, PartialEq, ::prost::Message)]
1652pub struct BeginTransactionResult {
1653    #[prost(message, optional, tag = "1")]
1654    pub tx_meta: ::core::option::Option<TransactionMeta>,
1655}
1656/// Commit transaction with given session and tx id
1657#[allow(clippy::derive_partial_eq_without_eq)]
1658#[derive(Clone, PartialEq, ::prost::Message)]
1659pub struct CommitTransactionRequest {
1660    /// Session identifier
1661    #[prost(string, tag = "1")]
1662    pub session_id: ::prost::alloc::string::String,
1663    /// Transaction identifier
1664    #[prost(string, tag = "2")]
1665    pub tx_id: ::prost::alloc::string::String,
1666    #[prost(message, optional, tag = "3")]
1667    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1668    #[prost(enumeration = "query_stats_collection::Mode", tag = "4")]
1669    pub collect_stats: i32,
1670}
1671#[allow(clippy::derive_partial_eq_without_eq)]
1672#[derive(Clone, PartialEq, ::prost::Message)]
1673pub struct CommitTransactionResponse {
1674    #[prost(message, optional, tag = "1")]
1675    pub operation: ::core::option::Option<super::operations::Operation>,
1676}
1677#[allow(clippy::derive_partial_eq_without_eq)]
1678#[derive(Clone, PartialEq, ::prost::Message)]
1679pub struct CommitTransactionResult {
1680    #[prost(message, optional, tag = "1")]
1681    pub query_stats: ::core::option::Option<super::table_stats::QueryStats>,
1682}
1683/// Rollback transaction with given session and tx id
1684#[allow(clippy::derive_partial_eq_without_eq)]
1685#[derive(Clone, PartialEq, ::prost::Message)]
1686pub struct RollbackTransactionRequest {
1687    /// Session identifier
1688    #[prost(string, tag = "1")]
1689    pub session_id: ::prost::alloc::string::String,
1690    /// Transaction identifier
1691    #[prost(string, tag = "2")]
1692    pub tx_id: ::prost::alloc::string::String,
1693    #[prost(message, optional, tag = "3")]
1694    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1695}
1696#[allow(clippy::derive_partial_eq_without_eq)]
1697#[derive(Clone, PartialEq, ::prost::Message)]
1698pub struct RollbackTransactionResponse {
1699    #[prost(message, optional, tag = "1")]
1700    pub operation: ::core::option::Option<super::operations::Operation>,
1701}
1702#[allow(clippy::derive_partial_eq_without_eq)]
1703#[derive(Clone, PartialEq, ::prost::Message)]
1704pub struct StoragePolicyDescription {
1705    #[prost(string, tag = "1")]
1706    pub name: ::prost::alloc::string::String,
1707    #[prost(map = "string, string", tag = "2")]
1708    pub labels: ::std::collections::HashMap<
1709        ::prost::alloc::string::String,
1710        ::prost::alloc::string::String,
1711    >,
1712}
1713#[allow(clippy::derive_partial_eq_without_eq)]
1714#[derive(Clone, PartialEq, ::prost::Message)]
1715pub struct CompactionPolicyDescription {
1716    #[prost(string, tag = "1")]
1717    pub name: ::prost::alloc::string::String,
1718    #[prost(map = "string, string", tag = "2")]
1719    pub labels: ::std::collections::HashMap<
1720        ::prost::alloc::string::String,
1721        ::prost::alloc::string::String,
1722    >,
1723}
1724#[allow(clippy::derive_partial_eq_without_eq)]
1725#[derive(Clone, PartialEq, ::prost::Message)]
1726pub struct PartitioningPolicyDescription {
1727    #[prost(string, tag = "1")]
1728    pub name: ::prost::alloc::string::String,
1729    #[prost(map = "string, string", tag = "2")]
1730    pub labels: ::std::collections::HashMap<
1731        ::prost::alloc::string::String,
1732        ::prost::alloc::string::String,
1733    >,
1734}
1735#[allow(clippy::derive_partial_eq_without_eq)]
1736#[derive(Clone, PartialEq, ::prost::Message)]
1737pub struct ExecutionPolicyDescription {
1738    #[prost(string, tag = "1")]
1739    pub name: ::prost::alloc::string::String,
1740    #[prost(map = "string, string", tag = "2")]
1741    pub labels: ::std::collections::HashMap<
1742        ::prost::alloc::string::String,
1743        ::prost::alloc::string::String,
1744    >,
1745}
1746#[allow(clippy::derive_partial_eq_without_eq)]
1747#[derive(Clone, PartialEq, ::prost::Message)]
1748pub struct ReplicationPolicyDescription {
1749    #[prost(string, tag = "1")]
1750    pub name: ::prost::alloc::string::String,
1751    #[prost(map = "string, string", tag = "2")]
1752    pub labels: ::std::collections::HashMap<
1753        ::prost::alloc::string::String,
1754        ::prost::alloc::string::String,
1755    >,
1756}
1757#[allow(clippy::derive_partial_eq_without_eq)]
1758#[derive(Clone, PartialEq, ::prost::Message)]
1759pub struct CachingPolicyDescription {
1760    #[prost(string, tag = "1")]
1761    pub name: ::prost::alloc::string::String,
1762    #[prost(map = "string, string", tag = "2")]
1763    pub labels: ::std::collections::HashMap<
1764        ::prost::alloc::string::String,
1765        ::prost::alloc::string::String,
1766    >,
1767}
1768#[allow(clippy::derive_partial_eq_without_eq)]
1769#[derive(Clone, PartialEq, ::prost::Message)]
1770pub struct TableProfileDescription {
1771    #[prost(string, tag = "1")]
1772    pub name: ::prost::alloc::string::String,
1773    #[prost(map = "string, string", tag = "2")]
1774    pub labels: ::std::collections::HashMap<
1775        ::prost::alloc::string::String,
1776        ::prost::alloc::string::String,
1777    >,
1778    #[prost(string, tag = "3")]
1779    pub default_storage_policy: ::prost::alloc::string::String,
1780    #[prost(string, repeated, tag = "4")]
1781    pub allowed_storage_policies: ::prost::alloc::vec::Vec<
1782        ::prost::alloc::string::String,
1783    >,
1784    #[prost(string, tag = "5")]
1785    pub default_compaction_policy: ::prost::alloc::string::String,
1786    #[prost(string, repeated, tag = "6")]
1787    pub allowed_compaction_policies: ::prost::alloc::vec::Vec<
1788        ::prost::alloc::string::String,
1789    >,
1790    #[prost(string, tag = "7")]
1791    pub default_partitioning_policy: ::prost::alloc::string::String,
1792    #[prost(string, repeated, tag = "8")]
1793    pub allowed_partitioning_policies: ::prost::alloc::vec::Vec<
1794        ::prost::alloc::string::String,
1795    >,
1796    #[prost(string, tag = "9")]
1797    pub default_execution_policy: ::prost::alloc::string::String,
1798    #[prost(string, repeated, tag = "10")]
1799    pub allowed_execution_policies: ::prost::alloc::vec::Vec<
1800        ::prost::alloc::string::String,
1801    >,
1802    #[prost(string, tag = "11")]
1803    pub default_replication_policy: ::prost::alloc::string::String,
1804    #[prost(string, repeated, tag = "12")]
1805    pub allowed_replication_policies: ::prost::alloc::vec::Vec<
1806        ::prost::alloc::string::String,
1807    >,
1808    #[prost(string, tag = "13")]
1809    pub default_caching_policy: ::prost::alloc::string::String,
1810    #[prost(string, repeated, tag = "14")]
1811    pub allowed_caching_policies: ::prost::alloc::vec::Vec<
1812        ::prost::alloc::string::String,
1813    >,
1814}
1815#[allow(clippy::derive_partial_eq_without_eq)]
1816#[derive(Clone, PartialEq, ::prost::Message)]
1817pub struct DescribeTableOptionsRequest {
1818    #[prost(message, optional, tag = "1")]
1819    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1820}
1821#[allow(clippy::derive_partial_eq_without_eq)]
1822#[derive(Clone, PartialEq, ::prost::Message)]
1823pub struct DescribeTableOptionsResponse {
1824    /// operation.result holds ListTableParametersResult
1825    #[prost(message, optional, tag = "1")]
1826    pub operation: ::core::option::Option<super::operations::Operation>,
1827}
1828#[allow(clippy::derive_partial_eq_without_eq)]
1829#[derive(Clone, PartialEq, ::prost::Message)]
1830pub struct DescribeTableOptionsResult {
1831    #[prost(message, repeated, tag = "1")]
1832    pub table_profile_presets: ::prost::alloc::vec::Vec<TableProfileDescription>,
1833    #[prost(message, repeated, tag = "2")]
1834    pub storage_policy_presets: ::prost::alloc::vec::Vec<StoragePolicyDescription>,
1835    #[prost(message, repeated, tag = "3")]
1836    pub compaction_policy_presets: ::prost::alloc::vec::Vec<CompactionPolicyDescription>,
1837    #[prost(message, repeated, tag = "4")]
1838    pub partitioning_policy_presets: ::prost::alloc::vec::Vec<
1839        PartitioningPolicyDescription,
1840    >,
1841    #[prost(message, repeated, tag = "5")]
1842    pub execution_policy_presets: ::prost::alloc::vec::Vec<ExecutionPolicyDescription>,
1843    #[prost(message, repeated, tag = "6")]
1844    pub replication_policy_presets: ::prost::alloc::vec::Vec<
1845        ReplicationPolicyDescription,
1846    >,
1847    #[prost(message, repeated, tag = "7")]
1848    pub caching_policy_presets: ::prost::alloc::vec::Vec<CachingPolicyDescription>,
1849}
1850#[allow(clippy::derive_partial_eq_without_eq)]
1851#[derive(Clone, PartialEq, ::prost::Message)]
1852pub struct KeyRange {
1853    /// Left border
1854    #[prost(oneof = "key_range::FromBound", tags = "1, 2")]
1855    pub from_bound: ::core::option::Option<key_range::FromBound>,
1856    /// Right border
1857    #[prost(oneof = "key_range::ToBound", tags = "3, 4")]
1858    pub to_bound: ::core::option::Option<key_range::ToBound>,
1859}
1860/// Nested message and enum types in `KeyRange`.
1861pub mod key_range {
1862    /// Left border
1863    #[allow(clippy::derive_partial_eq_without_eq)]
1864    #[derive(Clone, PartialEq, ::prost::Oneof)]
1865    pub enum FromBound {
1866        /// Specify if we don't want to include given key
1867        #[prost(message, tag = "1")]
1868        Greater(super::super::TypedValue),
1869        /// Specify if we want to include given key
1870        #[prost(message, tag = "2")]
1871        GreaterOrEqual(super::super::TypedValue),
1872    }
1873    /// Right border
1874    #[allow(clippy::derive_partial_eq_without_eq)]
1875    #[derive(Clone, PartialEq, ::prost::Oneof)]
1876    pub enum ToBound {
1877        /// Specify if we don't want to include given key
1878        #[prost(message, tag = "3")]
1879        Less(super::super::TypedValue),
1880        /// Specify if we want to include given key
1881        #[prost(message, tag = "4")]
1882        LessOrEqual(super::super::TypedValue),
1883    }
1884}
1885/// Request to read table (without SQL)
1886#[allow(clippy::derive_partial_eq_without_eq)]
1887#[derive(Clone, PartialEq, ::prost::Message)]
1888pub struct ReadTableRequest {
1889    /// Session identifier
1890    #[prost(string, tag = "1")]
1891    pub session_id: ::prost::alloc::string::String,
1892    /// Path to table to read
1893    #[prost(string, tag = "2")]
1894    pub path: ::prost::alloc::string::String,
1895    /// Primary key range to read
1896    #[prost(message, optional, tag = "3")]
1897    pub key_range: ::core::option::Option<KeyRange>,
1898    /// Output columns
1899    #[prost(string, repeated, tag = "4")]
1900    pub columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1901    /// Require ordered reading
1902    #[prost(bool, tag = "5")]
1903    pub ordered: bool,
1904    /// Limits row count to read
1905    #[prost(uint64, tag = "6")]
1906    pub row_limit: u64,
1907    /// Use a server-side snapshot
1908    #[prost(enumeration = "super::feature_flag::Status", tag = "7")]
1909    pub use_snapshot: i32,
1910}
1911/// ReadTable doesn't use Operation, returns result directly
1912#[allow(clippy::derive_partial_eq_without_eq)]
1913#[derive(Clone, PartialEq, ::prost::Message)]
1914pub struct ReadTableResponse {
1915    /// Status of request (same as other statuses)
1916    #[prost(enumeration = "super::status_ids::StatusCode", tag = "1")]
1917    pub status: i32,
1918    /// Issues
1919    #[prost(message, repeated, tag = "2")]
1920    pub issues: ::prost::alloc::vec::Vec<super::issue::IssueMessage>,
1921    /// Optional snapshot that corresponds to the returned data
1922    #[prost(message, optional, tag = "4")]
1923    pub snapshot: ::core::option::Option<super::VirtualTimestamp>,
1924    /// Read table result
1925    #[prost(message, optional, tag = "3")]
1926    pub result: ::core::option::Option<ReadTableResult>,
1927}
1928/// Result of read table request
1929#[allow(clippy::derive_partial_eq_without_eq)]
1930#[derive(Clone, PartialEq, ::prost::Message)]
1931pub struct ReadTableResult {
1932    /// Result set (same as result of sql request)
1933    #[prost(message, optional, tag = "1")]
1934    pub result_set: ::core::option::Option<super::ResultSet>,
1935}
1936#[allow(clippy::derive_partial_eq_without_eq)]
1937#[derive(Clone, PartialEq, ::prost::Message)]
1938pub struct BulkUpsertRequest {
1939    #[prost(string, tag = "1")]
1940    pub table: ::prost::alloc::string::String,
1941    /// "rows" parameter must be a list of structs where each stuct represents one row.
1942    /// It must contain all key columns but not necessarily all non-key columns.
1943    /// Similar to UPSERT statement only values of specified columns will be updated.
1944    #[prost(message, optional, tag = "2")]
1945    pub rows: ::core::option::Option<super::TypedValue>,
1946    #[prost(message, optional, tag = "3")]
1947    pub operation_params: ::core::option::Option<super::operations::OperationParams>,
1948    /// It's last in the definition to help with sidecar patterns
1949    #[prost(bytes = "vec", tag = "1000")]
1950    pub data: ::prost::alloc::vec::Vec<u8>,
1951    /// You may set data_format + data instead of rows to insert data in serialized formats.
1952    #[prost(oneof = "bulk_upsert_request::DataFormat", tags = "7, 8")]
1953    pub data_format: ::core::option::Option<bulk_upsert_request::DataFormat>,
1954}
1955/// Nested message and enum types in `BulkUpsertRequest`.
1956pub mod bulk_upsert_request {
1957    /// You may set data_format + data instead of rows to insert data in serialized formats.
1958    #[allow(clippy::derive_partial_eq_without_eq)]
1959    #[derive(Clone, PartialEq, ::prost::Oneof)]
1960    pub enum DataFormat {
1961        #[prost(message, tag = "7")]
1962        ArrowBatchSettings(super::super::formats::ArrowBatchSettings),
1963        #[prost(message, tag = "8")]
1964        CsvSettings(super::super::formats::CsvSettings),
1965    }
1966}
1967#[allow(clippy::derive_partial_eq_without_eq)]
1968#[derive(Clone, PartialEq, ::prost::Message)]
1969pub struct BulkUpsertResponse {
1970    #[prost(message, optional, tag = "1")]
1971    pub operation: ::core::option::Option<super::operations::Operation>,
1972}
1973#[allow(clippy::derive_partial_eq_without_eq)]
1974#[derive(Clone, PartialEq, ::prost::Message)]
1975pub struct BulkUpsertResult {}
1976#[allow(clippy::derive_partial_eq_without_eq)]
1977#[derive(Clone, PartialEq, ::prost::Message)]
1978pub struct ExecuteScanQueryRequest {
1979    #[prost(message, optional, tag = "3")]
1980    pub query: ::core::option::Option<Query>,
1981    #[prost(map = "string, message", tag = "4")]
1982    pub parameters: ::std::collections::HashMap<
1983        ::prost::alloc::string::String,
1984        super::TypedValue,
1985    >,
1986    #[prost(enumeration = "execute_scan_query_request::Mode", tag = "6")]
1987    pub mode: i32,
1988    #[prost(enumeration = "query_stats_collection::Mode", tag = "8")]
1989    pub collect_stats: i32,
1990}
1991/// Nested message and enum types in `ExecuteScanQueryRequest`.
1992pub mod execute_scan_query_request {
1993    #[derive(
1994        Clone,
1995        Copy,
1996        Debug,
1997        PartialEq,
1998        Eq,
1999        Hash,
2000        PartialOrd,
2001        Ord,
2002        ::prost::Enumeration
2003    )]
2004    #[repr(i32)]
2005    pub enum Mode {
2006        Unspecified = 0,
2007        Explain = 1,
2008        /// MODE_PREPARE = 2;
2009        Exec = 3,
2010    }
2011    impl Mode {
2012        /// String value of the enum field names used in the ProtoBuf definition.
2013        ///
2014        /// The values are not transformed in any way and thus are considered stable
2015        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2016        pub fn as_str_name(&self) -> &'static str {
2017            match self {
2018                Mode::Unspecified => "MODE_UNSPECIFIED",
2019                Mode::Explain => "MODE_EXPLAIN",
2020                Mode::Exec => "MODE_EXEC",
2021            }
2022        }
2023        /// Creates an enum from field names used in the ProtoBuf definition.
2024        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2025            match value {
2026                "MODE_UNSPECIFIED" => Some(Self::Unspecified),
2027                "MODE_EXPLAIN" => Some(Self::Explain),
2028                "MODE_EXEC" => Some(Self::Exec),
2029                _ => None,
2030            }
2031        }
2032    }
2033}
2034#[allow(clippy::derive_partial_eq_without_eq)]
2035#[derive(Clone, PartialEq, ::prost::Message)]
2036pub struct ExecuteScanQueryPartialResponse {
2037    #[prost(enumeration = "super::status_ids::StatusCode", tag = "1")]
2038    pub status: i32,
2039    #[prost(message, repeated, tag = "2")]
2040    pub issues: ::prost::alloc::vec::Vec<super::issue::IssueMessage>,
2041    #[prost(message, optional, tag = "3")]
2042    pub result: ::core::option::Option<ExecuteScanQueryPartialResult>,
2043}
2044#[allow(clippy::derive_partial_eq_without_eq)]
2045#[derive(Clone, PartialEq, ::prost::Message)]
2046pub struct ExecuteScanQueryPartialResult {
2047    #[prost(message, optional, tag = "1")]
2048    pub result_set: ::core::option::Option<super::ResultSet>,
2049    #[prost(message, optional, tag = "6")]
2050    pub query_stats: ::core::option::Option<super::table_stats::QueryStats>,
2051}