vitess_grpc/generated/
vtctldata.rs

1/// ExecuteVtctlCommandRequest is the payload for ExecuteVtctlCommand.
2/// timeouts are in nanoseconds.
3#[allow(clippy::derive_partial_eq_without_eq)]
4#[derive(Clone, PartialEq, ::prost::Message)]
5pub struct ExecuteVtctlCommandRequest {
6    #[prost(string, repeated, tag = "1")]
7    pub args: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
8    #[prost(int64, tag = "2")]
9    pub action_timeout: i64,
10}
11/// ExecuteVtctlCommandResponse is streamed back by ExecuteVtctlCommand.
12#[allow(clippy::derive_partial_eq_without_eq)]
13#[derive(Clone, PartialEq, ::prost::Message)]
14pub struct ExecuteVtctlCommandResponse {
15    #[prost(message, optional, tag = "1")]
16    pub event: ::core::option::Option<super::logutil::Event>,
17}
18/// TableMaterializeSttings contains the settings for one table.
19#[allow(clippy::derive_partial_eq_without_eq)]
20#[derive(Clone, PartialEq, ::prost::Message)]
21pub struct TableMaterializeSettings {
22    #[prost(string, tag = "1")]
23    pub target_table: ::prost::alloc::string::String,
24    /// source_expression is a select statement.
25    #[prost(string, tag = "2")]
26    pub source_expression: ::prost::alloc::string::String,
27    /// create_ddl contains the DDL to create the target table.
28    /// If empty, the target table must already exist.
29    /// if "copy", the target table DDL is the same as the source table.
30    #[prost(string, tag = "3")]
31    pub create_ddl: ::prost::alloc::string::String,
32}
33/// MaterializeSettings contains the settings for the Materialize command.
34#[allow(clippy::derive_partial_eq_without_eq)]
35#[derive(Clone, PartialEq, ::prost::Message)]
36pub struct MaterializeSettings {
37    /// workflow is the name of the workflow.
38    #[prost(string, tag = "1")]
39    pub workflow: ::prost::alloc::string::String,
40    #[prost(string, tag = "2")]
41    pub source_keyspace: ::prost::alloc::string::String,
42    #[prost(string, tag = "3")]
43    pub target_keyspace: ::prost::alloc::string::String,
44    /// stop_after_copy specifies if vreplication should be stopped after copying.
45    #[prost(bool, tag = "4")]
46    pub stop_after_copy: bool,
47    #[prost(message, repeated, tag = "5")]
48    pub table_settings: ::prost::alloc::vec::Vec<TableMaterializeSettings>,
49    /// optional parameters.
50    #[prost(string, tag = "6")]
51    pub cell: ::prost::alloc::string::String,
52    #[prost(string, tag = "7")]
53    pub tablet_types: ::prost::alloc::string::String,
54    /// ExternalCluster is the name of the mounted cluster which has the source keyspace/db for this workflow
55    /// it is of the type <cluster_type.cluster_name>
56    #[prost(string, tag = "8")]
57    pub external_cluster: ::prost::alloc::string::String,
58    /// MaterializationIntent is used to identify the reason behind the materialization workflow: eg. MoveTables, CreateLookupVindex
59    #[prost(enumeration = "MaterializationIntent", tag = "9")]
60    pub materialization_intent: i32,
61    /// SourceTimeZone is the time zone in which datetimes on the source were stored, provided as an option in MoveTable
62    #[prost(string, tag = "10")]
63    pub source_time_zone: ::prost::alloc::string::String,
64    /// TargetTimeZone is not currently specifiable by the user, defaults to UTC for the forward workflows
65    /// and to the SourceTimeZone in reverse workflows
66    #[prost(string, tag = "11")]
67    pub target_time_zone: ::prost::alloc::string::String,
68    #[prost(string, repeated, tag = "12")]
69    pub source_shards: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
70    /// OnDdl specifies the action to be taken when a DDL is encountered.
71    #[prost(string, tag = "13")]
72    pub on_ddl: ::prost::alloc::string::String,
73    /// DeferSecondaryKeys specifies if secondary keys should be created in one shot after table copy finishes.
74    #[prost(bool, tag = "14")]
75    pub defer_secondary_keys: bool,
76    #[prost(
77        enumeration = "super::tabletmanagerdata::TabletSelectionPreference",
78        tag = "15"
79    )]
80    pub tablet_selection_preference: i32,
81    #[prost(bool, tag = "16")]
82    pub atomic_copy: bool,
83}
84#[allow(clippy::derive_partial_eq_without_eq)]
85#[derive(Clone, PartialEq, ::prost::Message)]
86pub struct Keyspace {
87    #[prost(string, tag = "1")]
88    pub name: ::prost::alloc::string::String,
89    #[prost(message, optional, tag = "2")]
90    pub keyspace: ::core::option::Option<super::topodata::Keyspace>,
91}
92/// SchemaMigration represents a row in the schema_migrations sidecar table.
93#[allow(clippy::derive_partial_eq_without_eq)]
94#[derive(Clone, PartialEq, ::prost::Message)]
95pub struct SchemaMigration {
96    #[prost(string, tag = "1")]
97    pub uuid: ::prost::alloc::string::String,
98    #[prost(string, tag = "2")]
99    pub keyspace: ::prost::alloc::string::String,
100    #[prost(string, tag = "3")]
101    pub shard: ::prost::alloc::string::String,
102    #[prost(string, tag = "4")]
103    pub schema: ::prost::alloc::string::String,
104    #[prost(string, tag = "5")]
105    pub table: ::prost::alloc::string::String,
106    #[prost(string, tag = "6")]
107    pub migration_statement: ::prost::alloc::string::String,
108    #[prost(enumeration = "schema_migration::Strategy", tag = "7")]
109    pub strategy: i32,
110    #[prost(string, tag = "8")]
111    pub options: ::prost::alloc::string::String,
112    #[prost(message, optional, tag = "9")]
113    pub added_at: ::core::option::Option<super::vttime::Time>,
114    #[prost(message, optional, tag = "10")]
115    pub requested_at: ::core::option::Option<super::vttime::Time>,
116    #[prost(message, optional, tag = "11")]
117    pub ready_at: ::core::option::Option<super::vttime::Time>,
118    #[prost(message, optional, tag = "12")]
119    pub started_at: ::core::option::Option<super::vttime::Time>,
120    #[prost(message, optional, tag = "13")]
121    pub liveness_timestamp: ::core::option::Option<super::vttime::Time>,
122    #[prost(message, optional, tag = "14")]
123    pub completed_at: ::core::option::Option<super::vttime::Time>,
124    #[prost(message, optional, tag = "15")]
125    pub cleaned_up_at: ::core::option::Option<super::vttime::Time>,
126    #[prost(enumeration = "schema_migration::Status", tag = "16")]
127    pub status: i32,
128    #[prost(string, tag = "17")]
129    pub log_path: ::prost::alloc::string::String,
130    #[prost(string, tag = "18")]
131    pub artifacts: ::prost::alloc::string::String,
132    #[prost(uint64, tag = "19")]
133    pub retries: u64,
134    #[prost(message, optional, tag = "20")]
135    pub tablet: ::core::option::Option<super::topodata::TabletAlias>,
136    #[prost(bool, tag = "21")]
137    pub tablet_failure: bool,
138    #[prost(float, tag = "22")]
139    pub progress: f32,
140    #[prost(string, tag = "23")]
141    pub migration_context: ::prost::alloc::string::String,
142    #[prost(string, tag = "24")]
143    pub ddl_action: ::prost::alloc::string::String,
144    #[prost(string, tag = "25")]
145    pub message: ::prost::alloc::string::String,
146    #[prost(int64, tag = "26")]
147    pub eta_seconds: i64,
148    #[prost(uint64, tag = "27")]
149    pub rows_copied: u64,
150    #[prost(int64, tag = "28")]
151    pub table_rows: i64,
152    #[prost(uint32, tag = "29")]
153    pub added_unique_keys: u32,
154    #[prost(uint32, tag = "30")]
155    pub removed_unique_keys: u32,
156    #[prost(string, tag = "31")]
157    pub log_file: ::prost::alloc::string::String,
158    #[prost(message, optional, tag = "32")]
159    pub artifact_retention: ::core::option::Option<super::vttime::Duration>,
160    #[prost(bool, tag = "33")]
161    pub postpone_completion: bool,
162    #[prost(string, tag = "34")]
163    pub removed_unique_key_names: ::prost::alloc::string::String,
164    #[prost(string, tag = "35")]
165    pub dropped_no_default_column_names: ::prost::alloc::string::String,
166    #[prost(string, tag = "36")]
167    pub expanded_column_names: ::prost::alloc::string::String,
168    #[prost(string, tag = "37")]
169    pub revertible_notes: ::prost::alloc::string::String,
170    #[prost(bool, tag = "38")]
171    pub allow_concurrent: bool,
172    #[prost(string, tag = "39")]
173    pub reverted_uuid: ::prost::alloc::string::String,
174    #[prost(bool, tag = "40")]
175    pub is_view: bool,
176    #[prost(bool, tag = "41")]
177    pub ready_to_complete: bool,
178    #[prost(int64, tag = "42")]
179    pub vitess_liveness_indicator: i64,
180    #[prost(float, tag = "43")]
181    pub user_throttle_ratio: f32,
182    #[prost(string, tag = "44")]
183    pub special_plan: ::prost::alloc::string::String,
184    #[prost(message, optional, tag = "45")]
185    pub last_throttled_at: ::core::option::Option<super::vttime::Time>,
186    #[prost(string, tag = "46")]
187    pub component_throttled: ::prost::alloc::string::String,
188    #[prost(message, optional, tag = "47")]
189    pub cancelled_at: ::core::option::Option<super::vttime::Time>,
190    #[prost(bool, tag = "48")]
191    pub postpone_launch: bool,
192    /// enum?
193    #[prost(string, tag = "49")]
194    pub stage: ::prost::alloc::string::String,
195    #[prost(uint32, tag = "50")]
196    pub cutover_attempts: u32,
197    #[prost(bool, tag = "51")]
198    pub is_immediate_operation: bool,
199    #[prost(message, optional, tag = "52")]
200    pub reviewed_at: ::core::option::Option<super::vttime::Time>,
201    #[prost(message, optional, tag = "53")]
202    pub ready_to_complete_at: ::core::option::Option<super::vttime::Time>,
203}
204/// Nested message and enum types in `SchemaMigration`.
205pub mod schema_migration {
206    #[derive(
207        Clone,
208        Copy,
209        Debug,
210        PartialEq,
211        Eq,
212        Hash,
213        PartialOrd,
214        Ord,
215        ::prost::Enumeration
216    )]
217    #[repr(i32)]
218    pub enum Strategy {
219        /// SchemaMigration_VITESS uses vreplication to run the schema migration. It is
220        /// the default strategy for OnlineDDL requests.
221        ///
222        /// SchemaMigration_VITESS was also formerly called "ONLINE".
223        Vitess = 0,
224        Ghost = 1,
225        Ptosc = 2,
226        /// SchemaMigration_DIRECT runs the migration directly against MySQL (e.g. `ALTER TABLE ...`),
227        /// meaning it is not actually an "online" DDL migration.
228        Direct = 3,
229        /// SchemaMigration_MYSQL is a managed migration (queued and executed by the
230        /// scheduler) but runs through a MySQL `ALTER TABLE`.
231        Mysql = 4,
232    }
233    impl Strategy {
234        /// String value of the enum field names used in the ProtoBuf definition.
235        ///
236        /// The values are not transformed in any way and thus are considered stable
237        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
238        pub fn as_str_name(&self) -> &'static str {
239            match self {
240                Strategy::Vitess => "VITESS",
241                Strategy::Ghost => "GHOST",
242                Strategy::Ptosc => "PTOSC",
243                Strategy::Direct => "DIRECT",
244                Strategy::Mysql => "MYSQL",
245            }
246        }
247        /// Creates an enum from field names used in the ProtoBuf definition.
248        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
249            match value {
250                "VITESS" => Some(Self::Vitess),
251                "GHOST" => Some(Self::Ghost),
252                "PTOSC" => Some(Self::Ptosc),
253                "DIRECT" => Some(Self::Direct),
254                "MYSQL" => Some(Self::Mysql),
255                _ => None,
256            }
257        }
258    }
259    #[derive(
260        Clone,
261        Copy,
262        Debug,
263        PartialEq,
264        Eq,
265        Hash,
266        PartialOrd,
267        Ord,
268        ::prost::Enumeration
269    )]
270    #[repr(i32)]
271    pub enum Status {
272        Unknown = 0,
273        Requested = 1,
274        Cancelled = 2,
275        Queued = 3,
276        Ready = 4,
277        Running = 5,
278        Complete = 6,
279        Failed = 7,
280    }
281    impl Status {
282        /// String value of the enum field names used in the ProtoBuf definition.
283        ///
284        /// The values are not transformed in any way and thus are considered stable
285        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
286        pub fn as_str_name(&self) -> &'static str {
287            match self {
288                Status::Unknown => "UNKNOWN",
289                Status::Requested => "REQUESTED",
290                Status::Cancelled => "CANCELLED",
291                Status::Queued => "QUEUED",
292                Status::Ready => "READY",
293                Status::Running => "RUNNING",
294                Status::Complete => "COMPLETE",
295                Status::Failed => "FAILED",
296            }
297        }
298        /// Creates an enum from field names used in the ProtoBuf definition.
299        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
300            match value {
301                "UNKNOWN" => Some(Self::Unknown),
302                "REQUESTED" => Some(Self::Requested),
303                "CANCELLED" => Some(Self::Cancelled),
304                "QUEUED" => Some(Self::Queued),
305                "READY" => Some(Self::Ready),
306                "RUNNING" => Some(Self::Running),
307                "COMPLETE" => Some(Self::Complete),
308                "FAILED" => Some(Self::Failed),
309                _ => None,
310            }
311        }
312    }
313}
314#[allow(clippy::derive_partial_eq_without_eq)]
315#[derive(Clone, PartialEq, ::prost::Message)]
316pub struct Shard {
317    #[prost(string, tag = "1")]
318    pub keyspace: ::prost::alloc::string::String,
319    #[prost(string, tag = "2")]
320    pub name: ::prost::alloc::string::String,
321    #[prost(message, optional, tag = "3")]
322    pub shard: ::core::option::Option<super::topodata::Shard>,
323}
324/// TODO: comment the hell out of this.
325#[allow(clippy::derive_partial_eq_without_eq)]
326#[derive(Clone, PartialEq, ::prost::Message)]
327pub struct Workflow {
328    #[prost(string, tag = "1")]
329    pub name: ::prost::alloc::string::String,
330    #[prost(message, optional, tag = "2")]
331    pub source: ::core::option::Option<workflow::ReplicationLocation>,
332    #[prost(message, optional, tag = "3")]
333    pub target: ::core::option::Option<workflow::ReplicationLocation>,
334    /// This represents how long it's been since we processed any event in the
335    /// stream.
336    #[prost(int64, tag = "4")]
337    pub max_v_replication_lag: i64,
338    #[prost(map = "string, message", tag = "5")]
339    pub shard_streams: ::std::collections::HashMap<
340        ::prost::alloc::string::String,
341        workflow::ShardStream,
342    >,
343    #[prost(string, tag = "6")]
344    pub workflow_type: ::prost::alloc::string::String,
345    #[prost(string, tag = "7")]
346    pub workflow_sub_type: ::prost::alloc::string::String,
347    /// This represents the lag across all shards, between the current time and
348    /// the timestamp of the last transaction OR heartbeat timestamp (if there
349    /// have been no writes to replicate from the source).
350    #[prost(int64, tag = "8")]
351    pub max_v_replication_transaction_lag: i64,
352    /// This specifies whether to defer the creation of secondary keys.
353    #[prost(bool, tag = "9")]
354    pub defer_secondary_keys: bool,
355}
356/// Nested message and enum types in `Workflow`.
357pub mod workflow {
358    #[allow(clippy::derive_partial_eq_without_eq)]
359    #[derive(Clone, PartialEq, ::prost::Message)]
360    pub struct ReplicationLocation {
361        #[prost(string, tag = "1")]
362        pub keyspace: ::prost::alloc::string::String,
363        #[prost(string, repeated, tag = "2")]
364        pub shards: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
365    }
366    #[allow(clippy::derive_partial_eq_without_eq)]
367    #[derive(Clone, PartialEq, ::prost::Message)]
368    pub struct ShardStream {
369        #[prost(message, repeated, tag = "1")]
370        pub streams: ::prost::alloc::vec::Vec<Stream>,
371        #[prost(message, repeated, tag = "2")]
372        pub tablet_controls: ::prost::alloc::vec::Vec<
373            super::super::topodata::shard::TabletControl,
374        >,
375        #[prost(bool, tag = "3")]
376        pub is_primary_serving: bool,
377    }
378    #[allow(clippy::derive_partial_eq_without_eq)]
379    #[derive(Clone, PartialEq, ::prost::Message)]
380    pub struct Stream {
381        #[prost(int64, tag = "1")]
382        pub id: i64,
383        #[prost(string, tag = "2")]
384        pub shard: ::prost::alloc::string::String,
385        #[prost(message, optional, tag = "3")]
386        pub tablet: ::core::option::Option<super::super::topodata::TabletAlias>,
387        #[prost(message, optional, tag = "4")]
388        pub binlog_source: ::core::option::Option<
389            super::super::binlogdata::BinlogSource,
390        >,
391        #[prost(string, tag = "5")]
392        pub position: ::prost::alloc::string::String,
393        #[prost(string, tag = "6")]
394        pub stop_position: ::prost::alloc::string::String,
395        #[prost(string, tag = "7")]
396        pub state: ::prost::alloc::string::String,
397        #[prost(string, tag = "8")]
398        pub db_name: ::prost::alloc::string::String,
399        #[prost(message, optional, tag = "9")]
400        pub transaction_timestamp: ::core::option::Option<super::super::vttime::Time>,
401        #[prost(message, optional, tag = "10")]
402        pub time_updated: ::core::option::Option<super::super::vttime::Time>,
403        #[prost(string, tag = "11")]
404        pub message: ::prost::alloc::string::String,
405        #[prost(message, repeated, tag = "12")]
406        pub copy_states: ::prost::alloc::vec::Vec<stream::CopyState>,
407        #[prost(message, repeated, tag = "13")]
408        pub logs: ::prost::alloc::vec::Vec<stream::Log>,
409        /// LogFetchError is set if we fail to fetch some logs for this stream. We
410        /// will never fail to fetch workflows because we cannot fetch the logs, but
411        /// we will still forward log-fetch errors to the caller, should that be
412        /// relevant to the context in which they are fetching workflows.
413        ///
414        /// Note that this field being set does not necessarily mean that Logs is nil;
415        /// if there are N logs that exist for the stream, and we fail to fetch the
416        /// ith log, we will still return logs in \[0, i) + (i, N\].
417        #[prost(string, tag = "14")]
418        pub log_fetch_error: ::prost::alloc::string::String,
419        #[prost(string, repeated, tag = "15")]
420        pub tags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
421        #[prost(int64, tag = "16")]
422        pub rows_copied: i64,
423        #[prost(message, optional, tag = "17")]
424        pub throttler_status: ::core::option::Option<stream::ThrottlerStatus>,
425    }
426    /// Nested message and enum types in `Stream`.
427    pub mod stream {
428        #[allow(clippy::derive_partial_eq_without_eq)]
429        #[derive(Clone, PartialEq, ::prost::Message)]
430        pub struct CopyState {
431            #[prost(string, tag = "1")]
432            pub table: ::prost::alloc::string::String,
433            #[prost(string, tag = "2")]
434            pub last_pk: ::prost::alloc::string::String,
435        }
436        #[allow(clippy::derive_partial_eq_without_eq)]
437        #[derive(Clone, PartialEq, ::prost::Message)]
438        pub struct Log {
439            #[prost(int64, tag = "1")]
440            pub id: i64,
441            #[prost(int64, tag = "2")]
442            pub stream_id: i64,
443            #[prost(string, tag = "3")]
444            pub r#type: ::prost::alloc::string::String,
445            #[prost(string, tag = "4")]
446            pub state: ::prost::alloc::string::String,
447            #[prost(message, optional, tag = "5")]
448            pub created_at: ::core::option::Option<super::super::super::vttime::Time>,
449            #[prost(message, optional, tag = "6")]
450            pub updated_at: ::core::option::Option<super::super::super::vttime::Time>,
451            #[prost(string, tag = "7")]
452            pub message: ::prost::alloc::string::String,
453            #[prost(int64, tag = "8")]
454            pub count: i64,
455        }
456        #[allow(clippy::derive_partial_eq_without_eq)]
457        #[derive(Clone, PartialEq, ::prost::Message)]
458        pub struct ThrottlerStatus {
459            #[prost(string, tag = "1")]
460            pub component_throttled: ::prost::alloc::string::String,
461            #[prost(message, optional, tag = "2")]
462            pub time_throttled: ::core::option::Option<
463                super::super::super::vttime::Time,
464            >,
465        }
466    }
467}
468#[allow(clippy::derive_partial_eq_without_eq)]
469#[derive(Clone, PartialEq, ::prost::Message)]
470pub struct AddCellInfoRequest {
471    #[prost(string, tag = "1")]
472    pub name: ::prost::alloc::string::String,
473    #[prost(message, optional, tag = "2")]
474    pub cell_info: ::core::option::Option<super::topodata::CellInfo>,
475}
476#[allow(clippy::derive_partial_eq_without_eq)]
477#[derive(Clone, PartialEq, ::prost::Message)]
478pub struct AddCellInfoResponse {}
479#[allow(clippy::derive_partial_eq_without_eq)]
480#[derive(Clone, PartialEq, ::prost::Message)]
481pub struct AddCellsAliasRequest {
482    #[prost(string, tag = "1")]
483    pub name: ::prost::alloc::string::String,
484    #[prost(string, repeated, tag = "2")]
485    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
486}
487#[allow(clippy::derive_partial_eq_without_eq)]
488#[derive(Clone, PartialEq, ::prost::Message)]
489pub struct AddCellsAliasResponse {}
490#[allow(clippy::derive_partial_eq_without_eq)]
491#[derive(Clone, PartialEq, ::prost::Message)]
492pub struct ApplyRoutingRulesRequest {
493    #[prost(message, optional, tag = "1")]
494    pub routing_rules: ::core::option::Option<super::vschema::RoutingRules>,
495    /// SkipRebuild, if set, will cause ApplyRoutingRules to skip rebuilding the
496    /// SrvVSchema objects in each cell in RebuildCells.
497    #[prost(bool, tag = "2")]
498    pub skip_rebuild: bool,
499    /// RebuildCells limits the SrvVSchema rebuild to the specified cells. If not
500    /// provided the SrvVSchema will be rebuilt in every cell in the topology.
501    ///
502    /// Ignored if SkipRebuild is set.
503    #[prost(string, repeated, tag = "3")]
504    pub rebuild_cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
505}
506#[allow(clippy::derive_partial_eq_without_eq)]
507#[derive(Clone, PartialEq, ::prost::Message)]
508pub struct ApplyRoutingRulesResponse {}
509#[allow(clippy::derive_partial_eq_without_eq)]
510#[derive(Clone, PartialEq, ::prost::Message)]
511pub struct ApplyShardRoutingRulesRequest {
512    #[prost(message, optional, tag = "1")]
513    pub shard_routing_rules: ::core::option::Option<super::vschema::ShardRoutingRules>,
514    /// SkipRebuild, if set, will cause ApplyShardRoutingRules to skip rebuilding the
515    /// SrvVSchema objects in each cell in RebuildCells.
516    #[prost(bool, tag = "2")]
517    pub skip_rebuild: bool,
518    /// RebuildCells limits the SrvVSchema rebuild to the specified cells. If not
519    /// provided the SrvVSchema will be rebuilt in every cell in the topology.
520    ///
521    /// Ignored if SkipRebuild is set.
522    #[prost(string, repeated, tag = "3")]
523    pub rebuild_cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
524}
525#[allow(clippy::derive_partial_eq_without_eq)]
526#[derive(Clone, PartialEq, ::prost::Message)]
527pub struct ApplyShardRoutingRulesResponse {}
528#[allow(clippy::derive_partial_eq_without_eq)]
529#[derive(Clone, PartialEq, ::prost::Message)]
530pub struct ApplySchemaRequest {
531    #[prost(string, tag = "1")]
532    pub keyspace: ::prost::alloc::string::String,
533    /// SQL commands to run.
534    #[prost(string, repeated, tag = "3")]
535    pub sql: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
536    /// Online DDL strategy, compatible with @@ddl_strategy session variable (examples: 'gh-ost', 'pt-osc', 'gh-ost --max-load=Threads_running=100'")
537    #[prost(string, tag = "4")]
538    pub ddl_strategy: ::prost::alloc::string::String,
539    /// Optional: explicit UUIDs for migration.
540    /// If given, must match number of DDL changes
541    #[prost(string, repeated, tag = "5")]
542    pub uuid_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
543    /// For Online DDL, optionally supply a custom unique string used as context for the migration(s) in this command.
544    /// By default a unique context is auto-generated by Vitess
545    #[prost(string, tag = "6")]
546    pub migration_context: ::prost::alloc::string::String,
547    /// WaitReplicasTimeout is the duration of time to wait for replicas to catch
548    /// up in reparenting.
549    #[prost(message, optional, tag = "7")]
550    pub wait_replicas_timeout: ::core::option::Option<super::vttime::Duration>,
551    /// caller_id identifies the caller. This is the effective caller ID,
552    /// set by the application to further identify the caller.
553    #[prost(message, optional, tag = "9")]
554    pub caller_id: ::core::option::Option<super::vtrpc::CallerId>,
555    /// BatchSize indicates how many queries to apply together
556    #[prost(int64, tag = "10")]
557    pub batch_size: i64,
558}
559#[allow(clippy::derive_partial_eq_without_eq)]
560#[derive(Clone, PartialEq, ::prost::Message)]
561pub struct ApplySchemaResponse {
562    #[prost(string, repeated, tag = "1")]
563    pub uuid_list: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
564    #[prost(map = "string, uint64", tag = "2")]
565    pub rows_affected_by_shard: ::std::collections::HashMap<
566        ::prost::alloc::string::String,
567        u64,
568    >,
569}
570#[allow(clippy::derive_partial_eq_without_eq)]
571#[derive(Clone, PartialEq, ::prost::Message)]
572pub struct ApplyVSchemaRequest {
573    #[prost(string, tag = "1")]
574    pub keyspace: ::prost::alloc::string::String,
575    #[prost(bool, tag = "2")]
576    pub skip_rebuild: bool,
577    #[prost(bool, tag = "3")]
578    pub dry_run: bool,
579    #[prost(string, repeated, tag = "4")]
580    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
581    #[prost(message, optional, tag = "5")]
582    pub v_schema: ::core::option::Option<super::vschema::Keyspace>,
583    #[prost(string, tag = "6")]
584    pub sql: ::prost::alloc::string::String,
585}
586#[allow(clippy::derive_partial_eq_without_eq)]
587#[derive(Clone, PartialEq, ::prost::Message)]
588pub struct ApplyVSchemaResponse {
589    #[prost(message, optional, tag = "1")]
590    pub v_schema: ::core::option::Option<super::vschema::Keyspace>,
591}
592#[allow(clippy::derive_partial_eq_without_eq)]
593#[derive(Clone, PartialEq, ::prost::Message)]
594pub struct BackupRequest {
595    #[prost(message, optional, tag = "1")]
596    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
597    /// AllowPrimary allows the backup to proceed if TabletAlias is a PRIMARY.
598    ///
599    /// WARNING: If using the builtin backup engine, this will shutdown mysqld on
600    /// the primary for the duration of the backup, and no writes will be possible.
601    #[prost(bool, tag = "2")]
602    pub allow_primary: bool,
603    /// Concurrency specifies the number of compression/checksum jobs to run
604    /// simultaneously.
605    #[prost(uint64, tag = "3")]
606    pub concurrency: u64,
607    /// IncrementalFromPos indicates a position of a previous backup. When this value is non-empty
608    /// then the backup becomes incremental and applies as of given position.
609    #[prost(string, tag = "4")]
610    pub incremental_from_pos: ::prost::alloc::string::String,
611    /// UpgradeSafe indicates if the backup should be taken with innodb_fast_shutdown=0
612    /// so that it's a backup that can be used for an upgrade.
613    #[prost(bool, tag = "5")]
614    pub upgrade_safe: bool,
615}
616#[allow(clippy::derive_partial_eq_without_eq)]
617#[derive(Clone, PartialEq, ::prost::Message)]
618pub struct BackupResponse {
619    /// TabletAlias is the alias being used for the backup.
620    #[prost(message, optional, tag = "1")]
621    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
622    #[prost(string, tag = "2")]
623    pub keyspace: ::prost::alloc::string::String,
624    #[prost(string, tag = "3")]
625    pub shard: ::prost::alloc::string::String,
626    #[prost(message, optional, tag = "4")]
627    pub event: ::core::option::Option<super::logutil::Event>,
628}
629#[allow(clippy::derive_partial_eq_without_eq)]
630#[derive(Clone, PartialEq, ::prost::Message)]
631pub struct BackupShardRequest {
632    #[prost(string, tag = "1")]
633    pub keyspace: ::prost::alloc::string::String,
634    #[prost(string, tag = "2")]
635    pub shard: ::prost::alloc::string::String,
636    /// AllowPrimary allows the backup to occur on a PRIMARY tablet. See
637    /// BackupRequest.AllowPrimary for warnings and caveats.
638    #[prost(bool, tag = "3")]
639    pub allow_primary: bool,
640    /// Concurrency specifies the number of compression/checksum jobs to run
641    /// simultaneously.
642    #[prost(uint64, tag = "4")]
643    pub concurrency: u64,
644    /// UpgradeSafe indicates if the backup should be taken with innodb_fast_shutdown=0
645    /// so that it's a backup that can be used for an upgrade.
646    #[prost(bool, tag = "5")]
647    pub upgrade_safe: bool,
648    /// IncrementalFromPos indicates a position of a previous backup. When this value is non-empty
649    /// then the backup becomes incremental and applies as of given position.
650    #[prost(string, tag = "6")]
651    pub incremental_from_pos: ::prost::alloc::string::String,
652}
653#[allow(clippy::derive_partial_eq_without_eq)]
654#[derive(Clone, PartialEq, ::prost::Message)]
655pub struct CancelSchemaMigrationRequest {
656    #[prost(string, tag = "1")]
657    pub keyspace: ::prost::alloc::string::String,
658    #[prost(string, tag = "2")]
659    pub uuid: ::prost::alloc::string::String,
660}
661#[allow(clippy::derive_partial_eq_without_eq)]
662#[derive(Clone, PartialEq, ::prost::Message)]
663pub struct CancelSchemaMigrationResponse {
664    #[prost(map = "string, uint64", tag = "1")]
665    pub rows_affected_by_shard: ::std::collections::HashMap<
666        ::prost::alloc::string::String,
667        u64,
668    >,
669}
670#[allow(clippy::derive_partial_eq_without_eq)]
671#[derive(Clone, PartialEq, ::prost::Message)]
672pub struct ChangeTabletTypeRequest {
673    #[prost(message, optional, tag = "1")]
674    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
675    #[prost(enumeration = "super::topodata::TabletType", tag = "2")]
676    pub db_type: i32,
677    #[prost(bool, tag = "3")]
678    pub dry_run: bool,
679}
680#[allow(clippy::derive_partial_eq_without_eq)]
681#[derive(Clone, PartialEq, ::prost::Message)]
682pub struct ChangeTabletTypeResponse {
683    #[prost(message, optional, tag = "1")]
684    pub before_tablet: ::core::option::Option<super::topodata::Tablet>,
685    #[prost(message, optional, tag = "2")]
686    pub after_tablet: ::core::option::Option<super::topodata::Tablet>,
687    #[prost(bool, tag = "3")]
688    pub was_dry_run: bool,
689}
690#[allow(clippy::derive_partial_eq_without_eq)]
691#[derive(Clone, PartialEq, ::prost::Message)]
692pub struct CleanupSchemaMigrationRequest {
693    #[prost(string, tag = "1")]
694    pub keyspace: ::prost::alloc::string::String,
695    #[prost(string, tag = "2")]
696    pub uuid: ::prost::alloc::string::String,
697}
698#[allow(clippy::derive_partial_eq_without_eq)]
699#[derive(Clone, PartialEq, ::prost::Message)]
700pub struct CleanupSchemaMigrationResponse {
701    #[prost(map = "string, uint64", tag = "1")]
702    pub rows_affected_by_shard: ::std::collections::HashMap<
703        ::prost::alloc::string::String,
704        u64,
705    >,
706}
707#[allow(clippy::derive_partial_eq_without_eq)]
708#[derive(Clone, PartialEq, ::prost::Message)]
709pub struct CompleteSchemaMigrationRequest {
710    #[prost(string, tag = "1")]
711    pub keyspace: ::prost::alloc::string::String,
712    #[prost(string, tag = "2")]
713    pub uuid: ::prost::alloc::string::String,
714}
715#[allow(clippy::derive_partial_eq_without_eq)]
716#[derive(Clone, PartialEq, ::prost::Message)]
717pub struct CompleteSchemaMigrationResponse {
718    #[prost(map = "string, uint64", tag = "1")]
719    pub rows_affected_by_shard: ::std::collections::HashMap<
720        ::prost::alloc::string::String,
721        u64,
722    >,
723}
724#[allow(clippy::derive_partial_eq_without_eq)]
725#[derive(Clone, PartialEq, ::prost::Message)]
726pub struct CreateKeyspaceRequest {
727    /// Name is the name of the keyspace.
728    #[prost(string, tag = "1")]
729    pub name: ::prost::alloc::string::String,
730    /// Force proceeds with the request even if the keyspace already exists.
731    #[prost(bool, tag = "2")]
732    pub force: bool,
733    /// AllowEmptyVSchema allows a keyspace to be created with no vschema.
734    #[prost(bool, tag = "3")]
735    pub allow_empty_v_schema: bool,
736    /// ServedFroms specifies a set of db_type:keyspace pairs used to serve
737    /// traffic for the keyspace.
738    #[prost(message, repeated, tag = "6")]
739    pub served_froms: ::prost::alloc::vec::Vec<super::topodata::keyspace::ServedFrom>,
740    /// Type is the type of the keyspace to create.
741    #[prost(enumeration = "super::topodata::KeyspaceType", tag = "7")]
742    pub r#type: i32,
743    /// BaseKeyspace specifies the base keyspace for SNAPSHOT keyspaces. It is
744    /// required to create a SNAPSHOT keyspace.
745    #[prost(string, tag = "8")]
746    pub base_keyspace: ::prost::alloc::string::String,
747    /// SnapshotTime specifies the snapshot time for this keyspace. It is required
748    /// to create a SNAPSHOT keyspace.
749    #[prost(message, optional, tag = "9")]
750    pub snapshot_time: ::core::option::Option<super::vttime::Time>,
751    /// DurabilityPolicy is the durability policy to be
752    /// used for this keyspace.
753    #[prost(string, tag = "10")]
754    pub durability_policy: ::prost::alloc::string::String,
755    /// SidecarDBName is the name of the sidecar database that
756    /// each vttablet in the keyspace will use.
757    #[prost(string, tag = "11")]
758    pub sidecar_db_name: ::prost::alloc::string::String,
759}
760#[allow(clippy::derive_partial_eq_without_eq)]
761#[derive(Clone, PartialEq, ::prost::Message)]
762pub struct CreateKeyspaceResponse {
763    /// Keyspace is the newly-created keyspace.
764    #[prost(message, optional, tag = "1")]
765    pub keyspace: ::core::option::Option<Keyspace>,
766}
767#[allow(clippy::derive_partial_eq_without_eq)]
768#[derive(Clone, PartialEq, ::prost::Message)]
769pub struct CreateShardRequest {
770    /// Keyspace is the name of the keyspace to create the shard in.
771    #[prost(string, tag = "1")]
772    pub keyspace: ::prost::alloc::string::String,
773    /// ShardName is the name of the shard to create. E.g. "-" or "-80".
774    #[prost(string, tag = "2")]
775    pub shard_name: ::prost::alloc::string::String,
776    /// Force treats an attempt to create a shard that already exists as a
777    /// non-error.
778    #[prost(bool, tag = "3")]
779    pub force: bool,
780    /// IncludeParent creates the parent keyspace as an empty BASE keyspace, if it
781    /// doesn't already exist.
782    #[prost(bool, tag = "4")]
783    pub include_parent: bool,
784}
785#[allow(clippy::derive_partial_eq_without_eq)]
786#[derive(Clone, PartialEq, ::prost::Message)]
787pub struct CreateShardResponse {
788    /// Keyspace is the created keyspace. It is set only if IncludeParent was
789    /// specified in the request and the parent keyspace needed to be created.
790    #[prost(message, optional, tag = "1")]
791    pub keyspace: ::core::option::Option<Keyspace>,
792    /// Shard is the newly-created shard object.
793    #[prost(message, optional, tag = "2")]
794    pub shard: ::core::option::Option<Shard>,
795    /// ShardAlreadyExists is set if Force was specified in the request and the
796    /// shard already existed.
797    #[prost(bool, tag = "3")]
798    pub shard_already_exists: bool,
799}
800#[allow(clippy::derive_partial_eq_without_eq)]
801#[derive(Clone, PartialEq, ::prost::Message)]
802pub struct DeleteCellInfoRequest {
803    #[prost(string, tag = "1")]
804    pub name: ::prost::alloc::string::String,
805    #[prost(bool, tag = "2")]
806    pub force: bool,
807}
808#[allow(clippy::derive_partial_eq_without_eq)]
809#[derive(Clone, PartialEq, ::prost::Message)]
810pub struct DeleteCellInfoResponse {}
811#[allow(clippy::derive_partial_eq_without_eq)]
812#[derive(Clone, PartialEq, ::prost::Message)]
813pub struct DeleteCellsAliasRequest {
814    #[prost(string, tag = "1")]
815    pub name: ::prost::alloc::string::String,
816}
817#[allow(clippy::derive_partial_eq_without_eq)]
818#[derive(Clone, PartialEq, ::prost::Message)]
819pub struct DeleteCellsAliasResponse {}
820#[allow(clippy::derive_partial_eq_without_eq)]
821#[derive(Clone, PartialEq, ::prost::Message)]
822pub struct DeleteKeyspaceRequest {
823    /// Keyspace is the name of the keyspace to delete.
824    #[prost(string, tag = "1")]
825    pub keyspace: ::prost::alloc::string::String,
826    /// Recursive causes all shards in the keyspace to be recursively deleted
827    /// before deleting the keyspace. It is an error to call DeleteKeyspace on a
828    /// non-empty keyspace without also specifying Recursive.
829    #[prost(bool, tag = "2")]
830    pub recursive: bool,
831    /// Force allows a keyspace to be deleted even if the keyspace lock cannot be
832    /// obtained. This should only be used to force-clean a keyspace.
833    #[prost(bool, tag = "3")]
834    pub force: bool,
835}
836#[allow(clippy::derive_partial_eq_without_eq)]
837#[derive(Clone, PartialEq, ::prost::Message)]
838pub struct DeleteKeyspaceResponse {}
839#[allow(clippy::derive_partial_eq_without_eq)]
840#[derive(Clone, PartialEq, ::prost::Message)]
841pub struct DeleteShardsRequest {
842    /// Shards is the list of shards to delete. The nested topodatapb.Shard field
843    /// is not required for DeleteShard, but the Keyspace and Shard fields are.
844    #[prost(message, repeated, tag = "1")]
845    pub shards: ::prost::alloc::vec::Vec<Shard>,
846    /// Recursive also deletes all tablets belonging to the shard(s). It is an
847    /// error to call DeleteShard on a non-empty shard without also specificying
848    /// Recursive.
849    #[prost(bool, tag = "2")]
850    pub recursive: bool,
851    /// EvenIfServing allows a shard to be deleted even if it is serving, which is
852    /// normally an error. Use with caution.
853    #[prost(bool, tag = "4")]
854    pub even_if_serving: bool,
855    /// Force allows a shard to be deleted even if the shard lock cannot be
856    /// obtained. This should only be used to force-clean a shard.
857    #[prost(bool, tag = "5")]
858    pub force: bool,
859}
860#[allow(clippy::derive_partial_eq_without_eq)]
861#[derive(Clone, PartialEq, ::prost::Message)]
862pub struct DeleteShardsResponse {}
863#[allow(clippy::derive_partial_eq_without_eq)]
864#[derive(Clone, PartialEq, ::prost::Message)]
865pub struct DeleteSrvVSchemaRequest {
866    #[prost(string, tag = "1")]
867    pub cell: ::prost::alloc::string::String,
868}
869#[allow(clippy::derive_partial_eq_without_eq)]
870#[derive(Clone, PartialEq, ::prost::Message)]
871pub struct DeleteSrvVSchemaResponse {}
872#[allow(clippy::derive_partial_eq_without_eq)]
873#[derive(Clone, PartialEq, ::prost::Message)]
874pub struct DeleteTabletsRequest {
875    /// TabletAliases is the list of tablets to delete.
876    #[prost(message, repeated, tag = "1")]
877    pub tablet_aliases: ::prost::alloc::vec::Vec<super::topodata::TabletAlias>,
878    /// AllowPrimary allows for the primary tablet of a shard to be deleted.
879    /// Use with caution.
880    #[prost(bool, tag = "2")]
881    pub allow_primary: bool,
882}
883#[allow(clippy::derive_partial_eq_without_eq)]
884#[derive(Clone, PartialEq, ::prost::Message)]
885pub struct DeleteTabletsResponse {}
886#[allow(clippy::derive_partial_eq_without_eq)]
887#[derive(Clone, PartialEq, ::prost::Message)]
888pub struct EmergencyReparentShardRequest {
889    /// Keyspace is the name of the keyspace to perform the Emergency Reparent in.
890    #[prost(string, tag = "1")]
891    pub keyspace: ::prost::alloc::string::String,
892    /// Shard is the name of the shard to perform the Emergency Reparent in.
893    #[prost(string, tag = "2")]
894    pub shard: ::prost::alloc::string::String,
895    /// Optional alias of a tablet that should become the new shard primary. If not
896    /// not specified, the vtctld will select the most up-to-date canditate to
897    /// promote.
898    #[prost(message, optional, tag = "3")]
899    pub new_primary: ::core::option::Option<super::topodata::TabletAlias>,
900    /// List of replica aliases to ignore during the Emergency Reparent. The vtctld
901    /// will not attempt to stop replication on these tablets, nor attempt to
902    /// demote any that may think they are the shard primary.
903    #[prost(message, repeated, tag = "4")]
904    pub ignore_replicas: ::prost::alloc::vec::Vec<super::topodata::TabletAlias>,
905    /// WaitReplicasTimeout is the duration of time to wait for replicas to catch
906    /// up in reparenting.
907    #[prost(message, optional, tag = "5")]
908    pub wait_replicas_timeout: ::core::option::Option<super::vttime::Duration>,
909    /// PreventCrossCellPromotion is used to only promote the new primary from the same cell
910    /// as the failed primary.
911    #[prost(bool, tag = "6")]
912    pub prevent_cross_cell_promotion: bool,
913    /// WaitForAllTablets makes ERS wait for a response from all the tablets before proceeding.
914    /// Useful when all the tablets are up and reachable.
915    #[prost(bool, tag = "7")]
916    pub wait_for_all_tablets: bool,
917}
918#[allow(clippy::derive_partial_eq_without_eq)]
919#[derive(Clone, PartialEq, ::prost::Message)]
920pub struct EmergencyReparentShardResponse {
921    /// Keyspace is the name of the keyspace the Emergency Reparent took place in.
922    #[prost(string, tag = "1")]
923    pub keyspace: ::prost::alloc::string::String,
924    /// Shard is the name of the shard the Emergency Reparent took place in.
925    #[prost(string, tag = "2")]
926    pub shard: ::prost::alloc::string::String,
927    /// PromotedPrimary is the alias of the tablet that was promoted to shard
928    /// primary. If NewPrimary was set in the request, then this will be the same
929    /// alias. Otherwise, it will be the alias of the tablet found to be most
930    /// up-to-date.
931    #[prost(message, optional, tag = "3")]
932    pub promoted_primary: ::core::option::Option<super::topodata::TabletAlias>,
933    #[prost(message, repeated, tag = "4")]
934    pub events: ::prost::alloc::vec::Vec<super::logutil::Event>,
935}
936#[allow(clippy::derive_partial_eq_without_eq)]
937#[derive(Clone, PartialEq, ::prost::Message)]
938pub struct ExecuteFetchAsAppRequest {
939    #[prost(message, optional, tag = "1")]
940    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
941    #[prost(string, tag = "2")]
942    pub query: ::prost::alloc::string::String,
943    /// MaxRows is an optional parameter to limit the number of rows read into the
944    /// QueryResult. Note that this does not apply a LIMIT to the query, just how
945    /// many rows are read from the MySQL server on the tablet side.
946    ///
947    /// This field is optional. Specifying a non-positive value will use whatever
948    /// default is configured in the VtctldService.
949    #[prost(int64, tag = "3")]
950    pub max_rows: i64,
951    /// UsePool causes the query to be run with a pooled connection to the tablet.
952    #[prost(bool, tag = "4")]
953    pub use_pool: bool,
954}
955#[allow(clippy::derive_partial_eq_without_eq)]
956#[derive(Clone, PartialEq, ::prost::Message)]
957pub struct ExecuteFetchAsAppResponse {
958    #[prost(message, optional, tag = "1")]
959    pub result: ::core::option::Option<super::query::QueryResult>,
960}
961#[allow(clippy::derive_partial_eq_without_eq)]
962#[derive(Clone, PartialEq, ::prost::Message)]
963pub struct ExecuteFetchAsDbaRequest {
964    #[prost(message, optional, tag = "1")]
965    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
966    #[prost(string, tag = "2")]
967    pub query: ::prost::alloc::string::String,
968    /// MaxRows is an optional parameter to limit the number of rows read into the
969    /// QueryResult. Note that this does not apply a LIMIT to the query, just how
970    /// many rows are read from the MySQL server on the tablet side.
971    ///
972    /// This field is optional. Specifying a non-positive value will use whatever
973    /// default is configured in the VtctldService.
974    #[prost(int64, tag = "3")]
975    pub max_rows: i64,
976    /// DisableBinlogs instructs the tablet not to use binary logging when
977    /// executing the query.
978    #[prost(bool, tag = "4")]
979    pub disable_binlogs: bool,
980    /// ReloadSchema instructs the tablet to reload its schema after executing the
981    /// query.
982    #[prost(bool, tag = "5")]
983    pub reload_schema: bool,
984}
985#[allow(clippy::derive_partial_eq_without_eq)]
986#[derive(Clone, PartialEq, ::prost::Message)]
987pub struct ExecuteFetchAsDbaResponse {
988    #[prost(message, optional, tag = "1")]
989    pub result: ::core::option::Option<super::query::QueryResult>,
990}
991#[allow(clippy::derive_partial_eq_without_eq)]
992#[derive(Clone, PartialEq, ::prost::Message)]
993pub struct ExecuteHookRequest {
994    #[prost(message, optional, tag = "1")]
995    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
996    #[prost(message, optional, tag = "2")]
997    pub tablet_hook_request: ::core::option::Option<
998        super::tabletmanagerdata::ExecuteHookRequest,
999    >,
1000}
1001#[allow(clippy::derive_partial_eq_without_eq)]
1002#[derive(Clone, PartialEq, ::prost::Message)]
1003pub struct ExecuteHookResponse {
1004    #[prost(message, optional, tag = "1")]
1005    pub hook_result: ::core::option::Option<
1006        super::tabletmanagerdata::ExecuteHookResponse,
1007    >,
1008}
1009#[allow(clippy::derive_partial_eq_without_eq)]
1010#[derive(Clone, PartialEq, ::prost::Message)]
1011pub struct FindAllShardsInKeyspaceRequest {
1012    #[prost(string, tag = "1")]
1013    pub keyspace: ::prost::alloc::string::String,
1014}
1015#[allow(clippy::derive_partial_eq_without_eq)]
1016#[derive(Clone, PartialEq, ::prost::Message)]
1017pub struct FindAllShardsInKeyspaceResponse {
1018    #[prost(map = "string, message", tag = "1")]
1019    pub shards: ::std::collections::HashMap<::prost::alloc::string::String, Shard>,
1020}
1021#[allow(clippy::derive_partial_eq_without_eq)]
1022#[derive(Clone, PartialEq, ::prost::Message)]
1023pub struct GetBackupsRequest {
1024    #[prost(string, tag = "1")]
1025    pub keyspace: ::prost::alloc::string::String,
1026    #[prost(string, tag = "2")]
1027    pub shard: ::prost::alloc::string::String,
1028    /// Limit, if nonzero, will return only the most N recent backups.
1029    #[prost(uint32, tag = "3")]
1030    pub limit: u32,
1031    /// Detailed indicates whether to use the backupengine, if supported, to
1032    /// populate additional fields, such as Engine and Status, on BackupInfo
1033    /// objects in the response. If not set, or if the backupengine does not
1034    /// support populating these fields, Engine will always be empty, and Status
1035    /// will always be UNKNOWN.
1036    #[prost(bool, tag = "4")]
1037    pub detailed: bool,
1038    /// DetailedLimit, if nonzero, will only populate additional fields (see Detailed)
1039    /// on the N most recent backups. The Limit field still dictates the total
1040    /// number of backup info objects returned, so, in reality, min(Limit, DetailedLimit)
1041    /// backup infos will have additional fields set, and any remaining backups
1042    /// will not.
1043    #[prost(uint32, tag = "5")]
1044    pub detailed_limit: u32,
1045}
1046#[allow(clippy::derive_partial_eq_without_eq)]
1047#[derive(Clone, PartialEq, ::prost::Message)]
1048pub struct GetBackupsResponse {
1049    #[prost(message, repeated, tag = "1")]
1050    pub backups: ::prost::alloc::vec::Vec<super::mysqlctl::BackupInfo>,
1051}
1052#[allow(clippy::derive_partial_eq_without_eq)]
1053#[derive(Clone, PartialEq, ::prost::Message)]
1054pub struct GetCellInfoRequest {
1055    #[prost(string, tag = "1")]
1056    pub cell: ::prost::alloc::string::String,
1057}
1058#[allow(clippy::derive_partial_eq_without_eq)]
1059#[derive(Clone, PartialEq, ::prost::Message)]
1060pub struct GetCellInfoResponse {
1061    #[prost(message, optional, tag = "1")]
1062    pub cell_info: ::core::option::Option<super::topodata::CellInfo>,
1063}
1064#[allow(clippy::derive_partial_eq_without_eq)]
1065#[derive(Clone, PartialEq, ::prost::Message)]
1066pub struct GetCellInfoNamesRequest {}
1067#[allow(clippy::derive_partial_eq_without_eq)]
1068#[derive(Clone, PartialEq, ::prost::Message)]
1069pub struct GetCellInfoNamesResponse {
1070    #[prost(string, repeated, tag = "1")]
1071    pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1072}
1073#[allow(clippy::derive_partial_eq_without_eq)]
1074#[derive(Clone, PartialEq, ::prost::Message)]
1075pub struct GetCellsAliasesRequest {}
1076#[allow(clippy::derive_partial_eq_without_eq)]
1077#[derive(Clone, PartialEq, ::prost::Message)]
1078pub struct GetCellsAliasesResponse {
1079    #[prost(map = "string, message", tag = "1")]
1080    pub aliases: ::std::collections::HashMap<
1081        ::prost::alloc::string::String,
1082        super::topodata::CellsAlias,
1083    >,
1084}
1085#[allow(clippy::derive_partial_eq_without_eq)]
1086#[derive(Clone, PartialEq, ::prost::Message)]
1087pub struct GetFullStatusRequest {
1088    #[prost(message, optional, tag = "1")]
1089    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
1090}
1091#[allow(clippy::derive_partial_eq_without_eq)]
1092#[derive(Clone, PartialEq, ::prost::Message)]
1093pub struct GetFullStatusResponse {
1094    #[prost(message, optional, tag = "1")]
1095    pub status: ::core::option::Option<super::replicationdata::FullStatus>,
1096}
1097#[allow(clippy::derive_partial_eq_without_eq)]
1098#[derive(Clone, PartialEq, ::prost::Message)]
1099pub struct GetKeyspacesRequest {}
1100#[allow(clippy::derive_partial_eq_without_eq)]
1101#[derive(Clone, PartialEq, ::prost::Message)]
1102pub struct GetKeyspacesResponse {
1103    #[prost(message, repeated, tag = "1")]
1104    pub keyspaces: ::prost::alloc::vec::Vec<Keyspace>,
1105}
1106#[allow(clippy::derive_partial_eq_without_eq)]
1107#[derive(Clone, PartialEq, ::prost::Message)]
1108pub struct GetKeyspaceRequest {
1109    #[prost(string, tag = "1")]
1110    pub keyspace: ::prost::alloc::string::String,
1111}
1112#[allow(clippy::derive_partial_eq_without_eq)]
1113#[derive(Clone, PartialEq, ::prost::Message)]
1114pub struct GetKeyspaceResponse {
1115    #[prost(message, optional, tag = "1")]
1116    pub keyspace: ::core::option::Option<Keyspace>,
1117}
1118#[allow(clippy::derive_partial_eq_without_eq)]
1119#[derive(Clone, PartialEq, ::prost::Message)]
1120pub struct GetPermissionsRequest {
1121    #[prost(message, optional, tag = "1")]
1122    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
1123}
1124#[allow(clippy::derive_partial_eq_without_eq)]
1125#[derive(Clone, PartialEq, ::prost::Message)]
1126pub struct GetPermissionsResponse {
1127    #[prost(message, optional, tag = "1")]
1128    pub permissions: ::core::option::Option<super::tabletmanagerdata::Permissions>,
1129}
1130#[allow(clippy::derive_partial_eq_without_eq)]
1131#[derive(Clone, PartialEq, ::prost::Message)]
1132pub struct GetRoutingRulesRequest {}
1133#[allow(clippy::derive_partial_eq_without_eq)]
1134#[derive(Clone, PartialEq, ::prost::Message)]
1135pub struct GetRoutingRulesResponse {
1136    #[prost(message, optional, tag = "1")]
1137    pub routing_rules: ::core::option::Option<super::vschema::RoutingRules>,
1138}
1139#[allow(clippy::derive_partial_eq_without_eq)]
1140#[derive(Clone, PartialEq, ::prost::Message)]
1141pub struct GetSchemaRequest {
1142    #[prost(message, optional, tag = "1")]
1143    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
1144    /// Tables is a list of tables for which we should gather information. Each is
1145    /// either an exact match, or a regular expression of the form /regexp/.
1146    #[prost(string, repeated, tag = "2")]
1147    pub tables: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1148    /// ExcludeTables is a list of tables to exclude from the result. Each is
1149    /// either an exact match, or a regular expression of the form /regexp/.
1150    #[prost(string, repeated, tag = "3")]
1151    pub exclude_tables: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1152    /// IncludeViews specifies whether to include views in the result.
1153    #[prost(bool, tag = "4")]
1154    pub include_views: bool,
1155    /// TableNamesOnly specifies whether to limit the results to just table names,
1156    /// rather than full schema information for each table.
1157    #[prost(bool, tag = "5")]
1158    pub table_names_only: bool,
1159    /// TableSizesOnly specifies whether to limit the results to just table sizes,
1160    /// rather than full schema information for each table. It is ignored if
1161    /// TableNamesOnly is set to true.
1162    #[prost(bool, tag = "6")]
1163    pub table_sizes_only: bool,
1164    /// TableSchemaOnly specifies whether to limit the results to just table/view
1165    /// schema definition (CREATE TABLE/VIEW statements) and skip column/field information
1166    #[prost(bool, tag = "7")]
1167    pub table_schema_only: bool,
1168}
1169#[allow(clippy::derive_partial_eq_without_eq)]
1170#[derive(Clone, PartialEq, ::prost::Message)]
1171pub struct GetSchemaResponse {
1172    #[prost(message, optional, tag = "1")]
1173    pub schema: ::core::option::Option<super::tabletmanagerdata::SchemaDefinition>,
1174}
1175/// GetSchemaMigrationsRequest controls the behavior of the GetSchemaMigrations
1176/// rpc.
1177///
1178/// Keyspace is a required field, while all other fields are optional.
1179///
1180/// If UUID is set, other optional fields will be ignored, since there will be at
1181/// most one migration with that UUID. Furthermore, if no migration with that
1182/// UUID exists, an empty response, not an error, is returned.
1183///
1184/// MigrationContext, Status, and Recent are mutually exclusive.
1185#[allow(clippy::derive_partial_eq_without_eq)]
1186#[derive(Clone, PartialEq, ::prost::Message)]
1187pub struct GetSchemaMigrationsRequest {
1188    #[prost(string, tag = "1")]
1189    pub keyspace: ::prost::alloc::string::String,
1190    /// Uuid, if set, will cause GetSchemaMigrations to return exactly 1 migration,
1191    /// namely the one with that UUID. If no migration exists, the response will
1192    /// be an empty slice, not an error.
1193    ///
1194    /// If this field is set, other fields (status filters, limit, skip, order) are
1195    /// ignored.
1196    #[prost(string, tag = "2")]
1197    pub uuid: ::prost::alloc::string::String,
1198    #[prost(string, tag = "3")]
1199    pub migration_context: ::prost::alloc::string::String,
1200    #[prost(enumeration = "schema_migration::Status", tag = "4")]
1201    pub status: i32,
1202    /// Recent, if set, returns migrations requested between now and the provided
1203    /// value.
1204    #[prost(message, optional, tag = "5")]
1205    pub recent: ::core::option::Option<super::vttime::Duration>,
1206    #[prost(enumeration = "QueryOrdering", tag = "6")]
1207    pub order: i32,
1208    #[prost(uint64, tag = "7")]
1209    pub limit: u64,
1210    #[prost(uint64, tag = "8")]
1211    pub skip: u64,
1212}
1213#[allow(clippy::derive_partial_eq_without_eq)]
1214#[derive(Clone, PartialEq, ::prost::Message)]
1215pub struct GetSchemaMigrationsResponse {
1216    #[prost(message, repeated, tag = "1")]
1217    pub migrations: ::prost::alloc::vec::Vec<SchemaMigration>,
1218}
1219#[allow(clippy::derive_partial_eq_without_eq)]
1220#[derive(Clone, PartialEq, ::prost::Message)]
1221pub struct GetShardRequest {
1222    #[prost(string, tag = "1")]
1223    pub keyspace: ::prost::alloc::string::String,
1224    #[prost(string, tag = "2")]
1225    pub shard_name: ::prost::alloc::string::String,
1226}
1227#[allow(clippy::derive_partial_eq_without_eq)]
1228#[derive(Clone, PartialEq, ::prost::Message)]
1229pub struct GetShardResponse {
1230    #[prost(message, optional, tag = "1")]
1231    pub shard: ::core::option::Option<Shard>,
1232}
1233#[allow(clippy::derive_partial_eq_without_eq)]
1234#[derive(Clone, PartialEq, ::prost::Message)]
1235pub struct GetShardRoutingRulesRequest {}
1236#[allow(clippy::derive_partial_eq_without_eq)]
1237#[derive(Clone, PartialEq, ::prost::Message)]
1238pub struct GetShardRoutingRulesResponse {
1239    #[prost(message, optional, tag = "1")]
1240    pub shard_routing_rules: ::core::option::Option<super::vschema::ShardRoutingRules>,
1241}
1242#[allow(clippy::derive_partial_eq_without_eq)]
1243#[derive(Clone, PartialEq, ::prost::Message)]
1244pub struct GetSrvKeyspaceNamesRequest {
1245    #[prost(string, repeated, tag = "1")]
1246    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1247}
1248#[allow(clippy::derive_partial_eq_without_eq)]
1249#[derive(Clone, PartialEq, ::prost::Message)]
1250pub struct GetSrvKeyspaceNamesResponse {
1251    /// Names is a mapping of cell name to a list of SrvKeyspace names.
1252    #[prost(map = "string, message", tag = "1")]
1253    pub names: ::std::collections::HashMap<
1254        ::prost::alloc::string::String,
1255        get_srv_keyspace_names_response::NameList,
1256    >,
1257}
1258/// Nested message and enum types in `GetSrvKeyspaceNamesResponse`.
1259pub mod get_srv_keyspace_names_response {
1260    #[allow(clippy::derive_partial_eq_without_eq)]
1261    #[derive(Clone, PartialEq, ::prost::Message)]
1262    pub struct NameList {
1263        #[prost(string, repeated, tag = "1")]
1264        pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1265    }
1266}
1267#[allow(clippy::derive_partial_eq_without_eq)]
1268#[derive(Clone, PartialEq, ::prost::Message)]
1269pub struct GetSrvKeyspacesRequest {
1270    #[prost(string, tag = "1")]
1271    pub keyspace: ::prost::alloc::string::String,
1272    /// Cells is a list of cells to lookup a SrvKeyspace for. Leaving this empty is
1273    /// equivalent to specifying all cells in the topo.
1274    #[prost(string, repeated, tag = "2")]
1275    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1276}
1277#[allow(clippy::derive_partial_eq_without_eq)]
1278#[derive(Clone, PartialEq, ::prost::Message)]
1279pub struct GetSrvKeyspacesResponse {
1280    /// SrvKeyspaces is a mapping of cell name to SrvKeyspace.
1281    #[prost(map = "string, message", tag = "1")]
1282    pub srv_keyspaces: ::std::collections::HashMap<
1283        ::prost::alloc::string::String,
1284        super::topodata::SrvKeyspace,
1285    >,
1286}
1287#[allow(clippy::derive_partial_eq_without_eq)]
1288#[derive(Clone, PartialEq, ::prost::Message)]
1289pub struct UpdateThrottlerConfigRequest {
1290    #[prost(string, tag = "1")]
1291    pub keyspace: ::prost::alloc::string::String,
1292    /// Enable instructs to enable the throttler
1293    #[prost(bool, tag = "2")]
1294    pub enable: bool,
1295    /// Disable instructs to disable the throttler
1296    #[prost(bool, tag = "3")]
1297    pub disable: bool,
1298    /// Threshold for throttler (with no custom query, ie using default query, only positive values are considered)
1299    #[prost(double, tag = "4")]
1300    pub threshold: f64,
1301    /// CustomQuery replaces the default replication lag query
1302    #[prost(string, tag = "5")]
1303    pub custom_query: ::prost::alloc::string::String,
1304    /// CustomQuerySet indicates that the value of CustomQuery has changed
1305    #[prost(bool, tag = "6")]
1306    pub custom_query_set: bool,
1307    /// CheckAsCheckSelf instructs the throttler to respond to /check requests by checking the tablet's own health
1308    #[prost(bool, tag = "7")]
1309    pub check_as_check_self: bool,
1310    /// CheckAsCheckShard instructs the throttler to respond to /check requests by checking the shard's health (this is the default behavior)
1311    #[prost(bool, tag = "8")]
1312    pub check_as_check_shard: bool,
1313    /// ThrottledApp indicates a single throttled app rule (ignored if name is empty)
1314    #[prost(message, optional, tag = "9")]
1315    pub throttled_app: ::core::option::Option<super::topodata::ThrottledAppRule>,
1316}
1317#[allow(clippy::derive_partial_eq_without_eq)]
1318#[derive(Clone, PartialEq, ::prost::Message)]
1319pub struct UpdateThrottlerConfigResponse {}
1320#[allow(clippy::derive_partial_eq_without_eq)]
1321#[derive(Clone, PartialEq, ::prost::Message)]
1322pub struct GetSrvVSchemaRequest {
1323    #[prost(string, tag = "1")]
1324    pub cell: ::prost::alloc::string::String,
1325}
1326#[allow(clippy::derive_partial_eq_without_eq)]
1327#[derive(Clone, PartialEq, ::prost::Message)]
1328pub struct GetSrvVSchemaResponse {
1329    #[prost(message, optional, tag = "1")]
1330    pub srv_v_schema: ::core::option::Option<super::vschema::SrvVSchema>,
1331}
1332#[allow(clippy::derive_partial_eq_without_eq)]
1333#[derive(Clone, PartialEq, ::prost::Message)]
1334pub struct GetSrvVSchemasRequest {
1335    #[prost(string, repeated, tag = "2")]
1336    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1337}
1338#[allow(clippy::derive_partial_eq_without_eq)]
1339#[derive(Clone, PartialEq, ::prost::Message)]
1340pub struct GetSrvVSchemasResponse {
1341    /// SrvVSchemas is a mapping of cell name to SrvVSchema
1342    #[prost(map = "string, message", tag = "1")]
1343    pub srv_v_schemas: ::std::collections::HashMap<
1344        ::prost::alloc::string::String,
1345        super::vschema::SrvVSchema,
1346    >,
1347}
1348#[allow(clippy::derive_partial_eq_without_eq)]
1349#[derive(Clone, PartialEq, ::prost::Message)]
1350pub struct GetTabletRequest {
1351    #[prost(message, optional, tag = "1")]
1352    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
1353}
1354#[allow(clippy::derive_partial_eq_without_eq)]
1355#[derive(Clone, PartialEq, ::prost::Message)]
1356pub struct GetTabletResponse {
1357    #[prost(message, optional, tag = "1")]
1358    pub tablet: ::core::option::Option<super::topodata::Tablet>,
1359}
1360#[allow(clippy::derive_partial_eq_without_eq)]
1361#[derive(Clone, PartialEq, ::prost::Message)]
1362pub struct GetTabletsRequest {
1363    /// Keyspace is the name of the keyspace to return tablets for. Omit to return
1364    /// tablets from all keyspaces.
1365    #[prost(string, tag = "1")]
1366    pub keyspace: ::prost::alloc::string::String,
1367    /// Shard is the name of the shard to return tablets for. This field is ignored
1368    /// if Keyspace is not set.
1369    #[prost(string, tag = "2")]
1370    pub shard: ::prost::alloc::string::String,
1371    /// Cells is an optional set of cells to return tablets for.
1372    #[prost(string, repeated, tag = "3")]
1373    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1374    /// Strict specifies how the server should treat failures from individual
1375    /// cells.
1376    ///
1377    /// When false (the default), GetTablets will return data from any cells that
1378    /// return successfully, but will fail the request if all cells fail. When
1379    /// true, any individual cell can fail the full request.
1380    #[prost(bool, tag = "4")]
1381    pub strict: bool,
1382    /// TabletAliases is an optional list of tablet aliases to fetch Tablet objects
1383    /// for. If specified, Keyspace, Shard, and Cells are ignored, and tablets are
1384    /// looked up by their respective aliases' Cells directly.
1385    #[prost(message, repeated, tag = "5")]
1386    pub tablet_aliases: ::prost::alloc::vec::Vec<super::topodata::TabletAlias>,
1387    /// tablet_type specifies the type of tablets to return. Omit to return all
1388    /// tablet types.
1389    #[prost(enumeration = "super::topodata::TabletType", tag = "6")]
1390    pub tablet_type: i32,
1391}
1392#[allow(clippy::derive_partial_eq_without_eq)]
1393#[derive(Clone, PartialEq, ::prost::Message)]
1394pub struct GetTabletsResponse {
1395    #[prost(message, repeated, tag = "1")]
1396    pub tablets: ::prost::alloc::vec::Vec<super::topodata::Tablet>,
1397}
1398#[allow(clippy::derive_partial_eq_without_eq)]
1399#[derive(Clone, PartialEq, ::prost::Message)]
1400pub struct GetTopologyPathRequest {
1401    #[prost(string, tag = "1")]
1402    pub path: ::prost::alloc::string::String,
1403}
1404#[allow(clippy::derive_partial_eq_without_eq)]
1405#[derive(Clone, PartialEq, ::prost::Message)]
1406pub struct GetTopologyPathResponse {
1407    #[prost(message, optional, tag = "1")]
1408    pub cell: ::core::option::Option<TopologyCell>,
1409}
1410#[allow(clippy::derive_partial_eq_without_eq)]
1411#[derive(Clone, PartialEq, ::prost::Message)]
1412pub struct TopologyCell {
1413    #[prost(string, tag = "1")]
1414    pub name: ::prost::alloc::string::String,
1415    #[prost(string, tag = "2")]
1416    pub path: ::prost::alloc::string::String,
1417    /// Data is the file contents of the cell located at path.
1418    /// It is only populated if the cell is a terminal node.
1419    #[prost(string, tag = "3")]
1420    pub data: ::prost::alloc::string::String,
1421    #[prost(string, repeated, tag = "4")]
1422    pub children: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1423}
1424#[allow(clippy::derive_partial_eq_without_eq)]
1425#[derive(Clone, PartialEq, ::prost::Message)]
1426pub struct GetVSchemaRequest {
1427    #[prost(string, tag = "1")]
1428    pub keyspace: ::prost::alloc::string::String,
1429}
1430#[allow(clippy::derive_partial_eq_without_eq)]
1431#[derive(Clone, PartialEq, ::prost::Message)]
1432pub struct GetVersionRequest {
1433    #[prost(message, optional, tag = "1")]
1434    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
1435}
1436#[allow(clippy::derive_partial_eq_without_eq)]
1437#[derive(Clone, PartialEq, ::prost::Message)]
1438pub struct GetVersionResponse {
1439    #[prost(string, tag = "1")]
1440    pub version: ::prost::alloc::string::String,
1441}
1442#[allow(clippy::derive_partial_eq_without_eq)]
1443#[derive(Clone, PartialEq, ::prost::Message)]
1444pub struct GetVSchemaResponse {
1445    #[prost(message, optional, tag = "1")]
1446    pub v_schema: ::core::option::Option<super::vschema::Keyspace>,
1447}
1448#[allow(clippy::derive_partial_eq_without_eq)]
1449#[derive(Clone, PartialEq, ::prost::Message)]
1450pub struct GetWorkflowsRequest {
1451    #[prost(string, tag = "1")]
1452    pub keyspace: ::prost::alloc::string::String,
1453    #[prost(bool, tag = "2")]
1454    pub active_only: bool,
1455    #[prost(bool, tag = "3")]
1456    pub name_only: bool,
1457    /// If you only want a specific workflow then set this field.
1458    #[prost(string, tag = "4")]
1459    pub workflow: ::prost::alloc::string::String,
1460    #[prost(bool, tag = "5")]
1461    pub include_logs: bool,
1462}
1463#[allow(clippy::derive_partial_eq_without_eq)]
1464#[derive(Clone, PartialEq, ::prost::Message)]
1465pub struct GetWorkflowsResponse {
1466    #[prost(message, repeated, tag = "1")]
1467    pub workflows: ::prost::alloc::vec::Vec<Workflow>,
1468}
1469#[allow(clippy::derive_partial_eq_without_eq)]
1470#[derive(Clone, PartialEq, ::prost::Message)]
1471pub struct InitShardPrimaryRequest {
1472    #[prost(string, tag = "1")]
1473    pub keyspace: ::prost::alloc::string::String,
1474    #[prost(string, tag = "2")]
1475    pub shard: ::prost::alloc::string::String,
1476    #[prost(message, optional, tag = "3")]
1477    pub primary_elect_tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
1478    #[prost(bool, tag = "4")]
1479    pub force: bool,
1480    #[prost(message, optional, tag = "5")]
1481    pub wait_replicas_timeout: ::core::option::Option<super::vttime::Duration>,
1482}
1483#[allow(clippy::derive_partial_eq_without_eq)]
1484#[derive(Clone, PartialEq, ::prost::Message)]
1485pub struct InitShardPrimaryResponse {
1486    #[prost(message, repeated, tag = "1")]
1487    pub events: ::prost::alloc::vec::Vec<super::logutil::Event>,
1488}
1489#[allow(clippy::derive_partial_eq_without_eq)]
1490#[derive(Clone, PartialEq, ::prost::Message)]
1491pub struct LaunchSchemaMigrationRequest {
1492    #[prost(string, tag = "1")]
1493    pub keyspace: ::prost::alloc::string::String,
1494    #[prost(string, tag = "2")]
1495    pub uuid: ::prost::alloc::string::String,
1496}
1497#[allow(clippy::derive_partial_eq_without_eq)]
1498#[derive(Clone, PartialEq, ::prost::Message)]
1499pub struct LaunchSchemaMigrationResponse {
1500    #[prost(map = "string, uint64", tag = "1")]
1501    pub rows_affected_by_shard: ::std::collections::HashMap<
1502        ::prost::alloc::string::String,
1503        u64,
1504    >,
1505}
1506#[allow(clippy::derive_partial_eq_without_eq)]
1507#[derive(Clone, PartialEq, ::prost::Message)]
1508pub struct LookupVindexCreateRequest {
1509    #[prost(string, tag = "1")]
1510    pub keyspace: ::prost::alloc::string::String,
1511    #[prost(string, tag = "2")]
1512    pub workflow: ::prost::alloc::string::String,
1513    #[prost(string, repeated, tag = "3")]
1514    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1515    #[prost(message, optional, tag = "4")]
1516    pub vindex: ::core::option::Option<super::vschema::Keyspace>,
1517    #[prost(bool, tag = "5")]
1518    pub continue_after_copy_with_owner: bool,
1519    #[prost(enumeration = "super::topodata::TabletType", repeated, tag = "6")]
1520    pub tablet_types: ::prost::alloc::vec::Vec<i32>,
1521    #[prost(
1522        enumeration = "super::tabletmanagerdata::TabletSelectionPreference",
1523        tag = "7"
1524    )]
1525    pub tablet_selection_preference: i32,
1526}
1527#[allow(clippy::derive_partial_eq_without_eq)]
1528#[derive(Clone, PartialEq, ::prost::Message)]
1529pub struct LookupVindexCreateResponse {}
1530#[allow(clippy::derive_partial_eq_without_eq)]
1531#[derive(Clone, PartialEq, ::prost::Message)]
1532pub struct LookupVindexExternalizeRequest {
1533    /// Where the lookup vindex lives.
1534    #[prost(string, tag = "1")]
1535    pub keyspace: ::prost::alloc::string::String,
1536    /// This is the name of the lookup vindex and the vreplication workflow.
1537    #[prost(string, tag = "2")]
1538    pub name: ::prost::alloc::string::String,
1539    /// Where the vreplication workflow lives.
1540    #[prost(string, tag = "3")]
1541    pub table_keyspace: ::prost::alloc::string::String,
1542}
1543#[allow(clippy::derive_partial_eq_without_eq)]
1544#[derive(Clone, PartialEq, ::prost::Message)]
1545pub struct LookupVindexExternalizeResponse {
1546    /// Was the workflow also deleted.
1547    #[prost(bool, tag = "1")]
1548    pub workflow_deleted: bool,
1549}
1550#[allow(clippy::derive_partial_eq_without_eq)]
1551#[derive(Clone, PartialEq, ::prost::Message)]
1552pub struct MaterializeCreateRequest {
1553    #[prost(message, optional, tag = "1")]
1554    pub settings: ::core::option::Option<MaterializeSettings>,
1555}
1556#[allow(clippy::derive_partial_eq_without_eq)]
1557#[derive(Clone, PartialEq, ::prost::Message)]
1558pub struct MaterializeCreateResponse {}
1559#[allow(clippy::derive_partial_eq_without_eq)]
1560#[derive(Clone, PartialEq, ::prost::Message)]
1561pub struct MigrateCreateRequest {
1562    /// The necessary info gets passed on to each primary tablet involved
1563    /// in the workflow via the CreateVReplicationWorkflow tabletmanager RPC.
1564    #[prost(string, tag = "1")]
1565    pub workflow: ::prost::alloc::string::String,
1566    #[prost(string, tag = "2")]
1567    pub source_keyspace: ::prost::alloc::string::String,
1568    #[prost(string, tag = "3")]
1569    pub target_keyspace: ::prost::alloc::string::String,
1570    #[prost(string, tag = "4")]
1571    pub mount_name: ::prost::alloc::string::String,
1572    #[prost(string, repeated, tag = "5")]
1573    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1574    #[prost(enumeration = "super::topodata::TabletType", repeated, tag = "6")]
1575    pub tablet_types: ::prost::alloc::vec::Vec<i32>,
1576    #[prost(
1577        enumeration = "super::tabletmanagerdata::TabletSelectionPreference",
1578        tag = "7"
1579    )]
1580    pub tablet_selection_preference: i32,
1581    #[prost(bool, tag = "8")]
1582    pub all_tables: bool,
1583    #[prost(string, repeated, tag = "9")]
1584    pub include_tables: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1585    #[prost(string, repeated, tag = "10")]
1586    pub exclude_tables: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1587    /// SourceTimeZone is the time zone in which datetimes on the source were stored, provided as an option in MoveTables
1588    #[prost(string, tag = "11")]
1589    pub source_time_zone: ::prost::alloc::string::String,
1590    /// OnDdl specifies the action to be taken when a DDL is encountered.
1591    #[prost(string, tag = "12")]
1592    pub on_ddl: ::prost::alloc::string::String,
1593    /// StopAfterCopy specifies if vreplication should be stopped after copying.
1594    #[prost(bool, tag = "13")]
1595    pub stop_after_copy: bool,
1596    /// DropForeignKeys specifies if foreign key constraints should be elided on the target.
1597    #[prost(bool, tag = "14")]
1598    pub drop_foreign_keys: bool,
1599    /// DeferSecondaryKeys specifies if secondary keys should be created in one shot after table copy finishes.
1600    #[prost(bool, tag = "15")]
1601    pub defer_secondary_keys: bool,
1602    /// Start the workflow after creating it.
1603    #[prost(bool, tag = "16")]
1604    pub auto_start: bool,
1605    /// NoRoutingRules is set to true if routing rules should not be created on the target when the workflow is created.
1606    #[prost(bool, tag = "17")]
1607    pub no_routing_rules: bool,
1608}
1609#[allow(clippy::derive_partial_eq_without_eq)]
1610#[derive(Clone, PartialEq, ::prost::Message)]
1611pub struct MigrateCompleteRequest {
1612    #[prost(string, tag = "1")]
1613    pub workflow: ::prost::alloc::string::String,
1614    #[prost(string, tag = "3")]
1615    pub target_keyspace: ::prost::alloc::string::String,
1616    #[prost(bool, tag = "4")]
1617    pub keep_data: bool,
1618    #[prost(bool, tag = "5")]
1619    pub keep_routing_rules: bool,
1620    #[prost(bool, tag = "6")]
1621    pub rename_tables: bool,
1622    #[prost(bool, tag = "7")]
1623    pub dry_run: bool,
1624}
1625#[allow(clippy::derive_partial_eq_without_eq)]
1626#[derive(Clone, PartialEq, ::prost::Message)]
1627pub struct MigrateCompleteResponse {
1628    #[prost(string, tag = "1")]
1629    pub summary: ::prost::alloc::string::String,
1630    #[prost(string, repeated, tag = "2")]
1631    pub dry_run_results: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1632}
1633#[allow(clippy::derive_partial_eq_without_eq)]
1634#[derive(Clone, PartialEq, ::prost::Message)]
1635pub struct MountRegisterRequest {
1636    #[prost(string, tag = "1")]
1637    pub topo_type: ::prost::alloc::string::String,
1638    #[prost(string, tag = "2")]
1639    pub topo_server: ::prost::alloc::string::String,
1640    #[prost(string, tag = "3")]
1641    pub topo_root: ::prost::alloc::string::String,
1642    #[prost(string, tag = "4")]
1643    pub name: ::prost::alloc::string::String,
1644}
1645#[allow(clippy::derive_partial_eq_without_eq)]
1646#[derive(Clone, PartialEq, ::prost::Message)]
1647pub struct MountRegisterResponse {}
1648#[allow(clippy::derive_partial_eq_without_eq)]
1649#[derive(Clone, PartialEq, ::prost::Message)]
1650pub struct MountUnregisterRequest {
1651    #[prost(string, tag = "4")]
1652    pub name: ::prost::alloc::string::String,
1653}
1654#[allow(clippy::derive_partial_eq_without_eq)]
1655#[derive(Clone, PartialEq, ::prost::Message)]
1656pub struct MountUnregisterResponse {}
1657#[allow(clippy::derive_partial_eq_without_eq)]
1658#[derive(Clone, PartialEq, ::prost::Message)]
1659pub struct MountShowRequest {
1660    #[prost(string, tag = "4")]
1661    pub name: ::prost::alloc::string::String,
1662}
1663#[allow(clippy::derive_partial_eq_without_eq)]
1664#[derive(Clone, PartialEq, ::prost::Message)]
1665pub struct MountShowResponse {
1666    #[prost(string, tag = "1")]
1667    pub topo_type: ::prost::alloc::string::String,
1668    #[prost(string, tag = "2")]
1669    pub topo_server: ::prost::alloc::string::String,
1670    #[prost(string, tag = "3")]
1671    pub topo_root: ::prost::alloc::string::String,
1672    #[prost(string, tag = "4")]
1673    pub name: ::prost::alloc::string::String,
1674}
1675#[allow(clippy::derive_partial_eq_without_eq)]
1676#[derive(Clone, PartialEq, ::prost::Message)]
1677pub struct MountListRequest {}
1678#[allow(clippy::derive_partial_eq_without_eq)]
1679#[derive(Clone, PartialEq, ::prost::Message)]
1680pub struct MountListResponse {
1681    #[prost(string, repeated, tag = "1")]
1682    pub names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1683}
1684#[allow(clippy::derive_partial_eq_without_eq)]
1685#[derive(Clone, PartialEq, ::prost::Message)]
1686pub struct MoveTablesCreateRequest {
1687    /// The necessary info gets passed on to each primary tablet involved
1688    /// in the workflow via the CreateVReplicationWorkflow tabletmanager RPC.
1689    #[prost(string, tag = "1")]
1690    pub workflow: ::prost::alloc::string::String,
1691    #[prost(string, tag = "2")]
1692    pub source_keyspace: ::prost::alloc::string::String,
1693    #[prost(string, tag = "3")]
1694    pub target_keyspace: ::prost::alloc::string::String,
1695    #[prost(string, repeated, tag = "4")]
1696    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1697    #[prost(enumeration = "super::topodata::TabletType", repeated, tag = "5")]
1698    pub tablet_types: ::prost::alloc::vec::Vec<i32>,
1699    #[prost(
1700        enumeration = "super::tabletmanagerdata::TabletSelectionPreference",
1701        tag = "6"
1702    )]
1703    pub tablet_selection_preference: i32,
1704    #[prost(string, repeated, tag = "7")]
1705    pub source_shards: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1706    #[prost(bool, tag = "8")]
1707    pub all_tables: bool,
1708    #[prost(string, repeated, tag = "9")]
1709    pub include_tables: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1710    #[prost(string, repeated, tag = "10")]
1711    pub exclude_tables: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1712    /// The name of the external cluster mounted in topo server.
1713    #[prost(string, tag = "11")]
1714    pub external_cluster_name: ::prost::alloc::string::String,
1715    /// SourceTimeZone is the time zone in which datetimes on the source were stored, provided as an option in MoveTables
1716    #[prost(string, tag = "12")]
1717    pub source_time_zone: ::prost::alloc::string::String,
1718    /// OnDdl specifies the action to be taken when a DDL is encountered.
1719    #[prost(string, tag = "13")]
1720    pub on_ddl: ::prost::alloc::string::String,
1721    /// StopAfterCopy specifies if vreplication should be stopped after copying.
1722    #[prost(bool, tag = "14")]
1723    pub stop_after_copy: bool,
1724    /// DropForeignKeys specifies if foreign key constraints should be elided on the target.
1725    #[prost(bool, tag = "15")]
1726    pub drop_foreign_keys: bool,
1727    /// DeferSecondaryKeys specifies if secondary keys should be created in one shot after table copy finishes.
1728    #[prost(bool, tag = "16")]
1729    pub defer_secondary_keys: bool,
1730    /// Start the workflow after creating it.
1731    #[prost(bool, tag = "17")]
1732    pub auto_start: bool,
1733    /// NoRoutingRules is set to true if routing rules should not be created on the target when the workflow is created.
1734    #[prost(bool, tag = "18")]
1735    pub no_routing_rules: bool,
1736    /// Run a single copy phase for the entire database.
1737    #[prost(bool, tag = "19")]
1738    pub atomic_copy: bool,
1739}
1740#[allow(clippy::derive_partial_eq_without_eq)]
1741#[derive(Clone, PartialEq, ::prost::Message)]
1742pub struct MoveTablesCreateResponse {
1743    #[prost(string, tag = "1")]
1744    pub summary: ::prost::alloc::string::String,
1745    #[prost(message, repeated, tag = "2")]
1746    pub details: ::prost::alloc::vec::Vec<move_tables_create_response::TabletInfo>,
1747}
1748/// Nested message and enum types in `MoveTablesCreateResponse`.
1749pub mod move_tables_create_response {
1750    #[allow(clippy::derive_partial_eq_without_eq)]
1751    #[derive(Clone, PartialEq, ::prost::Message)]
1752    pub struct TabletInfo {
1753        #[prost(message, optional, tag = "1")]
1754        pub tablet: ::core::option::Option<super::super::topodata::TabletAlias>,
1755        /// Created is set if the workflow was created on this tablet or not.
1756        #[prost(bool, tag = "2")]
1757        pub created: bool,
1758    }
1759}
1760#[allow(clippy::derive_partial_eq_without_eq)]
1761#[derive(Clone, PartialEq, ::prost::Message)]
1762pub struct MoveTablesCompleteRequest {
1763    #[prost(string, tag = "1")]
1764    pub workflow: ::prost::alloc::string::String,
1765    #[prost(string, tag = "3")]
1766    pub target_keyspace: ::prost::alloc::string::String,
1767    #[prost(bool, tag = "4")]
1768    pub keep_data: bool,
1769    #[prost(bool, tag = "5")]
1770    pub keep_routing_rules: bool,
1771    #[prost(bool, tag = "6")]
1772    pub rename_tables: bool,
1773    #[prost(bool, tag = "7")]
1774    pub dry_run: bool,
1775}
1776#[allow(clippy::derive_partial_eq_without_eq)]
1777#[derive(Clone, PartialEq, ::prost::Message)]
1778pub struct MoveTablesCompleteResponse {
1779    #[prost(string, tag = "1")]
1780    pub summary: ::prost::alloc::string::String,
1781    #[prost(string, repeated, tag = "2")]
1782    pub dry_run_results: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1783}
1784#[allow(clippy::derive_partial_eq_without_eq)]
1785#[derive(Clone, PartialEq, ::prost::Message)]
1786pub struct PingTabletRequest {
1787    #[prost(message, optional, tag = "1")]
1788    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
1789}
1790#[allow(clippy::derive_partial_eq_without_eq)]
1791#[derive(Clone, PartialEq, ::prost::Message)]
1792pub struct PingTabletResponse {}
1793#[allow(clippy::derive_partial_eq_without_eq)]
1794#[derive(Clone, PartialEq, ::prost::Message)]
1795pub struct PlannedReparentShardRequest {
1796    /// Keyspace is the name of the keyspace to perform the Planned Reparent in.
1797    #[prost(string, tag = "1")]
1798    pub keyspace: ::prost::alloc::string::String,
1799    /// Shard is the name of the shard to perform teh Planned Reparent in.
1800    #[prost(string, tag = "2")]
1801    pub shard: ::prost::alloc::string::String,
1802    /// NewPrimary is the alias of the tablet to promote to shard primary. If not
1803    /// specified, the vtctld will select the most up-to-date candidate to promote.
1804    ///
1805    /// It is an error to set NewPrimary and AvoidPrimary to the same alias.
1806    #[prost(message, optional, tag = "3")]
1807    pub new_primary: ::core::option::Option<super::topodata::TabletAlias>,
1808    /// AvoidPrimary is the alias of the tablet to demote. In other words,
1809    /// specifying an AvoidPrimary alias tells the vtctld to promote any replica
1810    /// other than this one. A shard whose current primary is not this one is then
1811    /// a no-op.
1812    ///
1813    /// It is an error to set NewPrimary and AvoidPrimary to the same alias.
1814    #[prost(message, optional, tag = "4")]
1815    pub avoid_primary: ::core::option::Option<super::topodata::TabletAlias>,
1816    /// WaitReplicasTimeout is the duration of time to wait for replicas to catch
1817    /// up in replication both before and after the reparent. The timeout is not
1818    /// cumulative across both wait periods, meaning that the replicas have
1819    /// WaitReplicasTimeout time to catch up before the reparent, and an additional
1820    /// WaitReplicasTimeout time to catch up after the reparent.
1821    #[prost(message, optional, tag = "5")]
1822    pub wait_replicas_timeout: ::core::option::Option<super::vttime::Duration>,
1823}
1824#[allow(clippy::derive_partial_eq_without_eq)]
1825#[derive(Clone, PartialEq, ::prost::Message)]
1826pub struct PlannedReparentShardResponse {
1827    /// Keyspace is the name of the keyspace the Planned Reparent took place in.
1828    #[prost(string, tag = "1")]
1829    pub keyspace: ::prost::alloc::string::String,
1830    /// Shard is the name of the shard the Planned Reparent took place in.
1831    #[prost(string, tag = "2")]
1832    pub shard: ::prost::alloc::string::String,
1833    /// PromotedPrimary is the alias of the tablet that was promoted to shard
1834    /// primary. If NewPrimary was set in the request, then this will be the same
1835    /// alias. Otherwise, it will be the alias of the tablet found to be most
1836    /// up-to-date.
1837    #[prost(message, optional, tag = "3")]
1838    pub promoted_primary: ::core::option::Option<super::topodata::TabletAlias>,
1839    #[prost(message, repeated, tag = "4")]
1840    pub events: ::prost::alloc::vec::Vec<super::logutil::Event>,
1841}
1842#[allow(clippy::derive_partial_eq_without_eq)]
1843#[derive(Clone, PartialEq, ::prost::Message)]
1844pub struct RebuildKeyspaceGraphRequest {
1845    #[prost(string, tag = "1")]
1846    pub keyspace: ::prost::alloc::string::String,
1847    #[prost(string, repeated, tag = "2")]
1848    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1849    /// AllowPartial, when set, allows a SNAPSHOT keyspace to serve with an
1850    /// incomplete set of shards. It is ignored for all other keyspace types.
1851    #[prost(bool, tag = "3")]
1852    pub allow_partial: bool,
1853}
1854#[allow(clippy::derive_partial_eq_without_eq)]
1855#[derive(Clone, PartialEq, ::prost::Message)]
1856pub struct RebuildKeyspaceGraphResponse {}
1857#[allow(clippy::derive_partial_eq_without_eq)]
1858#[derive(Clone, PartialEq, ::prost::Message)]
1859pub struct RebuildVSchemaGraphRequest {
1860    /// Cells specifies the cells to rebuild the SrvVSchema objects for. If empty,
1861    /// RebuildVSchemaGraph rebuilds the SrvVSchema for every cell in the topo.
1862    #[prost(string, repeated, tag = "1")]
1863    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1864}
1865#[allow(clippy::derive_partial_eq_without_eq)]
1866#[derive(Clone, PartialEq, ::prost::Message)]
1867pub struct RebuildVSchemaGraphResponse {}
1868#[allow(clippy::derive_partial_eq_without_eq)]
1869#[derive(Clone, PartialEq, ::prost::Message)]
1870pub struct RefreshStateRequest {
1871    #[prost(message, optional, tag = "1")]
1872    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
1873}
1874#[allow(clippy::derive_partial_eq_without_eq)]
1875#[derive(Clone, PartialEq, ::prost::Message)]
1876pub struct RefreshStateResponse {}
1877#[allow(clippy::derive_partial_eq_without_eq)]
1878#[derive(Clone, PartialEq, ::prost::Message)]
1879pub struct RefreshStateByShardRequest {
1880    #[prost(string, tag = "1")]
1881    pub keyspace: ::prost::alloc::string::String,
1882    #[prost(string, tag = "2")]
1883    pub shard: ::prost::alloc::string::String,
1884    #[prost(string, repeated, tag = "3")]
1885    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1886}
1887#[allow(clippy::derive_partial_eq_without_eq)]
1888#[derive(Clone, PartialEq, ::prost::Message)]
1889pub struct RefreshStateByShardResponse {
1890    #[prost(bool, tag = "1")]
1891    pub is_partial_refresh: bool,
1892    /// This explains why we had a partial refresh (if we did)
1893    #[prost(string, tag = "2")]
1894    pub partial_refresh_details: ::prost::alloc::string::String,
1895}
1896#[allow(clippy::derive_partial_eq_without_eq)]
1897#[derive(Clone, PartialEq, ::prost::Message)]
1898pub struct ReloadSchemaRequest {
1899    #[prost(message, optional, tag = "1")]
1900    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
1901}
1902#[allow(clippy::derive_partial_eq_without_eq)]
1903#[derive(Clone, PartialEq, ::prost::Message)]
1904pub struct ReloadSchemaResponse {}
1905#[allow(clippy::derive_partial_eq_without_eq)]
1906#[derive(Clone, PartialEq, ::prost::Message)]
1907pub struct ReloadSchemaKeyspaceRequest {
1908    #[prost(string, tag = "1")]
1909    pub keyspace: ::prost::alloc::string::String,
1910    #[prost(string, tag = "2")]
1911    pub wait_position: ::prost::alloc::string::String,
1912    #[prost(bool, tag = "3")]
1913    pub include_primary: bool,
1914    /// Concurrency is the global concurrency across all shards in the keyspace
1915    /// (so, at most this many tablets will be reloaded across the keyspace at any
1916    /// given point).
1917    #[prost(uint32, tag = "4")]
1918    pub concurrency: u32,
1919}
1920#[allow(clippy::derive_partial_eq_without_eq)]
1921#[derive(Clone, PartialEq, ::prost::Message)]
1922pub struct ReloadSchemaKeyspaceResponse {
1923    #[prost(message, repeated, tag = "1")]
1924    pub events: ::prost::alloc::vec::Vec<super::logutil::Event>,
1925}
1926#[allow(clippy::derive_partial_eq_without_eq)]
1927#[derive(Clone, PartialEq, ::prost::Message)]
1928pub struct ReloadSchemaShardRequest {
1929    #[prost(string, tag = "1")]
1930    pub keyspace: ::prost::alloc::string::String,
1931    #[prost(string, tag = "2")]
1932    pub shard: ::prost::alloc::string::String,
1933    #[prost(string, tag = "3")]
1934    pub wait_position: ::prost::alloc::string::String,
1935    #[prost(bool, tag = "4")]
1936    pub include_primary: bool,
1937    /// Concurrency is the maximum number of tablets to reload at one time.
1938    #[prost(uint32, tag = "5")]
1939    pub concurrency: u32,
1940}
1941#[allow(clippy::derive_partial_eq_without_eq)]
1942#[derive(Clone, PartialEq, ::prost::Message)]
1943pub struct ReloadSchemaShardResponse {
1944    #[prost(message, repeated, tag = "2")]
1945    pub events: ::prost::alloc::vec::Vec<super::logutil::Event>,
1946}
1947#[allow(clippy::derive_partial_eq_without_eq)]
1948#[derive(Clone, PartialEq, ::prost::Message)]
1949pub struct RemoveBackupRequest {
1950    #[prost(string, tag = "1")]
1951    pub keyspace: ::prost::alloc::string::String,
1952    #[prost(string, tag = "2")]
1953    pub shard: ::prost::alloc::string::String,
1954    #[prost(string, tag = "3")]
1955    pub name: ::prost::alloc::string::String,
1956}
1957#[allow(clippy::derive_partial_eq_without_eq)]
1958#[derive(Clone, PartialEq, ::prost::Message)]
1959pub struct RemoveBackupResponse {}
1960#[allow(clippy::derive_partial_eq_without_eq)]
1961#[derive(Clone, PartialEq, ::prost::Message)]
1962pub struct RemoveKeyspaceCellRequest {
1963    #[prost(string, tag = "1")]
1964    pub keyspace: ::prost::alloc::string::String,
1965    #[prost(string, tag = "2")]
1966    pub cell: ::prost::alloc::string::String,
1967    /// Force proceeds even if the cell's topology server cannot be reached. This
1968    /// should only be set if a cell has been shut down entirely, and the global
1969    /// topology data just needs to be updated.
1970    #[prost(bool, tag = "3")]
1971    pub force: bool,
1972    /// Recursive also deletes all tablets in that cell belonging to the specified
1973    /// keyspace.
1974    #[prost(bool, tag = "4")]
1975    pub recursive: bool,
1976}
1977/// (TODO:@amason) Consider including the deleted SrvKeyspace object and any
1978/// deleted Tablet objects here.
1979#[allow(clippy::derive_partial_eq_without_eq)]
1980#[derive(Clone, PartialEq, ::prost::Message)]
1981pub struct RemoveKeyspaceCellResponse {}
1982#[allow(clippy::derive_partial_eq_without_eq)]
1983#[derive(Clone, PartialEq, ::prost::Message)]
1984pub struct RemoveShardCellRequest {
1985    #[prost(string, tag = "1")]
1986    pub keyspace: ::prost::alloc::string::String,
1987    #[prost(string, tag = "2")]
1988    pub shard_name: ::prost::alloc::string::String,
1989    #[prost(string, tag = "3")]
1990    pub cell: ::prost::alloc::string::String,
1991    /// Force proceeds even if the cell's topology server cannot be reached. This
1992    /// should only be set if a cell has been shut down entirely, and the global
1993    /// topology data just needs to be updated.
1994    #[prost(bool, tag = "4")]
1995    pub force: bool,
1996    /// Recursive also deletes all tablets in that cell belonging to the specified
1997    /// keyspace and shard.
1998    #[prost(bool, tag = "5")]
1999    pub recursive: bool,
2000}
2001/// (TODO:@amason) Consider including the deleted SrvKeyspacePartitions objects
2002/// and any deleted Tablet objects here.
2003#[allow(clippy::derive_partial_eq_without_eq)]
2004#[derive(Clone, PartialEq, ::prost::Message)]
2005pub struct RemoveShardCellResponse {}
2006#[allow(clippy::derive_partial_eq_without_eq)]
2007#[derive(Clone, PartialEq, ::prost::Message)]
2008pub struct ReparentTabletRequest {
2009    /// Tablet is the alias of the tablet that should be reparented under the
2010    /// current shard primary.
2011    #[prost(message, optional, tag = "1")]
2012    pub tablet: ::core::option::Option<super::topodata::TabletAlias>,
2013}
2014#[allow(clippy::derive_partial_eq_without_eq)]
2015#[derive(Clone, PartialEq, ::prost::Message)]
2016pub struct ReparentTabletResponse {
2017    /// Keyspace is the name of the keyspace the tablet was reparented in.
2018    #[prost(string, tag = "1")]
2019    pub keyspace: ::prost::alloc::string::String,
2020    /// Shard is the name of the shard the tablet was reparented in.
2021    #[prost(string, tag = "2")]
2022    pub shard: ::prost::alloc::string::String,
2023    /// Primary is the alias of the tablet that the tablet was reparented under.
2024    #[prost(message, optional, tag = "3")]
2025    pub primary: ::core::option::Option<super::topodata::TabletAlias>,
2026}
2027#[allow(clippy::derive_partial_eq_without_eq)]
2028#[derive(Clone, PartialEq, ::prost::Message)]
2029pub struct ReshardCreateRequest {
2030    #[prost(string, tag = "1")]
2031    pub workflow: ::prost::alloc::string::String,
2032    #[prost(string, tag = "2")]
2033    pub keyspace: ::prost::alloc::string::String,
2034    #[prost(string, repeated, tag = "3")]
2035    pub source_shards: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2036    #[prost(string, repeated, tag = "4")]
2037    pub target_shards: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2038    #[prost(string, repeated, tag = "5")]
2039    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2040    #[prost(enumeration = "super::topodata::TabletType", repeated, tag = "6")]
2041    pub tablet_types: ::prost::alloc::vec::Vec<i32>,
2042    #[prost(
2043        enumeration = "super::tabletmanagerdata::TabletSelectionPreference",
2044        tag = "7"
2045    )]
2046    pub tablet_selection_preference: i32,
2047    /// SkipSchemaCopy specifies if the schema should be copied from the source shard, set false if
2048    /// schema is already created on the target shard before Reshard is invoked.
2049    #[prost(bool, tag = "8")]
2050    pub skip_schema_copy: bool,
2051    /// OnDdl specifies the action to be taken when a DDL is encountered.
2052    #[prost(string, tag = "9")]
2053    pub on_ddl: ::prost::alloc::string::String,
2054    /// StopAfterCopy specifies if vreplication should be stopped after copying.
2055    #[prost(bool, tag = "10")]
2056    pub stop_after_copy: bool,
2057    /// DeferSecondaryKeys specifies if secondary keys should be created in one shot after table copy finishes.
2058    #[prost(bool, tag = "11")]
2059    pub defer_secondary_keys: bool,
2060    /// Start the workflow after creating it.
2061    #[prost(bool, tag = "12")]
2062    pub auto_start: bool,
2063}
2064#[allow(clippy::derive_partial_eq_without_eq)]
2065#[derive(Clone, PartialEq, ::prost::Message)]
2066pub struct RestoreFromBackupRequest {
2067    #[prost(message, optional, tag = "1")]
2068    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
2069    /// BackupTime, if set, will use the backup taken most closely at or before
2070    /// this time. If nil, the latest backup will be restored on the tablet.
2071    #[prost(message, optional, tag = "2")]
2072    pub backup_time: ::core::option::Option<super::vttime::Time>,
2073    /// RestoreToPos indicates a position for a point-in-time recovery. The recovery
2074    /// is expected to utilize one full backup, followed by zero or more incremental backups,
2075    /// that reach the precise desired position
2076    #[prost(string, tag = "3")]
2077    pub restore_to_pos: ::prost::alloc::string::String,
2078    /// Dry run does not actually performs the restore, but validates the steps and availability of backups
2079    #[prost(bool, tag = "4")]
2080    pub dry_run: bool,
2081    /// RestoreToTimestamp, if given, requested an inremental restore up to (and excluding) the given timestamp.
2082    /// RestoreToTimestamp and RestoreToPos are mutually exclusive.
2083    #[prost(message, optional, tag = "5")]
2084    pub restore_to_timestamp: ::core::option::Option<super::vttime::Time>,
2085}
2086#[allow(clippy::derive_partial_eq_without_eq)]
2087#[derive(Clone, PartialEq, ::prost::Message)]
2088pub struct RestoreFromBackupResponse {
2089    /// TabletAlias is the alias of the tablet doing the restore.
2090    #[prost(message, optional, tag = "1")]
2091    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
2092    #[prost(string, tag = "2")]
2093    pub keyspace: ::prost::alloc::string::String,
2094    #[prost(string, tag = "3")]
2095    pub shard: ::prost::alloc::string::String,
2096    #[prost(message, optional, tag = "4")]
2097    pub event: ::core::option::Option<super::logutil::Event>,
2098}
2099#[allow(clippy::derive_partial_eq_without_eq)]
2100#[derive(Clone, PartialEq, ::prost::Message)]
2101pub struct RetrySchemaMigrationRequest {
2102    #[prost(string, tag = "1")]
2103    pub keyspace: ::prost::alloc::string::String,
2104    #[prost(string, tag = "2")]
2105    pub uuid: ::prost::alloc::string::String,
2106}
2107#[allow(clippy::derive_partial_eq_without_eq)]
2108#[derive(Clone, PartialEq, ::prost::Message)]
2109pub struct RetrySchemaMigrationResponse {
2110    #[prost(map = "string, uint64", tag = "1")]
2111    pub rows_affected_by_shard: ::std::collections::HashMap<
2112        ::prost::alloc::string::String,
2113        u64,
2114    >,
2115}
2116#[allow(clippy::derive_partial_eq_without_eq)]
2117#[derive(Clone, PartialEq, ::prost::Message)]
2118pub struct RunHealthCheckRequest {
2119    #[prost(message, optional, tag = "1")]
2120    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
2121}
2122#[allow(clippy::derive_partial_eq_without_eq)]
2123#[derive(Clone, PartialEq, ::prost::Message)]
2124pub struct RunHealthCheckResponse {}
2125#[allow(clippy::derive_partial_eq_without_eq)]
2126#[derive(Clone, PartialEq, ::prost::Message)]
2127pub struct SetKeyspaceDurabilityPolicyRequest {
2128    #[prost(string, tag = "1")]
2129    pub keyspace: ::prost::alloc::string::String,
2130    #[prost(string, tag = "2")]
2131    pub durability_policy: ::prost::alloc::string::String,
2132}
2133#[allow(clippy::derive_partial_eq_without_eq)]
2134#[derive(Clone, PartialEq, ::prost::Message)]
2135pub struct SetKeyspaceDurabilityPolicyResponse {
2136    /// Keyspace is the updated keyspace record.
2137    #[prost(message, optional, tag = "1")]
2138    pub keyspace: ::core::option::Option<super::topodata::Keyspace>,
2139}
2140#[allow(clippy::derive_partial_eq_without_eq)]
2141#[derive(Clone, PartialEq, ::prost::Message)]
2142pub struct SetKeyspaceServedFromRequest {
2143    #[prost(string, tag = "1")]
2144    pub keyspace: ::prost::alloc::string::String,
2145    #[prost(enumeration = "super::topodata::TabletType", tag = "2")]
2146    pub tablet_type: i32,
2147    #[prost(string, repeated, tag = "3")]
2148    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2149    #[prost(bool, tag = "4")]
2150    pub remove: bool,
2151    #[prost(string, tag = "5")]
2152    pub source_keyspace: ::prost::alloc::string::String,
2153}
2154#[allow(clippy::derive_partial_eq_without_eq)]
2155#[derive(Clone, PartialEq, ::prost::Message)]
2156pub struct SetKeyspaceServedFromResponse {
2157    /// Keyspace is the updated keyspace record.
2158    #[prost(message, optional, tag = "1")]
2159    pub keyspace: ::core::option::Option<super::topodata::Keyspace>,
2160}
2161#[allow(clippy::derive_partial_eq_without_eq)]
2162#[derive(Clone, PartialEq, ::prost::Message)]
2163pub struct SetKeyspaceShardingInfoRequest {
2164    #[prost(string, tag = "1")]
2165    pub keyspace: ::prost::alloc::string::String,
2166    #[prost(bool, tag = "4")]
2167    pub force: bool,
2168}
2169#[allow(clippy::derive_partial_eq_without_eq)]
2170#[derive(Clone, PartialEq, ::prost::Message)]
2171pub struct SetKeyspaceShardingInfoResponse {
2172    /// Keyspace is the updated keyspace record.
2173    #[prost(message, optional, tag = "1")]
2174    pub keyspace: ::core::option::Option<super::topodata::Keyspace>,
2175}
2176#[allow(clippy::derive_partial_eq_without_eq)]
2177#[derive(Clone, PartialEq, ::prost::Message)]
2178pub struct SetShardIsPrimaryServingRequest {
2179    #[prost(string, tag = "1")]
2180    pub keyspace: ::prost::alloc::string::String,
2181    #[prost(string, tag = "2")]
2182    pub shard: ::prost::alloc::string::String,
2183    #[prost(bool, tag = "3")]
2184    pub is_serving: bool,
2185}
2186#[allow(clippy::derive_partial_eq_without_eq)]
2187#[derive(Clone, PartialEq, ::prost::Message)]
2188pub struct SetShardIsPrimaryServingResponse {
2189    /// Shard is the updated shard record.
2190    #[prost(message, optional, tag = "1")]
2191    pub shard: ::core::option::Option<super::topodata::Shard>,
2192}
2193#[allow(clippy::derive_partial_eq_without_eq)]
2194#[derive(Clone, PartialEq, ::prost::Message)]
2195pub struct SetShardTabletControlRequest {
2196    #[prost(string, tag = "1")]
2197    pub keyspace: ::prost::alloc::string::String,
2198    #[prost(string, tag = "2")]
2199    pub shard: ::prost::alloc::string::String,
2200    #[prost(enumeration = "super::topodata::TabletType", tag = "3")]
2201    pub tablet_type: i32,
2202    #[prost(string, repeated, tag = "4")]
2203    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2204    /// DeniedTables updates the list of denied tables the shard will serve for
2205    /// the given tablet type. This is useful to fix tables that are being blocked
2206    /// after a MoveTables operation.
2207    ///
2208    /// NOTE: Setting this field will cause DisableQueryService to be ignored.
2209    #[prost(string, repeated, tag = "5")]
2210    pub denied_tables: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2211    /// DisableQueryService instructs whether to enable the query service on
2212    /// tablets of the given type in the shard. This is useful to fix Reshard
2213    /// operations gone awry.
2214    ///
2215    /// NOTE: this is ignored if DeniedTables is not empty.
2216    #[prost(bool, tag = "6")]
2217    pub disable_query_service: bool,
2218    /// Remove removes the ShardTabletControl record entirely. If set, this takes
2219    /// precedence over DeniedTables and DisableQueryService fields, and is useful
2220    /// to manually remove serving restrictions after a completed MoveTables
2221    /// operation.
2222    #[prost(bool, tag = "7")]
2223    pub remove: bool,
2224}
2225#[allow(clippy::derive_partial_eq_without_eq)]
2226#[derive(Clone, PartialEq, ::prost::Message)]
2227pub struct SetShardTabletControlResponse {
2228    /// Shard is the updated shard record.
2229    #[prost(message, optional, tag = "1")]
2230    pub shard: ::core::option::Option<super::topodata::Shard>,
2231}
2232#[allow(clippy::derive_partial_eq_without_eq)]
2233#[derive(Clone, PartialEq, ::prost::Message)]
2234pub struct SetWritableRequest {
2235    #[prost(message, optional, tag = "1")]
2236    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
2237    #[prost(bool, tag = "2")]
2238    pub writable: bool,
2239}
2240#[allow(clippy::derive_partial_eq_without_eq)]
2241#[derive(Clone, PartialEq, ::prost::Message)]
2242pub struct SetWritableResponse {}
2243#[allow(clippy::derive_partial_eq_without_eq)]
2244#[derive(Clone, PartialEq, ::prost::Message)]
2245pub struct ShardReplicationAddRequest {
2246    #[prost(string, tag = "1")]
2247    pub keyspace: ::prost::alloc::string::String,
2248    #[prost(string, tag = "2")]
2249    pub shard: ::prost::alloc::string::String,
2250    #[prost(message, optional, tag = "3")]
2251    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
2252}
2253#[allow(clippy::derive_partial_eq_without_eq)]
2254#[derive(Clone, PartialEq, ::prost::Message)]
2255pub struct ShardReplicationAddResponse {}
2256#[allow(clippy::derive_partial_eq_without_eq)]
2257#[derive(Clone, PartialEq, ::prost::Message)]
2258pub struct ShardReplicationFixRequest {
2259    #[prost(string, tag = "1")]
2260    pub keyspace: ::prost::alloc::string::String,
2261    #[prost(string, tag = "2")]
2262    pub shard: ::prost::alloc::string::String,
2263    #[prost(string, tag = "3")]
2264    pub cell: ::prost::alloc::string::String,
2265}
2266#[allow(clippy::derive_partial_eq_without_eq)]
2267#[derive(Clone, PartialEq, ::prost::Message)]
2268pub struct ShardReplicationFixResponse {
2269    /// Error contains information about the error fixed by a
2270    /// ShardReplicationFix RPC. If there were no errors to fix (i.e. all nodes
2271    /// in the replication graph are valid), this field is nil.
2272    #[prost(message, optional, tag = "1")]
2273    pub error: ::core::option::Option<super::topodata::ShardReplicationError>,
2274}
2275#[allow(clippy::derive_partial_eq_without_eq)]
2276#[derive(Clone, PartialEq, ::prost::Message)]
2277pub struct ShardReplicationPositionsRequest {
2278    #[prost(string, tag = "1")]
2279    pub keyspace: ::prost::alloc::string::String,
2280    #[prost(string, tag = "2")]
2281    pub shard: ::prost::alloc::string::String,
2282}
2283#[allow(clippy::derive_partial_eq_without_eq)]
2284#[derive(Clone, PartialEq, ::prost::Message)]
2285pub struct ShardReplicationPositionsResponse {
2286    /// ReplicationStatuses is a mapping of tablet alias string to replication
2287    /// status for that tablet.
2288    #[prost(map = "string, message", tag = "1")]
2289    pub replication_statuses: ::std::collections::HashMap<
2290        ::prost::alloc::string::String,
2291        super::replicationdata::Status,
2292    >,
2293    /// TabletMap is the set of tablets whose replication statuses were queried,
2294    /// keyed by tablet alias.
2295    #[prost(map = "string, message", tag = "2")]
2296    pub tablet_map: ::std::collections::HashMap<
2297        ::prost::alloc::string::String,
2298        super::topodata::Tablet,
2299    >,
2300}
2301#[allow(clippy::derive_partial_eq_without_eq)]
2302#[derive(Clone, PartialEq, ::prost::Message)]
2303pub struct ShardReplicationRemoveRequest {
2304    #[prost(string, tag = "1")]
2305    pub keyspace: ::prost::alloc::string::String,
2306    #[prost(string, tag = "2")]
2307    pub shard: ::prost::alloc::string::String,
2308    #[prost(message, optional, tag = "3")]
2309    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
2310}
2311#[allow(clippy::derive_partial_eq_without_eq)]
2312#[derive(Clone, PartialEq, ::prost::Message)]
2313pub struct ShardReplicationRemoveResponse {}
2314#[allow(clippy::derive_partial_eq_without_eq)]
2315#[derive(Clone, PartialEq, ::prost::Message)]
2316pub struct SleepTabletRequest {
2317    #[prost(message, optional, tag = "1")]
2318    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
2319    #[prost(message, optional, tag = "2")]
2320    pub duration: ::core::option::Option<super::vttime::Duration>,
2321}
2322#[allow(clippy::derive_partial_eq_without_eq)]
2323#[derive(Clone, PartialEq, ::prost::Message)]
2324pub struct SleepTabletResponse {}
2325#[allow(clippy::derive_partial_eq_without_eq)]
2326#[derive(Clone, PartialEq, ::prost::Message)]
2327pub struct SourceShardAddRequest {
2328    #[prost(string, tag = "1")]
2329    pub keyspace: ::prost::alloc::string::String,
2330    #[prost(string, tag = "2")]
2331    pub shard: ::prost::alloc::string::String,
2332    #[prost(int32, tag = "3")]
2333    pub uid: i32,
2334    #[prost(string, tag = "4")]
2335    pub source_keyspace: ::prost::alloc::string::String,
2336    #[prost(string, tag = "5")]
2337    pub source_shard: ::prost::alloc::string::String,
2338    /// KeyRange identifies the key range to use for the SourceShard. This field is
2339    /// optional.
2340    #[prost(message, optional, tag = "6")]
2341    pub key_range: ::core::option::Option<super::topodata::KeyRange>,
2342    /// Tables is a list of tables replicate (for MoveTables). Each "table" can be
2343    /// either an exact match or a regular expression of the form "/regexp/".
2344    #[prost(string, repeated, tag = "7")]
2345    pub tables: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2346}
2347#[allow(clippy::derive_partial_eq_without_eq)]
2348#[derive(Clone, PartialEq, ::prost::Message)]
2349pub struct SourceShardAddResponse {
2350    /// Shard is the updated shard record.
2351    #[prost(message, optional, tag = "1")]
2352    pub shard: ::core::option::Option<super::topodata::Shard>,
2353}
2354#[allow(clippy::derive_partial_eq_without_eq)]
2355#[derive(Clone, PartialEq, ::prost::Message)]
2356pub struct SourceShardDeleteRequest {
2357    #[prost(string, tag = "1")]
2358    pub keyspace: ::prost::alloc::string::String,
2359    #[prost(string, tag = "2")]
2360    pub shard: ::prost::alloc::string::String,
2361    #[prost(int32, tag = "3")]
2362    pub uid: i32,
2363}
2364#[allow(clippy::derive_partial_eq_without_eq)]
2365#[derive(Clone, PartialEq, ::prost::Message)]
2366pub struct SourceShardDeleteResponse {
2367    /// Shard is the updated shard record.
2368    #[prost(message, optional, tag = "1")]
2369    pub shard: ::core::option::Option<super::topodata::Shard>,
2370}
2371#[allow(clippy::derive_partial_eq_without_eq)]
2372#[derive(Clone, PartialEq, ::prost::Message)]
2373pub struct StartReplicationRequest {
2374    #[prost(message, optional, tag = "1")]
2375    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
2376}
2377#[allow(clippy::derive_partial_eq_without_eq)]
2378#[derive(Clone, PartialEq, ::prost::Message)]
2379pub struct StartReplicationResponse {}
2380#[allow(clippy::derive_partial_eq_without_eq)]
2381#[derive(Clone, PartialEq, ::prost::Message)]
2382pub struct StopReplicationRequest {
2383    #[prost(message, optional, tag = "1")]
2384    pub tablet_alias: ::core::option::Option<super::topodata::TabletAlias>,
2385}
2386#[allow(clippy::derive_partial_eq_without_eq)]
2387#[derive(Clone, PartialEq, ::prost::Message)]
2388pub struct StopReplicationResponse {}
2389#[allow(clippy::derive_partial_eq_without_eq)]
2390#[derive(Clone, PartialEq, ::prost::Message)]
2391pub struct TabletExternallyReparentedRequest {
2392    /// Tablet is the alias of the tablet that was promoted externally and should
2393    /// be updated to the shard primary in the topo.
2394    #[prost(message, optional, tag = "1")]
2395    pub tablet: ::core::option::Option<super::topodata::TabletAlias>,
2396}
2397#[allow(clippy::derive_partial_eq_without_eq)]
2398#[derive(Clone, PartialEq, ::prost::Message)]
2399pub struct TabletExternallyReparentedResponse {
2400    #[prost(string, tag = "1")]
2401    pub keyspace: ::prost::alloc::string::String,
2402    #[prost(string, tag = "2")]
2403    pub shard: ::prost::alloc::string::String,
2404    #[prost(message, optional, tag = "3")]
2405    pub new_primary: ::core::option::Option<super::topodata::TabletAlias>,
2406    #[prost(message, optional, tag = "4")]
2407    pub old_primary: ::core::option::Option<super::topodata::TabletAlias>,
2408}
2409#[allow(clippy::derive_partial_eq_without_eq)]
2410#[derive(Clone, PartialEq, ::prost::Message)]
2411pub struct UpdateCellInfoRequest {
2412    #[prost(string, tag = "1")]
2413    pub name: ::prost::alloc::string::String,
2414    #[prost(message, optional, tag = "2")]
2415    pub cell_info: ::core::option::Option<super::topodata::CellInfo>,
2416}
2417#[allow(clippy::derive_partial_eq_without_eq)]
2418#[derive(Clone, PartialEq, ::prost::Message)]
2419pub struct UpdateCellInfoResponse {
2420    #[prost(string, tag = "1")]
2421    pub name: ::prost::alloc::string::String,
2422    #[prost(message, optional, tag = "2")]
2423    pub cell_info: ::core::option::Option<super::topodata::CellInfo>,
2424}
2425#[allow(clippy::derive_partial_eq_without_eq)]
2426#[derive(Clone, PartialEq, ::prost::Message)]
2427pub struct UpdateCellsAliasRequest {
2428    #[prost(string, tag = "1")]
2429    pub name: ::prost::alloc::string::String,
2430    #[prost(message, optional, tag = "2")]
2431    pub cells_alias: ::core::option::Option<super::topodata::CellsAlias>,
2432}
2433#[allow(clippy::derive_partial_eq_without_eq)]
2434#[derive(Clone, PartialEq, ::prost::Message)]
2435pub struct UpdateCellsAliasResponse {
2436    #[prost(string, tag = "1")]
2437    pub name: ::prost::alloc::string::String,
2438    #[prost(message, optional, tag = "2")]
2439    pub cells_alias: ::core::option::Option<super::topodata::CellsAlias>,
2440}
2441#[allow(clippy::derive_partial_eq_without_eq)]
2442#[derive(Clone, PartialEq, ::prost::Message)]
2443pub struct ValidateRequest {
2444    #[prost(bool, tag = "1")]
2445    pub ping_tablets: bool,
2446}
2447#[allow(clippy::derive_partial_eq_without_eq)]
2448#[derive(Clone, PartialEq, ::prost::Message)]
2449pub struct ValidateResponse {
2450    #[prost(string, repeated, tag = "1")]
2451    pub results: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2452    #[prost(map = "string, message", tag = "2")]
2453    pub results_by_keyspace: ::std::collections::HashMap<
2454        ::prost::alloc::string::String,
2455        ValidateKeyspaceResponse,
2456    >,
2457}
2458#[allow(clippy::derive_partial_eq_without_eq)]
2459#[derive(Clone, PartialEq, ::prost::Message)]
2460pub struct ValidateKeyspaceRequest {
2461    #[prost(string, tag = "1")]
2462    pub keyspace: ::prost::alloc::string::String,
2463    #[prost(bool, tag = "2")]
2464    pub ping_tablets: bool,
2465}
2466#[allow(clippy::derive_partial_eq_without_eq)]
2467#[derive(Clone, PartialEq, ::prost::Message)]
2468pub struct ValidateKeyspaceResponse {
2469    #[prost(string, repeated, tag = "1")]
2470    pub results: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2471    #[prost(map = "string, message", tag = "2")]
2472    pub results_by_shard: ::std::collections::HashMap<
2473        ::prost::alloc::string::String,
2474        ValidateShardResponse,
2475    >,
2476}
2477#[allow(clippy::derive_partial_eq_without_eq)]
2478#[derive(Clone, PartialEq, ::prost::Message)]
2479pub struct ValidateSchemaKeyspaceRequest {
2480    #[prost(string, tag = "1")]
2481    pub keyspace: ::prost::alloc::string::String,
2482    #[prost(string, repeated, tag = "2")]
2483    pub exclude_tables: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2484    #[prost(bool, tag = "3")]
2485    pub include_views: bool,
2486    #[prost(bool, tag = "4")]
2487    pub skip_no_primary: bool,
2488    #[prost(bool, tag = "5")]
2489    pub include_vschema: bool,
2490}
2491#[allow(clippy::derive_partial_eq_without_eq)]
2492#[derive(Clone, PartialEq, ::prost::Message)]
2493pub struct ValidateSchemaKeyspaceResponse {
2494    #[prost(string, repeated, tag = "1")]
2495    pub results: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2496    #[prost(map = "string, message", tag = "2")]
2497    pub results_by_shard: ::std::collections::HashMap<
2498        ::prost::alloc::string::String,
2499        ValidateShardResponse,
2500    >,
2501}
2502#[allow(clippy::derive_partial_eq_without_eq)]
2503#[derive(Clone, PartialEq, ::prost::Message)]
2504pub struct ValidateShardRequest {
2505    #[prost(string, tag = "1")]
2506    pub keyspace: ::prost::alloc::string::String,
2507    #[prost(string, tag = "2")]
2508    pub shard: ::prost::alloc::string::String,
2509    #[prost(bool, tag = "3")]
2510    pub ping_tablets: bool,
2511}
2512#[allow(clippy::derive_partial_eq_without_eq)]
2513#[derive(Clone, PartialEq, ::prost::Message)]
2514pub struct ValidateShardResponse {
2515    #[prost(string, repeated, tag = "1")]
2516    pub results: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2517}
2518#[allow(clippy::derive_partial_eq_without_eq)]
2519#[derive(Clone, PartialEq, ::prost::Message)]
2520pub struct ValidateVersionKeyspaceRequest {
2521    #[prost(string, tag = "1")]
2522    pub keyspace: ::prost::alloc::string::String,
2523}
2524#[allow(clippy::derive_partial_eq_without_eq)]
2525#[derive(Clone, PartialEq, ::prost::Message)]
2526pub struct ValidateVersionKeyspaceResponse {
2527    #[prost(string, repeated, tag = "1")]
2528    pub results: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2529    #[prost(map = "string, message", tag = "2")]
2530    pub results_by_shard: ::std::collections::HashMap<
2531        ::prost::alloc::string::String,
2532        ValidateShardResponse,
2533    >,
2534}
2535#[allow(clippy::derive_partial_eq_without_eq)]
2536#[derive(Clone, PartialEq, ::prost::Message)]
2537pub struct ValidateVersionShardRequest {
2538    #[prost(string, tag = "1")]
2539    pub keyspace: ::prost::alloc::string::String,
2540    #[prost(string, tag = "2")]
2541    pub shard: ::prost::alloc::string::String,
2542}
2543#[allow(clippy::derive_partial_eq_without_eq)]
2544#[derive(Clone, PartialEq, ::prost::Message)]
2545pub struct ValidateVersionShardResponse {
2546    #[prost(string, repeated, tag = "1")]
2547    pub results: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2548}
2549#[allow(clippy::derive_partial_eq_without_eq)]
2550#[derive(Clone, PartialEq, ::prost::Message)]
2551pub struct ValidateVSchemaRequest {
2552    #[prost(string, tag = "1")]
2553    pub keyspace: ::prost::alloc::string::String,
2554    #[prost(string, repeated, tag = "2")]
2555    pub shards: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2556    #[prost(string, repeated, tag = "3")]
2557    pub exclude_tables: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2558    #[prost(bool, tag = "4")]
2559    pub include_views: bool,
2560}
2561#[allow(clippy::derive_partial_eq_without_eq)]
2562#[derive(Clone, PartialEq, ::prost::Message)]
2563pub struct ValidateVSchemaResponse {
2564    #[prost(string, repeated, tag = "1")]
2565    pub results: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2566    #[prost(map = "string, message", tag = "2")]
2567    pub results_by_shard: ::std::collections::HashMap<
2568        ::prost::alloc::string::String,
2569        ValidateShardResponse,
2570    >,
2571}
2572#[allow(clippy::derive_partial_eq_without_eq)]
2573#[derive(Clone, PartialEq, ::prost::Message)]
2574pub struct VDiffCreateRequest {
2575    #[prost(string, tag = "1")]
2576    pub workflow: ::prost::alloc::string::String,
2577    #[prost(string, tag = "2")]
2578    pub target_keyspace: ::prost::alloc::string::String,
2579    #[prost(string, tag = "3")]
2580    pub uuid: ::prost::alloc::string::String,
2581    #[prost(string, repeated, tag = "4")]
2582    pub source_cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2583    #[prost(string, repeated, tag = "5")]
2584    pub target_cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2585    #[prost(enumeration = "super::topodata::TabletType", repeated, tag = "6")]
2586    pub tablet_types: ::prost::alloc::vec::Vec<i32>,
2587    #[prost(
2588        enumeration = "super::tabletmanagerdata::TabletSelectionPreference",
2589        tag = "7"
2590    )]
2591    pub tablet_selection_preference: i32,
2592    #[prost(string, repeated, tag = "8")]
2593    pub tables: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2594    #[prost(int64, tag = "9")]
2595    pub limit: i64,
2596    #[prost(message, optional, tag = "10")]
2597    pub filtered_replication_wait_time: ::core::option::Option<super::vttime::Duration>,
2598    #[prost(bool, tag = "11")]
2599    pub debug_query: bool,
2600    #[prost(bool, tag = "12")]
2601    pub only_p_ks: bool,
2602    #[prost(bool, tag = "13")]
2603    pub update_table_stats: bool,
2604    #[prost(int64, tag = "14")]
2605    pub max_extra_rows_to_compare: i64,
2606    #[prost(bool, tag = "15")]
2607    pub wait: bool,
2608    #[prost(message, optional, tag = "16")]
2609    pub wait_update_interval: ::core::option::Option<super::vttime::Duration>,
2610    #[prost(bool, tag = "17")]
2611    pub auto_retry: bool,
2612    #[prost(bool, tag = "18")]
2613    pub verbose: bool,
2614}
2615#[allow(clippy::derive_partial_eq_without_eq)]
2616#[derive(Clone, PartialEq, ::prost::Message)]
2617pub struct VDiffCreateResponse {
2618    /// Intentionally upper case to maintain compatibility with
2619    /// vtctlclient and other VDiff client command output.
2620    #[prost(string, tag = "1")]
2621    pub uuid: ::prost::alloc::string::String,
2622}
2623#[allow(clippy::derive_partial_eq_without_eq)]
2624#[derive(Clone, PartialEq, ::prost::Message)]
2625pub struct VDiffDeleteRequest {
2626    #[prost(string, tag = "1")]
2627    pub workflow: ::prost::alloc::string::String,
2628    #[prost(string, tag = "2")]
2629    pub target_keyspace: ::prost::alloc::string::String,
2630    /// This will be 'all' or a UUID.
2631    #[prost(string, tag = "3")]
2632    pub arg: ::prost::alloc::string::String,
2633}
2634#[allow(clippy::derive_partial_eq_without_eq)]
2635#[derive(Clone, PartialEq, ::prost::Message)]
2636pub struct VDiffDeleteResponse {}
2637#[allow(clippy::derive_partial_eq_without_eq)]
2638#[derive(Clone, PartialEq, ::prost::Message)]
2639pub struct VDiffResumeRequest {
2640    #[prost(string, tag = "1")]
2641    pub workflow: ::prost::alloc::string::String,
2642    #[prost(string, tag = "2")]
2643    pub target_keyspace: ::prost::alloc::string::String,
2644    #[prost(string, tag = "3")]
2645    pub uuid: ::prost::alloc::string::String,
2646}
2647#[allow(clippy::derive_partial_eq_without_eq)]
2648#[derive(Clone, PartialEq, ::prost::Message)]
2649pub struct VDiffResumeResponse {}
2650#[allow(clippy::derive_partial_eq_without_eq)]
2651#[derive(Clone, PartialEq, ::prost::Message)]
2652pub struct VDiffShowRequest {
2653    #[prost(string, tag = "1")]
2654    pub workflow: ::prost::alloc::string::String,
2655    #[prost(string, tag = "2")]
2656    pub target_keyspace: ::prost::alloc::string::String,
2657    /// This will be 'all', 'last', or a UUID.
2658    #[prost(string, tag = "3")]
2659    pub arg: ::prost::alloc::string::String,
2660}
2661#[allow(clippy::derive_partial_eq_without_eq)]
2662#[derive(Clone, PartialEq, ::prost::Message)]
2663pub struct VDiffShowResponse {
2664    /// The key is keyspace/shard.
2665    #[prost(map = "string, message", tag = "1")]
2666    pub tablet_responses: ::std::collections::HashMap<
2667        ::prost::alloc::string::String,
2668        super::tabletmanagerdata::VDiffResponse,
2669    >,
2670}
2671#[allow(clippy::derive_partial_eq_without_eq)]
2672#[derive(Clone, PartialEq, ::prost::Message)]
2673pub struct VDiffStopRequest {
2674    #[prost(string, tag = "1")]
2675    pub workflow: ::prost::alloc::string::String,
2676    #[prost(string, tag = "2")]
2677    pub target_keyspace: ::prost::alloc::string::String,
2678    #[prost(string, tag = "3")]
2679    pub uuid: ::prost::alloc::string::String,
2680}
2681#[allow(clippy::derive_partial_eq_without_eq)]
2682#[derive(Clone, PartialEq, ::prost::Message)]
2683pub struct VDiffStopResponse {}
2684#[allow(clippy::derive_partial_eq_without_eq)]
2685#[derive(Clone, PartialEq, ::prost::Message)]
2686pub struct WorkflowDeleteRequest {
2687    #[prost(string, tag = "1")]
2688    pub keyspace: ::prost::alloc::string::String,
2689    #[prost(string, tag = "2")]
2690    pub workflow: ::prost::alloc::string::String,
2691    #[prost(bool, tag = "3")]
2692    pub keep_data: bool,
2693    #[prost(bool, tag = "4")]
2694    pub keep_routing_rules: bool,
2695}
2696#[allow(clippy::derive_partial_eq_without_eq)]
2697#[derive(Clone, PartialEq, ::prost::Message)]
2698pub struct WorkflowDeleteResponse {
2699    #[prost(string, tag = "1")]
2700    pub summary: ::prost::alloc::string::String,
2701    #[prost(message, repeated, tag = "2")]
2702    pub details: ::prost::alloc::vec::Vec<workflow_delete_response::TabletInfo>,
2703}
2704/// Nested message and enum types in `WorkflowDeleteResponse`.
2705pub mod workflow_delete_response {
2706    #[allow(clippy::derive_partial_eq_without_eq)]
2707    #[derive(Clone, PartialEq, ::prost::Message)]
2708    pub struct TabletInfo {
2709        #[prost(message, optional, tag = "1")]
2710        pub tablet: ::core::option::Option<super::super::topodata::TabletAlias>,
2711        /// Delete is set if the workflow was deleted on this tablet.
2712        #[prost(bool, tag = "2")]
2713        pub deleted: bool,
2714    }
2715}
2716#[allow(clippy::derive_partial_eq_without_eq)]
2717#[derive(Clone, PartialEq, ::prost::Message)]
2718pub struct WorkflowStatusRequest {
2719    #[prost(string, tag = "1")]
2720    pub keyspace: ::prost::alloc::string::String,
2721    #[prost(string, tag = "2")]
2722    pub workflow: ::prost::alloc::string::String,
2723}
2724#[allow(clippy::derive_partial_eq_without_eq)]
2725#[derive(Clone, PartialEq, ::prost::Message)]
2726pub struct WorkflowStatusResponse {
2727    /// The key is keyspace/shard.
2728    #[prost(map = "string, message", tag = "1")]
2729    pub table_copy_state: ::std::collections::HashMap<
2730        ::prost::alloc::string::String,
2731        workflow_status_response::TableCopyState,
2732    >,
2733    #[prost(map = "string, message", tag = "2")]
2734    pub shard_streams: ::std::collections::HashMap<
2735        ::prost::alloc::string::String,
2736        workflow_status_response::ShardStreams,
2737    >,
2738    #[prost(string, tag = "3")]
2739    pub traffic_state: ::prost::alloc::string::String,
2740}
2741/// Nested message and enum types in `WorkflowStatusResponse`.
2742pub mod workflow_status_response {
2743    #[allow(clippy::derive_partial_eq_without_eq)]
2744    #[derive(Clone, PartialEq, ::prost::Message)]
2745    pub struct TableCopyState {
2746        #[prost(int64, tag = "1")]
2747        pub rows_copied: i64,
2748        #[prost(int64, tag = "2")]
2749        pub rows_total: i64,
2750        #[prost(float, tag = "3")]
2751        pub rows_percentage: f32,
2752        #[prost(int64, tag = "4")]
2753        pub bytes_copied: i64,
2754        #[prost(int64, tag = "5")]
2755        pub bytes_total: i64,
2756        #[prost(float, tag = "6")]
2757        pub bytes_percentage: f32,
2758    }
2759    #[allow(clippy::derive_partial_eq_without_eq)]
2760    #[derive(Clone, PartialEq, ::prost::Message)]
2761    pub struct ShardStreamState {
2762        #[prost(int32, tag = "1")]
2763        pub id: i32,
2764        #[prost(message, optional, tag = "2")]
2765        pub tablet: ::core::option::Option<super::super::topodata::TabletAlias>,
2766        #[prost(string, tag = "3")]
2767        pub source_shard: ::prost::alloc::string::String,
2768        #[prost(string, tag = "4")]
2769        pub position: ::prost::alloc::string::String,
2770        #[prost(string, tag = "5")]
2771        pub status: ::prost::alloc::string::String,
2772        #[prost(string, tag = "6")]
2773        pub info: ::prost::alloc::string::String,
2774    }
2775    #[allow(clippy::derive_partial_eq_without_eq)]
2776    #[derive(Clone, PartialEq, ::prost::Message)]
2777    pub struct ShardStreams {
2778        #[prost(message, repeated, tag = "2")]
2779        pub streams: ::prost::alloc::vec::Vec<ShardStreamState>,
2780    }
2781}
2782#[allow(clippy::derive_partial_eq_without_eq)]
2783#[derive(Clone, PartialEq, ::prost::Message)]
2784pub struct WorkflowSwitchTrafficRequest {
2785    #[prost(string, tag = "1")]
2786    pub keyspace: ::prost::alloc::string::String,
2787    #[prost(string, tag = "2")]
2788    pub workflow: ::prost::alloc::string::String,
2789    #[prost(string, repeated, tag = "3")]
2790    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2791    #[prost(enumeration = "super::topodata::TabletType", repeated, tag = "4")]
2792    pub tablet_types: ::prost::alloc::vec::Vec<i32>,
2793    #[prost(message, optional, tag = "5")]
2794    pub max_replication_lag_allowed: ::core::option::Option<super::vttime::Duration>,
2795    #[prost(bool, tag = "6")]
2796    pub enable_reverse_replication: bool,
2797    #[prost(int32, tag = "7")]
2798    pub direction: i32,
2799    #[prost(message, optional, tag = "8")]
2800    pub timeout: ::core::option::Option<super::vttime::Duration>,
2801    #[prost(bool, tag = "9")]
2802    pub dry_run: bool,
2803    #[prost(bool, tag = "10")]
2804    pub initialize_target_sequences: bool,
2805}
2806#[allow(clippy::derive_partial_eq_without_eq)]
2807#[derive(Clone, PartialEq, ::prost::Message)]
2808pub struct WorkflowSwitchTrafficResponse {
2809    #[prost(string, tag = "1")]
2810    pub summary: ::prost::alloc::string::String,
2811    #[prost(string, tag = "2")]
2812    pub start_state: ::prost::alloc::string::String,
2813    #[prost(string, tag = "3")]
2814    pub current_state: ::prost::alloc::string::String,
2815    #[prost(string, repeated, tag = "4")]
2816    pub dry_run_results: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2817}
2818#[allow(clippy::derive_partial_eq_without_eq)]
2819#[derive(Clone, PartialEq, ::prost::Message)]
2820pub struct WorkflowUpdateRequest {
2821    #[prost(string, tag = "1")]
2822    pub keyspace: ::prost::alloc::string::String,
2823    /// TabletRequest gets passed on to each primary tablet involved
2824    /// in the workflow via the UpdateVReplicationWorkflow tabletmanager RPC.
2825    #[prost(message, optional, tag = "2")]
2826    pub tablet_request: ::core::option::Option<
2827        super::tabletmanagerdata::UpdateVReplicationWorkflowRequest,
2828    >,
2829}
2830#[allow(clippy::derive_partial_eq_without_eq)]
2831#[derive(Clone, PartialEq, ::prost::Message)]
2832pub struct WorkflowUpdateResponse {
2833    #[prost(string, tag = "1")]
2834    pub summary: ::prost::alloc::string::String,
2835    #[prost(message, repeated, tag = "2")]
2836    pub details: ::prost::alloc::vec::Vec<workflow_update_response::TabletInfo>,
2837}
2838/// Nested message and enum types in `WorkflowUpdateResponse`.
2839pub mod workflow_update_response {
2840    #[allow(clippy::derive_partial_eq_without_eq)]
2841    #[derive(Clone, PartialEq, ::prost::Message)]
2842    pub struct TabletInfo {
2843        #[prost(message, optional, tag = "1")]
2844        pub tablet: ::core::option::Option<super::super::topodata::TabletAlias>,
2845        /// Changed is true if any of the provided values were different
2846        /// than what was already stored on this tablet.
2847        #[prost(bool, tag = "2")]
2848        pub changed: bool,
2849    }
2850}
2851/// MaterializationIntent describes the reason for creating the Materialize flow
2852#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2853#[repr(i32)]
2854pub enum MaterializationIntent {
2855    /// CUSTOM is the default value
2856    Custom = 0,
2857    /// MOVETABLES is when we are creating a MoveTables flow
2858    Movetables = 1,
2859    /// CREATELOOKUPINDEX is when we are creating a CreateLookupIndex flow
2860    Createlookupindex = 2,
2861}
2862impl MaterializationIntent {
2863    /// String value of the enum field names used in the ProtoBuf definition.
2864    ///
2865    /// The values are not transformed in any way and thus are considered stable
2866    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2867    pub fn as_str_name(&self) -> &'static str {
2868        match self {
2869            MaterializationIntent::Custom => "CUSTOM",
2870            MaterializationIntent::Movetables => "MOVETABLES",
2871            MaterializationIntent::Createlookupindex => "CREATELOOKUPINDEX",
2872        }
2873    }
2874    /// Creates an enum from field names used in the ProtoBuf definition.
2875    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2876        match value {
2877            "CUSTOM" => Some(Self::Custom),
2878            "MOVETABLES" => Some(Self::Movetables),
2879            "CREATELOOKUPINDEX" => Some(Self::Createlookupindex),
2880            _ => None,
2881        }
2882    }
2883}
2884#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2885#[repr(i32)]
2886pub enum QueryOrdering {
2887    None = 0,
2888    Ascending = 1,
2889    Descending = 2,
2890}
2891impl QueryOrdering {
2892    /// String value of the enum field names used in the ProtoBuf definition.
2893    ///
2894    /// The values are not transformed in any way and thus are considered stable
2895    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2896    pub fn as_str_name(&self) -> &'static str {
2897        match self {
2898            QueryOrdering::None => "NONE",
2899            QueryOrdering::Ascending => "ASCENDING",
2900            QueryOrdering::Descending => "DESCENDING",
2901        }
2902    }
2903    /// Creates an enum from field names used in the ProtoBuf definition.
2904    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2905        match value {
2906            "NONE" => Some(Self::None),
2907            "ASCENDING" => Some(Self::Ascending),
2908            "DESCENDING" => Some(Self::Descending),
2909            _ => None,
2910        }
2911    }
2912}