ydb_grpc/generated/
ydb.table.rs

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