vitess_grpc/generated/
vtadmin.rs

1/// Cluster represents information about a Vitess cluster.
2#[allow(clippy::derive_partial_eq_without_eq)]
3#[derive(Clone, PartialEq, ::prost::Message)]
4pub struct Cluster {
5    #[prost(string, tag = "1")]
6    pub id: ::prost::alloc::string::String,
7    #[prost(string, tag = "2")]
8    pub name: ::prost::alloc::string::String,
9}
10#[allow(clippy::derive_partial_eq_without_eq)]
11#[derive(Clone, PartialEq, ::prost::Message)]
12pub struct ClusterBackup {
13    #[prost(message, optional, tag = "1")]
14    pub cluster: ::core::option::Option<Cluster>,
15    #[prost(message, optional, tag = "2")]
16    pub backup: ::core::option::Option<super::mysqlctl::BackupInfo>,
17}
18#[allow(clippy::derive_partial_eq_without_eq)]
19#[derive(Clone, PartialEq, ::prost::Message)]
20pub struct ClusterCellsAliases {
21    #[prost(message, optional, tag = "1")]
22    pub cluster: ::core::option::Option<Cluster>,
23    #[prost(map = "string, message", tag = "2")]
24    pub aliases: ::std::collections::HashMap<
25        ::prost::alloc::string::String,
26        super::topodata::CellsAlias,
27    >,
28}
29#[allow(clippy::derive_partial_eq_without_eq)]
30#[derive(Clone, PartialEq, ::prost::Message)]
31pub struct ClusterCellInfo {
32    #[prost(message, optional, tag = "1")]
33    pub cluster: ::core::option::Option<Cluster>,
34    #[prost(string, tag = "2")]
35    pub name: ::prost::alloc::string::String,
36    /// CellInfo contains the data for the cell.
37    ///
38    /// It may be nil if the GetCellsInfosRequest specified NamesOnly.
39    #[prost(message, optional, tag = "3")]
40    pub cell_info: ::core::option::Option<super::topodata::CellInfo>,
41}
42#[allow(clippy::derive_partial_eq_without_eq)]
43#[derive(Clone, PartialEq, ::prost::Message)]
44pub struct ClusterShardReplicationPosition {
45    #[prost(message, optional, tag = "1")]
46    pub cluster: ::core::option::Option<Cluster>,
47    #[prost(string, tag = "2")]
48    pub keyspace: ::prost::alloc::string::String,
49    #[prost(string, tag = "3")]
50    pub shard: ::prost::alloc::string::String,
51    #[prost(message, optional, tag = "4")]
52    pub position_info: ::core::option::Option<
53        super::vtctldata::ShardReplicationPositionsResponse,
54    >,
55}
56#[allow(clippy::derive_partial_eq_without_eq)]
57#[derive(Clone, PartialEq, ::prost::Message)]
58pub struct ClusterWorkflows {
59    #[prost(message, repeated, tag = "1")]
60    pub workflows: ::prost::alloc::vec::Vec<Workflow>,
61    /// Warnings is a list of non-fatal errors encountered when fetching
62    /// workflows for a particular cluster.
63    #[prost(string, repeated, tag = "2")]
64    pub warnings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
65}
66/// Keyspace represents information about a keyspace in a particular Vitess
67/// cluster.
68#[allow(clippy::derive_partial_eq_without_eq)]
69#[derive(Clone, PartialEq, ::prost::Message)]
70pub struct Keyspace {
71    #[prost(message, optional, tag = "1")]
72    pub cluster: ::core::option::Option<Cluster>,
73    #[prost(message, optional, tag = "2")]
74    pub keyspace: ::core::option::Option<super::vtctldata::Keyspace>,
75    #[prost(map = "string, message", tag = "3")]
76    pub shards: ::std::collections::HashMap<
77        ::prost::alloc::string::String,
78        super::vtctldata::Shard,
79    >,
80}
81#[allow(clippy::derive_partial_eq_without_eq)]
82#[derive(Clone, PartialEq, ::prost::Message)]
83pub struct Schema {
84    #[prost(message, optional, tag = "1")]
85    pub cluster: ::core::option::Option<Cluster>,
86    #[prost(string, tag = "2")]
87    pub keyspace: ::prost::alloc::string::String,
88    #[prost(message, repeated, tag = "3")]
89    pub table_definitions: ::prost::alloc::vec::Vec<
90        super::tabletmanagerdata::TableDefinition,
91    >,
92    /// TableSizes is a mapping of table name to TableSize information.
93    #[prost(map = "string, message", tag = "4")]
94    pub table_sizes: ::std::collections::HashMap<
95        ::prost::alloc::string::String,
96        schema::TableSize,
97    >,
98}
99/// Nested message and enum types in `Schema`.
100pub mod schema {
101    #[allow(clippy::derive_partial_eq_without_eq)]
102    #[derive(Clone, PartialEq, ::prost::Message)]
103    pub struct ShardTableSize {
104        #[prost(uint64, tag = "1")]
105        pub row_count: u64,
106        #[prost(uint64, tag = "2")]
107        pub data_length: u64,
108    }
109    /// TableSize aggregates table size information across all shards containing
110    /// in the given keyspace and cluster, as well as per-shard size information.
111    #[allow(clippy::derive_partial_eq_without_eq)]
112    #[derive(Clone, PartialEq, ::prost::Message)]
113    pub struct TableSize {
114        #[prost(uint64, tag = "1")]
115        pub row_count: u64,
116        #[prost(uint64, tag = "2")]
117        pub data_length: u64,
118        #[prost(map = "string, message", tag = "3")]
119        pub by_shard: ::std::collections::HashMap<
120            ::prost::alloc::string::String,
121            ShardTableSize,
122        >,
123    }
124}
125/// Shard groups the vtctldata information about a shard record together with
126/// the Vitess cluster it belongs to.
127#[allow(clippy::derive_partial_eq_without_eq)]
128#[derive(Clone, PartialEq, ::prost::Message)]
129pub struct Shard {
130    #[prost(message, optional, tag = "1")]
131    pub cluster: ::core::option::Option<Cluster>,
132    #[prost(message, optional, tag = "2")]
133    pub shard: ::core::option::Option<super::vtctldata::Shard>,
134}
135#[allow(clippy::derive_partial_eq_without_eq)]
136#[derive(Clone, PartialEq, ::prost::Message)]
137pub struct SrvVSchema {
138    #[prost(string, tag = "1")]
139    pub cell: ::prost::alloc::string::String,
140    #[prost(message, optional, tag = "2")]
141    pub cluster: ::core::option::Option<Cluster>,
142    #[prost(message, optional, tag = "3")]
143    pub srv_v_schema: ::core::option::Option<super::vschema::SrvVSchema>,
144}
145/// Tablet groups the topo information of a tablet together with the Vitess
146/// cluster it belongs to.
147#[allow(clippy::derive_partial_eq_without_eq)]
148#[derive(Clone, PartialEq, ::prost::Message)]
149pub struct Tablet {
150    #[prost(message, optional, tag = "1")]
151    pub cluster: ::core::option::Option<Cluster>,
152    #[prost(message, optional, tag = "2")]
153    pub tablet: ::core::option::Option<super::topodata::Tablet>,
154    #[prost(enumeration = "tablet::ServingState", tag = "3")]
155    pub state: i32,
156    #[prost(string, tag = "4")]
157    pub fqdn: ::prost::alloc::string::String,
158}
159/// Nested message and enum types in `Tablet`.
160pub mod tablet {
161    #[derive(
162        Clone,
163        Copy,
164        Debug,
165        PartialEq,
166        Eq,
167        Hash,
168        PartialOrd,
169        Ord,
170        ::prost::Enumeration
171    )]
172    #[repr(i32)]
173    pub enum ServingState {
174        Unknown = 0,
175        Serving = 1,
176        NotServing = 2,
177    }
178    impl ServingState {
179        /// String value of the enum field names used in the ProtoBuf definition.
180        ///
181        /// The values are not transformed in any way and thus are considered stable
182        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
183        pub fn as_str_name(&self) -> &'static str {
184            match self {
185                ServingState::Unknown => "UNKNOWN",
186                ServingState::Serving => "SERVING",
187                ServingState::NotServing => "NOT_SERVING",
188            }
189        }
190        /// Creates an enum from field names used in the ProtoBuf definition.
191        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
192            match value {
193                "UNKNOWN" => Some(Self::Unknown),
194                "SERVING" => Some(Self::Serving),
195                "NOT_SERVING" => Some(Self::NotServing),
196                _ => None,
197            }
198        }
199    }
200}
201/// VSchema represents the vschema for a keyspace in the cluster it belongs to.
202#[allow(clippy::derive_partial_eq_without_eq)]
203#[derive(Clone, PartialEq, ::prost::Message)]
204pub struct VSchema {
205    #[prost(message, optional, tag = "1")]
206    pub cluster: ::core::option::Option<Cluster>,
207    /// Name is the name of the keyspace this VSchema is for.
208    #[prost(string, tag = "2")]
209    pub name: ::prost::alloc::string::String,
210    #[prost(message, optional, tag = "3")]
211    pub v_schema: ::core::option::Option<super::vschema::Keyspace>,
212}
213/// Vtctld represents information about a single Vtctld host.
214#[allow(clippy::derive_partial_eq_without_eq)]
215#[derive(Clone, PartialEq, ::prost::Message)]
216pub struct Vtctld {
217    #[prost(string, tag = "1")]
218    pub hostname: ::prost::alloc::string::String,
219    #[prost(message, optional, tag = "2")]
220    pub cluster: ::core::option::Option<Cluster>,
221    #[prost(string, tag = "3")]
222    pub fqdn: ::prost::alloc::string::String,
223}
224/// VTGate represents information about a single VTGate host.
225#[allow(clippy::derive_partial_eq_without_eq)]
226#[derive(Clone, PartialEq, ::prost::Message)]
227pub struct VtGate {
228    /// Hostname is the shortname of the VTGate.
229    #[prost(string, tag = "1")]
230    pub hostname: ::prost::alloc::string::String,
231    /// Pool is group the VTGate serves queries for. Some deployments segment
232    /// VTGates into groups or pools, based on the workloads they serve queries
233    /// for. Use of this field is optional.
234    #[prost(string, tag = "2")]
235    pub pool: ::prost::alloc::string::String,
236    /// Cell is the topology cell the VTGate is in.
237    #[prost(string, tag = "3")]
238    pub cell: ::prost::alloc::string::String,
239    /// Cluster is the cluster the VTGate serves.
240    #[prost(message, optional, tag = "4")]
241    pub cluster: ::core::option::Option<Cluster>,
242    /// Keyspaces is the list of keyspaces-to-watch for the VTGate.
243    #[prost(string, repeated, tag = "5")]
244    pub keyspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
245    #[prost(string, tag = "6")]
246    pub fqdn: ::prost::alloc::string::String,
247}
248#[allow(clippy::derive_partial_eq_without_eq)]
249#[derive(Clone, PartialEq, ::prost::Message)]
250pub struct Workflow {
251    #[prost(message, optional, tag = "1")]
252    pub cluster: ::core::option::Option<Cluster>,
253    #[prost(string, tag = "2")]
254    pub keyspace: ::prost::alloc::string::String,
255    #[prost(message, optional, tag = "3")]
256    pub workflow: ::core::option::Option<super::vtctldata::Workflow>,
257}
258#[allow(clippy::derive_partial_eq_without_eq)]
259#[derive(Clone, PartialEq, ::prost::Message)]
260pub struct CreateKeyspaceRequest {
261    #[prost(string, tag = "1")]
262    pub cluster_id: ::prost::alloc::string::String,
263    #[prost(message, optional, tag = "2")]
264    pub options: ::core::option::Option<super::vtctldata::CreateKeyspaceRequest>,
265}
266#[allow(clippy::derive_partial_eq_without_eq)]
267#[derive(Clone, PartialEq, ::prost::Message)]
268pub struct CreateKeyspaceResponse {
269    #[prost(message, optional, tag = "1")]
270    pub keyspace: ::core::option::Option<Keyspace>,
271}
272#[allow(clippy::derive_partial_eq_without_eq)]
273#[derive(Clone, PartialEq, ::prost::Message)]
274pub struct CreateShardRequest {
275    #[prost(string, tag = "1")]
276    pub cluster_id: ::prost::alloc::string::String,
277    #[prost(message, optional, tag = "2")]
278    pub options: ::core::option::Option<super::vtctldata::CreateShardRequest>,
279}
280#[allow(clippy::derive_partial_eq_without_eq)]
281#[derive(Clone, PartialEq, ::prost::Message)]
282pub struct DeleteKeyspaceRequest {
283    #[prost(string, tag = "1")]
284    pub cluster_id: ::prost::alloc::string::String,
285    #[prost(message, optional, tag = "2")]
286    pub options: ::core::option::Option<super::vtctldata::DeleteKeyspaceRequest>,
287}
288#[allow(clippy::derive_partial_eq_without_eq)]
289#[derive(Clone, PartialEq, ::prost::Message)]
290pub struct DeleteShardsRequest {
291    #[prost(string, tag = "1")]
292    pub cluster_id: ::prost::alloc::string::String,
293    #[prost(message, optional, tag = "2")]
294    pub options: ::core::option::Option<super::vtctldata::DeleteShardsRequest>,
295}
296#[allow(clippy::derive_partial_eq_without_eq)]
297#[derive(Clone, PartialEq, ::prost::Message)]
298pub struct DeleteTabletRequest {
299    #[prost(message, optional, tag = "1")]
300    pub alias: ::core::option::Option<super::topodata::TabletAlias>,
301    #[prost(string, repeated, tag = "2")]
302    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
303    #[prost(bool, tag = "3")]
304    pub allow_primary: bool,
305}
306#[allow(clippy::derive_partial_eq_without_eq)]
307#[derive(Clone, PartialEq, ::prost::Message)]
308pub struct DeleteTabletResponse {
309    #[prost(string, tag = "1")]
310    pub status: ::prost::alloc::string::String,
311    #[prost(message, optional, tag = "2")]
312    pub cluster: ::core::option::Option<Cluster>,
313}
314#[allow(clippy::derive_partial_eq_without_eq)]
315#[derive(Clone, PartialEq, ::prost::Message)]
316pub struct EmergencyFailoverShardRequest {
317    #[prost(string, tag = "1")]
318    pub cluster_id: ::prost::alloc::string::String,
319    #[prost(message, optional, tag = "2")]
320    pub options: ::core::option::Option<super::vtctldata::EmergencyReparentShardRequest>,
321}
322#[allow(clippy::derive_partial_eq_without_eq)]
323#[derive(Clone, PartialEq, ::prost::Message)]
324pub struct EmergencyFailoverShardResponse {
325    #[prost(message, optional, tag = "1")]
326    pub cluster: ::core::option::Option<Cluster>,
327    #[prost(string, tag = "2")]
328    pub keyspace: ::prost::alloc::string::String,
329    #[prost(string, tag = "3")]
330    pub shard: ::prost::alloc::string::String,
331    /// PromotedPrimary is the tablet alias that was promoted to shard primary.
332    /// If NewPrimary was set in the request options, then this will be the
333    /// same tablet alias. Otherwise, it will be the alias of the tablet found
334    /// to be most up-to-date in the shard.
335    #[prost(message, optional, tag = "4")]
336    pub promoted_primary: ::core::option::Option<super::topodata::TabletAlias>,
337    #[prost(message, repeated, tag = "5")]
338    pub events: ::prost::alloc::vec::Vec<super::logutil::Event>,
339}
340#[allow(clippy::derive_partial_eq_without_eq)]
341#[derive(Clone, PartialEq, ::prost::Message)]
342pub struct FindSchemaRequest {
343    #[prost(string, tag = "1")]
344    pub table: ::prost::alloc::string::String,
345    #[prost(string, repeated, tag = "2")]
346    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
347    #[prost(message, optional, tag = "3")]
348    pub table_size_options: ::core::option::Option<GetSchemaTableSizeOptions>,
349}
350#[allow(clippy::derive_partial_eq_without_eq)]
351#[derive(Clone, PartialEq, ::prost::Message)]
352pub struct GetBackupsRequest {
353    #[prost(string, repeated, tag = "1")]
354    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
355    /// Keyspaces, if set, limits backups to just the specified keyspaces.
356    /// Applies to all clusters in the request.
357    #[prost(string, repeated, tag = "2")]
358    pub keyspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
359    /// KeyspaceShards, if set, limits backups to just the specified
360    /// keyspace/shards. Applies to all clusters in the request.
361    ///
362    /// This field takes precedence over Keyspaces. If KeyspaceShards is set,
363    /// Keyspaces is ignored.
364    #[prost(string, repeated, tag = "3")]
365    pub keyspace_shards: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
366    /// RequestOptions controls the per-shard request options when making
367    /// GetBackups requests to vtctlds. Note that the Keyspace and Shard fields
368    /// of this field are ignored; it is used only to specify Limit and Detailed
369    /// fields.
370    #[prost(message, optional, tag = "4")]
371    pub request_options: ::core::option::Option<super::vtctldata::GetBackupsRequest>,
372}
373#[allow(clippy::derive_partial_eq_without_eq)]
374#[derive(Clone, PartialEq, ::prost::Message)]
375pub struct GetBackupsResponse {
376    #[prost(message, repeated, tag = "1")]
377    pub backups: ::prost::alloc::vec::Vec<ClusterBackup>,
378}
379#[allow(clippy::derive_partial_eq_without_eq)]
380#[derive(Clone, PartialEq, ::prost::Message)]
381pub struct GetCellInfosRequest {
382    #[prost(string, repeated, tag = "1")]
383    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
384    /// Cells, if specified, limits the response to include only CellInfo objects
385    /// with those names. If omitted, all CellInfo objects in each cluster are
386    /// returned.
387    ///
388    /// Mutually-exclusive with NamesOnly. If both are set, this field takes
389    /// precedence.
390    #[prost(string, repeated, tag = "2")]
391    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
392    /// Return only the cell names in each cluster; the actual CellInfo objects
393    /// will be empty.
394    #[prost(bool, tag = "3")]
395    pub names_only: bool,
396}
397#[allow(clippy::derive_partial_eq_without_eq)]
398#[derive(Clone, PartialEq, ::prost::Message)]
399pub struct GetCellInfosResponse {
400    #[prost(message, repeated, tag = "1")]
401    pub cell_infos: ::prost::alloc::vec::Vec<ClusterCellInfo>,
402}
403#[allow(clippy::derive_partial_eq_without_eq)]
404#[derive(Clone, PartialEq, ::prost::Message)]
405pub struct GetCellsAliasesRequest {
406    #[prost(string, repeated, tag = "1")]
407    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
408}
409#[allow(clippy::derive_partial_eq_without_eq)]
410#[derive(Clone, PartialEq, ::prost::Message)]
411pub struct GetCellsAliasesResponse {
412    #[prost(message, repeated, tag = "1")]
413    pub aliases: ::prost::alloc::vec::Vec<ClusterCellsAliases>,
414}
415#[allow(clippy::derive_partial_eq_without_eq)]
416#[derive(Clone, PartialEq, ::prost::Message)]
417pub struct GetClustersRequest {}
418#[allow(clippy::derive_partial_eq_without_eq)]
419#[derive(Clone, PartialEq, ::prost::Message)]
420pub struct GetClustersResponse {
421    #[prost(message, repeated, tag = "1")]
422    pub clusters: ::prost::alloc::vec::Vec<Cluster>,
423}
424#[allow(clippy::derive_partial_eq_without_eq)]
425#[derive(Clone, PartialEq, ::prost::Message)]
426pub struct GetFullStatusRequest {
427    #[prost(string, tag = "1")]
428    pub cluster_id: ::prost::alloc::string::String,
429    #[prost(message, optional, tag = "2")]
430    pub alias: ::core::option::Option<super::topodata::TabletAlias>,
431}
432#[allow(clippy::derive_partial_eq_without_eq)]
433#[derive(Clone, PartialEq, ::prost::Message)]
434pub struct GetGatesRequest {
435    #[prost(string, repeated, tag = "1")]
436    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
437}
438#[allow(clippy::derive_partial_eq_without_eq)]
439#[derive(Clone, PartialEq, ::prost::Message)]
440pub struct GetGatesResponse {
441    #[prost(message, repeated, tag = "1")]
442    pub gates: ::prost::alloc::vec::Vec<VtGate>,
443}
444#[allow(clippy::derive_partial_eq_without_eq)]
445#[derive(Clone, PartialEq, ::prost::Message)]
446pub struct GetKeyspaceRequest {
447    #[prost(string, tag = "1")]
448    pub cluster_id: ::prost::alloc::string::String,
449    #[prost(string, tag = "2")]
450    pub keyspace: ::prost::alloc::string::String,
451}
452#[allow(clippy::derive_partial_eq_without_eq)]
453#[derive(Clone, PartialEq, ::prost::Message)]
454pub struct GetKeyspacesRequest {
455    #[prost(string, repeated, tag = "1")]
456    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
457}
458#[allow(clippy::derive_partial_eq_without_eq)]
459#[derive(Clone, PartialEq, ::prost::Message)]
460pub struct GetKeyspacesResponse {
461    #[prost(message, repeated, tag = "1")]
462    pub keyspaces: ::prost::alloc::vec::Vec<Keyspace>,
463}
464#[allow(clippy::derive_partial_eq_without_eq)]
465#[derive(Clone, PartialEq, ::prost::Message)]
466pub struct GetSchemaRequest {
467    #[prost(string, tag = "1")]
468    pub cluster_id: ::prost::alloc::string::String,
469    #[prost(string, tag = "2")]
470    pub keyspace: ::prost::alloc::string::String,
471    #[prost(string, tag = "3")]
472    pub table: ::prost::alloc::string::String,
473    #[prost(message, optional, tag = "4")]
474    pub table_size_options: ::core::option::Option<GetSchemaTableSizeOptions>,
475}
476#[allow(clippy::derive_partial_eq_without_eq)]
477#[derive(Clone, PartialEq, ::prost::Message)]
478pub struct GetSchemasRequest {
479    #[prost(string, repeated, tag = "1")]
480    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
481    #[prost(message, optional, tag = "2")]
482    pub table_size_options: ::core::option::Option<GetSchemaTableSizeOptions>,
483}
484#[allow(clippy::derive_partial_eq_without_eq)]
485#[derive(Clone, PartialEq, ::prost::Message)]
486pub struct GetSchemasResponse {
487    #[prost(message, repeated, tag = "1")]
488    pub schemas: ::prost::alloc::vec::Vec<Schema>,
489}
490#[allow(clippy::derive_partial_eq_without_eq)]
491#[derive(Clone, PartialEq, ::prost::Message)]
492pub struct GetShardReplicationPositionsRequest {
493    #[prost(string, repeated, tag = "1")]
494    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
495    /// Keyspaces, if set, limits replication positions to just the specified
496    /// keyspaces. Applies to all clusters in the request.
497    #[prost(string, repeated, tag = "2")]
498    pub keyspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
499    /// KeyspaceShards, if set, limits replicatin positions to just the specified
500    /// keyspace/shards. Applies to all clusters in the request.
501    ///
502    /// This field takes precedence over Keyspaces. If KeyspaceShards is set,
503    /// Keyspaces is ignored.
504    #[prost(string, repeated, tag = "3")]
505    pub keyspace_shards: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
506}
507#[allow(clippy::derive_partial_eq_without_eq)]
508#[derive(Clone, PartialEq, ::prost::Message)]
509pub struct GetShardReplicationPositionsResponse {
510    #[prost(message, repeated, tag = "1")]
511    pub replication_positions: ::prost::alloc::vec::Vec<ClusterShardReplicationPosition>,
512}
513#[allow(clippy::derive_partial_eq_without_eq)]
514#[derive(Clone, PartialEq, ::prost::Message)]
515pub struct GetSrvKeyspaceRequest {
516    #[prost(string, tag = "1")]
517    pub cluster_id: ::prost::alloc::string::String,
518    #[prost(string, tag = "2")]
519    pub keyspace: ::prost::alloc::string::String,
520    /// Cells is a list of cells to lookup a SrvKeyspace for. Leaving this empty is
521    /// equivalent to specifying all cells in the topo.
522    #[prost(string, repeated, tag = "3")]
523    pub 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 GetSrvKeyspacesRequest {
528    /// An optional list of cluster IDs to filter specific clusters
529    #[prost(string, repeated, tag = "1")]
530    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
531    /// Cells is a list of cells to lookup a SrvKeyspace for. Leaving this empty is
532    /// equivalent to specifying all cells in the topo.
533    #[prost(string, repeated, tag = "2")]
534    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
535}
536#[allow(clippy::derive_partial_eq_without_eq)]
537#[derive(Clone, PartialEq, ::prost::Message)]
538pub struct GetSrvKeyspacesResponse {
539    /// GetSrvKeyspaces responses for each keyspace
540    #[prost(map = "string, message", tag = "1")]
541    pub srv_keyspaces: ::std::collections::HashMap<
542        ::prost::alloc::string::String,
543        super::vtctldata::GetSrvKeyspacesResponse,
544    >,
545}
546#[allow(clippy::derive_partial_eq_without_eq)]
547#[derive(Clone, PartialEq, ::prost::Message)]
548pub struct GetSrvVSchemaRequest {
549    #[prost(string, tag = "1")]
550    pub cluster_id: ::prost::alloc::string::String,
551    #[prost(string, tag = "2")]
552    pub cell: ::prost::alloc::string::String,
553}
554#[allow(clippy::derive_partial_eq_without_eq)]
555#[derive(Clone, PartialEq, ::prost::Message)]
556pub struct GetSrvVSchemasRequest {
557    #[prost(string, repeated, tag = "1")]
558    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
559    #[prost(string, repeated, tag = "2")]
560    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
561}
562#[allow(clippy::derive_partial_eq_without_eq)]
563#[derive(Clone, PartialEq, ::prost::Message)]
564pub struct GetSrvVSchemasResponse {
565    #[prost(message, repeated, tag = "1")]
566    pub srv_v_schemas: ::prost::alloc::vec::Vec<SrvVSchema>,
567}
568#[allow(clippy::derive_partial_eq_without_eq)]
569#[derive(Clone, PartialEq, ::prost::Message)]
570pub struct GetSchemaTableSizeOptions {
571    #[prost(bool, tag = "1")]
572    pub aggregate_sizes: bool,
573    #[prost(bool, tag = "2")]
574    pub include_non_serving_shards: bool,
575}
576#[allow(clippy::derive_partial_eq_without_eq)]
577#[derive(Clone, PartialEq, ::prost::Message)]
578pub struct GetTabletRequest {
579    /// Unique (per cluster) tablet alias.
580    #[prost(message, optional, tag = "1")]
581    pub alias: ::core::option::Option<super::topodata::TabletAlias>,
582    /// ClusterIDs is an optional parameter to narrow the scope of the search, if
583    /// the caller knows which cluster the tablet may be in, or, to disambiguate
584    /// if multiple clusters have a tablet with the same hostname.
585    #[prost(string, repeated, tag = "2")]
586    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
587}
588#[allow(clippy::derive_partial_eq_without_eq)]
589#[derive(Clone, PartialEq, ::prost::Message)]
590pub struct GetTabletsRequest {
591    #[prost(string, repeated, tag = "1")]
592    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
593}
594#[allow(clippy::derive_partial_eq_without_eq)]
595#[derive(Clone, PartialEq, ::prost::Message)]
596pub struct GetTabletsResponse {
597    #[prost(message, repeated, tag = "1")]
598    pub tablets: ::prost::alloc::vec::Vec<Tablet>,
599}
600#[allow(clippy::derive_partial_eq_without_eq)]
601#[derive(Clone, PartialEq, ::prost::Message)]
602pub struct GetTopologyPathRequest {
603    #[prost(string, tag = "1")]
604    pub cluster_id: ::prost::alloc::string::String,
605    #[prost(string, tag = "2")]
606    pub path: ::prost::alloc::string::String,
607}
608#[allow(clippy::derive_partial_eq_without_eq)]
609#[derive(Clone, PartialEq, ::prost::Message)]
610pub struct GetVSchemaRequest {
611    #[prost(string, tag = "1")]
612    pub cluster_id: ::prost::alloc::string::String,
613    #[prost(string, tag = "2")]
614    pub keyspace: ::prost::alloc::string::String,
615}
616#[allow(clippy::derive_partial_eq_without_eq)]
617#[derive(Clone, PartialEq, ::prost::Message)]
618pub struct GetVSchemasRequest {
619    #[prost(string, repeated, tag = "1")]
620    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
621}
622#[allow(clippy::derive_partial_eq_without_eq)]
623#[derive(Clone, PartialEq, ::prost::Message)]
624pub struct GetVSchemasResponse {
625    #[prost(message, repeated, tag = "1")]
626    pub v_schemas: ::prost::alloc::vec::Vec<VSchema>,
627}
628#[allow(clippy::derive_partial_eq_without_eq)]
629#[derive(Clone, PartialEq, ::prost::Message)]
630pub struct GetVtctldsRequest {
631    #[prost(string, repeated, tag = "1")]
632    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
633}
634#[allow(clippy::derive_partial_eq_without_eq)]
635#[derive(Clone, PartialEq, ::prost::Message)]
636pub struct GetVtctldsResponse {
637    #[prost(message, repeated, tag = "1")]
638    pub vtctlds: ::prost::alloc::vec::Vec<Vtctld>,
639}
640#[allow(clippy::derive_partial_eq_without_eq)]
641#[derive(Clone, PartialEq, ::prost::Message)]
642pub struct GetWorkflowRequest {
643    #[prost(string, tag = "1")]
644    pub cluster_id: ::prost::alloc::string::String,
645    #[prost(string, tag = "2")]
646    pub keyspace: ::prost::alloc::string::String,
647    #[prost(string, tag = "3")]
648    pub name: ::prost::alloc::string::String,
649    #[prost(bool, tag = "4")]
650    pub active_only: bool,
651}
652#[allow(clippy::derive_partial_eq_without_eq)]
653#[derive(Clone, PartialEq, ::prost::Message)]
654pub struct GetWorkflowsRequest {
655    #[prost(string, repeated, tag = "1")]
656    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
657    /// ActiveOnly specifies whether to return workflows that are currently
658    /// active (running or paused) instead of all workflows.
659    #[prost(bool, tag = "2")]
660    pub active_only: bool,
661    /// Keyspaces is a list of keyspaces to restrict the workflow search to. Note
662    /// that the keyspaces list applies across all cluster IDs in the request.
663    ///
664    /// If, for example, you have two clusters, each with a keyspace called "foo"
665    /// and want the workflows from "foo" in cluster1 but not from cluster2, you
666    /// must make two requests.
667    ///
668    /// Keyspaces and IgnoreKeyspaces are mutually-exclusive, and Keyspaces takes
669    /// precedence; if Keyspaces is a non-empty list, then IgnoreKeyspaces is
670    /// ignored completely.
671    #[prost(string, repeated, tag = "3")]
672    pub keyspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
673    /// IgnoreKeyspaces is a list of keyspaces to skip during the workflow
674    /// search. It has the same semantics as the Keyspaces parameter, so refer to
675    /// that documentation for more details.
676    #[prost(string, repeated, tag = "4")]
677    pub ignore_keyspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
678}
679#[allow(clippy::derive_partial_eq_without_eq)]
680#[derive(Clone, PartialEq, ::prost::Message)]
681pub struct GetWorkflowsResponse {
682    #[prost(map = "string, message", tag = "1")]
683    pub workflows_by_cluster: ::std::collections::HashMap<
684        ::prost::alloc::string::String,
685        ClusterWorkflows,
686    >,
687}
688#[allow(clippy::derive_partial_eq_without_eq)]
689#[derive(Clone, PartialEq, ::prost::Message)]
690pub struct PingTabletRequest {
691    /// Unique (per cluster) tablet alias of the standard form: "$cell-$uid"
692    #[prost(message, optional, tag = "1")]
693    pub alias: ::core::option::Option<super::topodata::TabletAlias>,
694    /// ClusterIDs is an optional parameter to narrow the scope of the search, if
695    /// the caller knows which cluster the tablet may be in, or, to disambiguate
696    /// if multiple clusters have a tablet with the same hostname.
697    #[prost(string, repeated, tag = "2")]
698    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
699}
700#[allow(clippy::derive_partial_eq_without_eq)]
701#[derive(Clone, PartialEq, ::prost::Message)]
702pub struct PingTabletResponse {
703    #[prost(string, tag = "1")]
704    pub status: ::prost::alloc::string::String,
705    #[prost(message, optional, tag = "2")]
706    pub cluster: ::core::option::Option<Cluster>,
707}
708#[allow(clippy::derive_partial_eq_without_eq)]
709#[derive(Clone, PartialEq, ::prost::Message)]
710pub struct PlannedFailoverShardRequest {
711    #[prost(string, tag = "1")]
712    pub cluster_id: ::prost::alloc::string::String,
713    #[prost(message, optional, tag = "2")]
714    pub options: ::core::option::Option<super::vtctldata::PlannedReparentShardRequest>,
715}
716#[allow(clippy::derive_partial_eq_without_eq)]
717#[derive(Clone, PartialEq, ::prost::Message)]
718pub struct PlannedFailoverShardResponse {
719    #[prost(message, optional, tag = "1")]
720    pub cluster: ::core::option::Option<Cluster>,
721    #[prost(string, tag = "2")]
722    pub keyspace: ::prost::alloc::string::String,
723    #[prost(string, tag = "3")]
724    pub shard: ::prost::alloc::string::String,
725    /// PromotedPrimary is the tablet alias that was promoted to shard primary.
726    /// If NewPrimary was set in the request options, then this will be the
727    /// same tablet alias. Otherwise, it will be the alias of the tablet found
728    /// to be most up-to-date in the shard.
729    #[prost(message, optional, tag = "4")]
730    pub promoted_primary: ::core::option::Option<super::topodata::TabletAlias>,
731    #[prost(message, repeated, tag = "5")]
732    pub events: ::prost::alloc::vec::Vec<super::logutil::Event>,
733}
734#[allow(clippy::derive_partial_eq_without_eq)]
735#[derive(Clone, PartialEq, ::prost::Message)]
736pub struct RebuildKeyspaceGraphRequest {
737    #[prost(string, tag = "1")]
738    pub cluster_id: ::prost::alloc::string::String,
739    #[prost(string, tag = "2")]
740    pub keyspace: ::prost::alloc::string::String,
741    #[prost(string, repeated, tag = "3")]
742    pub cells: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
743    #[prost(bool, tag = "4")]
744    pub allow_partial: bool,
745}
746#[allow(clippy::derive_partial_eq_without_eq)]
747#[derive(Clone, PartialEq, ::prost::Message)]
748pub struct RebuildKeyspaceGraphResponse {
749    #[prost(string, tag = "1")]
750    pub status: ::prost::alloc::string::String,
751}
752#[allow(clippy::derive_partial_eq_without_eq)]
753#[derive(Clone, PartialEq, ::prost::Message)]
754pub struct RefreshStateRequest {
755    #[prost(message, optional, tag = "1")]
756    pub alias: ::core::option::Option<super::topodata::TabletAlias>,
757    #[prost(string, repeated, tag = "2")]
758    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
759}
760#[allow(clippy::derive_partial_eq_without_eq)]
761#[derive(Clone, PartialEq, ::prost::Message)]
762pub struct RefreshStateResponse {
763    #[prost(string, tag = "1")]
764    pub status: ::prost::alloc::string::String,
765    #[prost(message, optional, tag = "2")]
766    pub cluster: ::core::option::Option<Cluster>,
767}
768#[allow(clippy::derive_partial_eq_without_eq)]
769#[derive(Clone, PartialEq, ::prost::Message)]
770pub struct ReloadSchemasRequest {
771    /// Keyspaces, if set, will reload schemas across one or more keyspaces. A
772    /// keyspace not existing in a cluster will not fail the overall request.
773    ///
774    /// Superceded by KeyspaceShards and Tablets, in that order.
775    #[prost(string, repeated, tag = "1")]
776    pub keyspaces: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
777    /// KeyspaceShards, if set, will reload schemas across one or more shards.
778    /// Each element must be a valid keyspace/shard according to
779    /// topoproto.ParseKeyspaceShard. A shard not existing in a cluster will not
780    /// fail the overall request.
781    ///
782    /// Supercedes Keyspaces, and is superceded by Tablets.
783    #[prost(string, repeated, tag = "2")]
784    pub keyspace_shards: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
785    /// Tablets, if set will reload schemas across one or more tablets.
786    /// Supercedes both Keyspaces and KeyspaceShards.
787    #[prost(message, repeated, tag = "3")]
788    pub tablets: ::prost::alloc::vec::Vec<super::topodata::TabletAlias>,
789    /// ClusterIds optionally restricts the reload operation to clusters with
790    /// the specified IDs. An empty list of ClusterIds will operate on all
791    /// clusters.
792    #[prost(string, repeated, tag = "4")]
793    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
794    /// Concurrency controls the number of tablets to reload at any given time.
795    /// Its semantics depend on whether the request is for keyspace, shard, or
796    /// tablet mode.
797    ///
798    /// In Keyspaces mode, Concurrency is the number of tablets to reload at once
799    /// *per keyspace*.
800    ///
801    /// In KeyspaceShards mode, Concurrency is the number of tablets to reload at
802    /// once *per shard*.
803    ///
804    /// In Tablets mode, Concurrency is the number of tablets to reload at once
805    /// *per cluster*.
806    #[prost(uint32, tag = "5")]
807    pub concurrency: u32,
808    /// WaitPosition is the replication position that replicating tablets should
809    /// reach prior to reloading their schemas.
810    ///
811    /// Does not apply in Tablets mode.
812    #[prost(string, tag = "6")]
813    pub wait_position: ::prost::alloc::string::String,
814    /// IncludePrimary, if set, will reload the schemas on PRIMARY tablets as
815    /// well as REPLICA and RDONLY.
816    ///
817    /// Does not apply in Tablets mode.
818    #[prost(bool, tag = "7")]
819    pub include_primary: bool,
820}
821#[allow(clippy::derive_partial_eq_without_eq)]
822#[derive(Clone, PartialEq, ::prost::Message)]
823pub struct ReloadSchemasResponse {
824    /// KeyspaceResults is the list of KeyspaceResult objects for a ReloadSchemas
825    /// operation. It is only set when the request mandates Keyspaces mode (see
826    /// ReloadSchemasRequest).
827    #[prost(message, repeated, tag = "1")]
828    pub keyspace_results: ::prost::alloc::vec::Vec<
829        reload_schemas_response::KeyspaceResult,
830    >,
831    /// ShardResults is the list of ShardResult objects for a ReloadSchemas
832    /// operation. It is only set when the request mandates KeyspaceShards mode
833    /// (see ReloadSchemasRequest).
834    #[prost(message, repeated, tag = "2")]
835    pub shard_results: ::prost::alloc::vec::Vec<reload_schemas_response::ShardResult>,
836    /// TabletResults is the list of TabletResult objects for a ReloadSchemas
837    /// operation. It is only set when the request mandates Tablets mode (see
838    /// ReloadSchemasRequest).
839    #[prost(message, repeated, tag = "3")]
840    pub tablet_results: ::prost::alloc::vec::Vec<reload_schemas_response::TabletResult>,
841}
842/// Nested message and enum types in `ReloadSchemasResponse`.
843pub mod reload_schemas_response {
844    /// KeyspaceResult is a grouping of a Keyspace and any log events that
845    /// occurred in that keyspace during a schema reload (usually associated with
846    /// partial errors - ReloadSchemas requests are best-effort).
847    ///
848    /// It is only set when a ReloadSchemas request mandates Keyspaces mode
849    /// (see ReloadSchemasRequest).
850    #[allow(clippy::derive_partial_eq_without_eq)]
851    #[derive(Clone, PartialEq, ::prost::Message)]
852    pub struct KeyspaceResult {
853        #[prost(message, optional, tag = "1")]
854        pub keyspace: ::core::option::Option<super::Keyspace>,
855        #[prost(message, repeated, tag = "2")]
856        pub events: ::prost::alloc::vec::Vec<super::super::logutil::Event>,
857    }
858    /// ShardResult is a grouping of a Shard and any log events that occurred in
859    /// that shard during a schema reload (usually associated with partial
860    /// errors - ReloadSchemas requests are best-effort).
861    ///
862    /// It is only set when a ReloadSchemas request mandates KeyspaceShards mode
863    /// (see ReloadSchemasRequest).
864    #[allow(clippy::derive_partial_eq_without_eq)]
865    #[derive(Clone, PartialEq, ::prost::Message)]
866    pub struct ShardResult {
867        #[prost(message, optional, tag = "1")]
868        pub shard: ::core::option::Option<super::Shard>,
869        #[prost(message, repeated, tag = "2")]
870        pub events: ::prost::alloc::vec::Vec<super::super::logutil::Event>,
871    }
872    /// TabletResult is a grouping of a Tablet and the result of reloading that
873    /// Tablet's schema. Result will either be the string "ok", or the error
874    /// message from that tablet. Note ReloadSchemas is best-effort, so tablet's
875    /// failing to reload is not treated as an overall failure.
876    ///
877    /// It is only set when a ReloadSchemas request mandates Tablets mode (see
878    /// ReloadSchemasRequest).
879    #[allow(clippy::derive_partial_eq_without_eq)]
880    #[derive(Clone, PartialEq, ::prost::Message)]
881    pub struct TabletResult {
882        #[prost(message, optional, tag = "1")]
883        pub tablet: ::core::option::Option<super::Tablet>,
884        #[prost(string, tag = "2")]
885        pub result: ::prost::alloc::string::String,
886    }
887}
888#[allow(clippy::derive_partial_eq_without_eq)]
889#[derive(Clone, PartialEq, ::prost::Message)]
890pub struct ReloadSchemaShardRequest {
891    #[prost(string, tag = "1")]
892    pub cluster_id: ::prost::alloc::string::String,
893    #[prost(string, tag = "2")]
894    pub keyspace: ::prost::alloc::string::String,
895    #[prost(string, tag = "3")]
896    pub shard: ::prost::alloc::string::String,
897    #[prost(string, tag = "4")]
898    pub wait_position: ::prost::alloc::string::String,
899    #[prost(bool, tag = "5")]
900    pub include_primary: bool,
901    #[prost(uint32, tag = "6")]
902    pub concurrency: u32,
903}
904#[allow(clippy::derive_partial_eq_without_eq)]
905#[derive(Clone, PartialEq, ::prost::Message)]
906pub struct ReloadSchemaShardResponse {
907    #[prost(message, repeated, tag = "1")]
908    pub events: ::prost::alloc::vec::Vec<super::logutil::Event>,
909}
910#[allow(clippy::derive_partial_eq_without_eq)]
911#[derive(Clone, PartialEq, ::prost::Message)]
912pub struct RefreshTabletReplicationSourceRequest {
913    #[prost(message, optional, tag = "1")]
914    pub alias: ::core::option::Option<super::topodata::TabletAlias>,
915    #[prost(string, repeated, tag = "2")]
916    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
917}
918#[allow(clippy::derive_partial_eq_without_eq)]
919#[derive(Clone, PartialEq, ::prost::Message)]
920pub struct RefreshTabletReplicationSourceResponse {
921    #[prost(string, tag = "1")]
922    pub keyspace: ::prost::alloc::string::String,
923    #[prost(string, tag = "2")]
924    pub shard: ::prost::alloc::string::String,
925    #[prost(message, optional, tag = "3")]
926    pub primary: ::core::option::Option<super::topodata::TabletAlias>,
927    #[prost(message, optional, tag = "4")]
928    pub cluster: ::core::option::Option<Cluster>,
929}
930#[allow(clippy::derive_partial_eq_without_eq)]
931#[derive(Clone, PartialEq, ::prost::Message)]
932pub struct RemoveKeyspaceCellRequest {
933    #[prost(string, tag = "1")]
934    pub cluster_id: ::prost::alloc::string::String,
935    #[prost(string, tag = "2")]
936    pub keyspace: ::prost::alloc::string::String,
937    #[prost(string, tag = "3")]
938    pub cell: ::prost::alloc::string::String,
939    #[prost(bool, tag = "4")]
940    pub force: bool,
941    #[prost(bool, tag = "5")]
942    pub recursive: bool,
943}
944#[allow(clippy::derive_partial_eq_without_eq)]
945#[derive(Clone, PartialEq, ::prost::Message)]
946pub struct RemoveKeyspaceCellResponse {
947    #[prost(string, tag = "1")]
948    pub status: ::prost::alloc::string::String,
949}
950#[allow(clippy::derive_partial_eq_without_eq)]
951#[derive(Clone, PartialEq, ::prost::Message)]
952pub struct RunHealthCheckRequest {
953    #[prost(message, optional, tag = "1")]
954    pub alias: ::core::option::Option<super::topodata::TabletAlias>,
955    #[prost(string, repeated, tag = "2")]
956    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
957}
958#[allow(clippy::derive_partial_eq_without_eq)]
959#[derive(Clone, PartialEq, ::prost::Message)]
960pub struct RunHealthCheckResponse {
961    #[prost(string, tag = "1")]
962    pub status: ::prost::alloc::string::String,
963    #[prost(message, optional, tag = "2")]
964    pub cluster: ::core::option::Option<Cluster>,
965}
966#[allow(clippy::derive_partial_eq_without_eq)]
967#[derive(Clone, PartialEq, ::prost::Message)]
968pub struct SetReadOnlyRequest {
969    #[prost(message, optional, tag = "1")]
970    pub alias: ::core::option::Option<super::topodata::TabletAlias>,
971    #[prost(string, repeated, tag = "2")]
972    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
973}
974#[allow(clippy::derive_partial_eq_without_eq)]
975#[derive(Clone, PartialEq, ::prost::Message)]
976pub struct SetReadOnlyResponse {}
977#[allow(clippy::derive_partial_eq_without_eq)]
978#[derive(Clone, PartialEq, ::prost::Message)]
979pub struct SetReadWriteRequest {
980    #[prost(message, optional, tag = "1")]
981    pub alias: ::core::option::Option<super::topodata::TabletAlias>,
982    #[prost(string, repeated, tag = "2")]
983    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
984}
985#[allow(clippy::derive_partial_eq_without_eq)]
986#[derive(Clone, PartialEq, ::prost::Message)]
987pub struct SetReadWriteResponse {}
988#[allow(clippy::derive_partial_eq_without_eq)]
989#[derive(Clone, PartialEq, ::prost::Message)]
990pub struct StartReplicationRequest {
991    #[prost(message, optional, tag = "1")]
992    pub alias: ::core::option::Option<super::topodata::TabletAlias>,
993    #[prost(string, repeated, tag = "2")]
994    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
995}
996#[allow(clippy::derive_partial_eq_without_eq)]
997#[derive(Clone, PartialEq, ::prost::Message)]
998pub struct StartReplicationResponse {
999    #[prost(string, tag = "1")]
1000    pub status: ::prost::alloc::string::String,
1001    #[prost(message, optional, tag = "2")]
1002    pub cluster: ::core::option::Option<Cluster>,
1003}
1004#[allow(clippy::derive_partial_eq_without_eq)]
1005#[derive(Clone, PartialEq, ::prost::Message)]
1006pub struct StopReplicationRequest {
1007    #[prost(message, optional, tag = "1")]
1008    pub alias: ::core::option::Option<super::topodata::TabletAlias>,
1009    #[prost(string, repeated, tag = "2")]
1010    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1011}
1012#[allow(clippy::derive_partial_eq_without_eq)]
1013#[derive(Clone, PartialEq, ::prost::Message)]
1014pub struct StopReplicationResponse {
1015    #[prost(string, tag = "1")]
1016    pub status: ::prost::alloc::string::String,
1017    #[prost(message, optional, tag = "2")]
1018    pub cluster: ::core::option::Option<Cluster>,
1019}
1020#[allow(clippy::derive_partial_eq_without_eq)]
1021#[derive(Clone, PartialEq, ::prost::Message)]
1022pub struct TabletExternallyPromotedRequest {
1023    /// Tablet is the alias of the tablet that was promoted externally and should
1024    /// be updated to the shard primary in the topo.
1025    #[prost(message, optional, tag = "1")]
1026    pub alias: ::core::option::Option<super::topodata::TabletAlias>,
1027    #[prost(string, repeated, tag = "2")]
1028    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1029}
1030#[allow(clippy::derive_partial_eq_without_eq)]
1031#[derive(Clone, PartialEq, ::prost::Message)]
1032pub struct TabletExternallyPromotedResponse {
1033    #[prost(message, optional, tag = "1")]
1034    pub cluster: ::core::option::Option<Cluster>,
1035    #[prost(string, tag = "2")]
1036    pub keyspace: ::prost::alloc::string::String,
1037    #[prost(string, tag = "3")]
1038    pub shard: ::prost::alloc::string::String,
1039    #[prost(message, optional, tag = "4")]
1040    pub new_primary: ::core::option::Option<super::topodata::TabletAlias>,
1041    #[prost(message, optional, tag = "5")]
1042    pub old_primary: ::core::option::Option<super::topodata::TabletAlias>,
1043}
1044#[allow(clippy::derive_partial_eq_without_eq)]
1045#[derive(Clone, PartialEq, ::prost::Message)]
1046pub struct TabletExternallyReparentedRequest {
1047    #[prost(message, optional, tag = "1")]
1048    pub alias: ::core::option::Option<super::topodata::TabletAlias>,
1049    #[prost(string, repeated, tag = "2")]
1050    pub cluster_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1051}
1052#[allow(clippy::derive_partial_eq_without_eq)]
1053#[derive(Clone, PartialEq, ::prost::Message)]
1054pub struct ValidateRequest {
1055    #[prost(string, tag = "1")]
1056    pub cluster_id: ::prost::alloc::string::String,
1057    #[prost(bool, tag = "2")]
1058    pub ping_tablets: bool,
1059}
1060#[allow(clippy::derive_partial_eq_without_eq)]
1061#[derive(Clone, PartialEq, ::prost::Message)]
1062pub struct ValidateKeyspaceRequest {
1063    #[prost(string, tag = "1")]
1064    pub cluster_id: ::prost::alloc::string::String,
1065    #[prost(string, tag = "2")]
1066    pub keyspace: ::prost::alloc::string::String,
1067    #[prost(bool, tag = "3")]
1068    pub ping_tablets: bool,
1069}
1070#[allow(clippy::derive_partial_eq_without_eq)]
1071#[derive(Clone, PartialEq, ::prost::Message)]
1072pub struct ValidateSchemaKeyspaceRequest {
1073    #[prost(string, tag = "1")]
1074    pub cluster_id: ::prost::alloc::string::String,
1075    #[prost(string, tag = "2")]
1076    pub keyspace: ::prost::alloc::string::String,
1077}
1078#[allow(clippy::derive_partial_eq_without_eq)]
1079#[derive(Clone, PartialEq, ::prost::Message)]
1080pub struct ValidateShardRequest {
1081    #[prost(string, tag = "1")]
1082    pub cluster_id: ::prost::alloc::string::String,
1083    #[prost(string, tag = "2")]
1084    pub keyspace: ::prost::alloc::string::String,
1085    #[prost(string, tag = "3")]
1086    pub shard: ::prost::alloc::string::String,
1087    #[prost(bool, tag = "4")]
1088    pub ping_tablets: bool,
1089}
1090#[allow(clippy::derive_partial_eq_without_eq)]
1091#[derive(Clone, PartialEq, ::prost::Message)]
1092pub struct ValidateVersionKeyspaceRequest {
1093    #[prost(string, tag = "1")]
1094    pub cluster_id: ::prost::alloc::string::String,
1095    #[prost(string, tag = "2")]
1096    pub keyspace: ::prost::alloc::string::String,
1097}
1098#[allow(clippy::derive_partial_eq_without_eq)]
1099#[derive(Clone, PartialEq, ::prost::Message)]
1100pub struct ValidateVersionShardRequest {
1101    #[prost(string, tag = "1")]
1102    pub cluster_id: ::prost::alloc::string::String,
1103    #[prost(string, tag = "2")]
1104    pub keyspace: ::prost::alloc::string::String,
1105    #[prost(string, tag = "3")]
1106    pub shard: ::prost::alloc::string::String,
1107}
1108#[allow(clippy::derive_partial_eq_without_eq)]
1109#[derive(Clone, PartialEq, ::prost::Message)]
1110pub struct VtExplainRequest {
1111    #[prost(string, tag = "1")]
1112    pub cluster: ::prost::alloc::string::String,
1113    #[prost(string, tag = "2")]
1114    pub keyspace: ::prost::alloc::string::String,
1115    #[prost(string, tag = "3")]
1116    pub sql: ::prost::alloc::string::String,
1117}
1118#[allow(clippy::derive_partial_eq_without_eq)]
1119#[derive(Clone, PartialEq, ::prost::Message)]
1120pub struct VtExplainResponse {
1121    #[prost(string, tag = "1")]
1122    pub response: ::prost::alloc::string::String,
1123}
1124/// Generated client implementations.
1125pub mod vt_admin_client {
1126    #![allow(unused_variables, dead_code, missing_docs, clippy::let_unit_value)]
1127    use tonic::codegen::*;
1128    use tonic::codegen::http::Uri;
1129    /// VTAdmin is the Vitess Admin API service. It provides RPCs that operate on
1130    /// across a range of Vitess clusters.
1131    #[derive(Debug, Clone)]
1132    pub struct VtAdminClient<T> {
1133        inner: tonic::client::Grpc<T>,
1134    }
1135    impl VtAdminClient<tonic::transport::Channel> {
1136        /// Attempt to create a new client by connecting to a given endpoint.
1137        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1138        where
1139            D: TryInto<tonic::transport::Endpoint>,
1140            D::Error: Into<StdError>,
1141        {
1142            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1143            Ok(Self::new(conn))
1144        }
1145    }
1146    impl<T> VtAdminClient<T>
1147    where
1148        T: tonic::client::GrpcService<tonic::body::BoxBody>,
1149        T::Error: Into<StdError>,
1150        T::ResponseBody: Body<Data = Bytes> + Send + 'static,
1151        <T::ResponseBody as Body>::Error: Into<StdError> + Send,
1152    {
1153        pub fn new(inner: T) -> Self {
1154            let inner = tonic::client::Grpc::new(inner);
1155            Self { inner }
1156        }
1157        pub fn with_origin(inner: T, origin: Uri) -> Self {
1158            let inner = tonic::client::Grpc::with_origin(inner, origin);
1159            Self { inner }
1160        }
1161        pub fn with_interceptor<F>(
1162            inner: T,
1163            interceptor: F,
1164        ) -> VtAdminClient<InterceptedService<T, F>>
1165        where
1166            F: tonic::service::Interceptor,
1167            T::ResponseBody: Default,
1168            T: tonic::codegen::Service<
1169                http::Request<tonic::body::BoxBody>,
1170                Response = http::Response<
1171                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
1172                >,
1173            >,
1174            <T as tonic::codegen::Service<
1175                http::Request<tonic::body::BoxBody>,
1176            >>::Error: Into<StdError> + Send + Sync,
1177        {
1178            VtAdminClient::new(InterceptedService::new(inner, interceptor))
1179        }
1180        /// Compress requests with the given encoding.
1181        ///
1182        /// This requires the server to support it otherwise it might respond with an
1183        /// error.
1184        #[must_use]
1185        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1186            self.inner = self.inner.send_compressed(encoding);
1187            self
1188        }
1189        /// Enable decompressing responses.
1190        #[must_use]
1191        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1192            self.inner = self.inner.accept_compressed(encoding);
1193            self
1194        }
1195        /// Limits the maximum size of a decoded message.
1196        ///
1197        /// Default: `4MB`
1198        #[must_use]
1199        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1200            self.inner = self.inner.max_decoding_message_size(limit);
1201            self
1202        }
1203        /// Limits the maximum size of an encoded message.
1204        ///
1205        /// Default: `usize::MAX`
1206        #[must_use]
1207        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
1208            self.inner = self.inner.max_encoding_message_size(limit);
1209            self
1210        }
1211        /// CreateKeyspace creates a new keyspace in the given cluster.
1212        pub async fn create_keyspace(
1213            &mut self,
1214            request: impl tonic::IntoRequest<super::CreateKeyspaceRequest>,
1215        ) -> std::result::Result<
1216            tonic::Response<super::CreateKeyspaceResponse>,
1217            tonic::Status,
1218        > {
1219            self.inner
1220                .ready()
1221                .await
1222                .map_err(|e| {
1223                    tonic::Status::new(
1224                        tonic::Code::Unknown,
1225                        format!("Service was not ready: {}", e.into()),
1226                    )
1227                })?;
1228            let codec = tonic::codec::ProstCodec::default();
1229            let path = http::uri::PathAndQuery::from_static(
1230                "/vtadmin.VTAdmin/CreateKeyspace",
1231            );
1232            let mut req = request.into_request();
1233            req.extensions_mut()
1234                .insert(GrpcMethod::new("vtadmin.VTAdmin", "CreateKeyspace"));
1235            self.inner.unary(req, path, codec).await
1236        }
1237        /// CreateShard creates a new shard in the given cluster and keyspace.
1238        pub async fn create_shard(
1239            &mut self,
1240            request: impl tonic::IntoRequest<super::CreateShardRequest>,
1241        ) -> std::result::Result<
1242            tonic::Response<super::super::vtctldata::CreateShardResponse>,
1243            tonic::Status,
1244        > {
1245            self.inner
1246                .ready()
1247                .await
1248                .map_err(|e| {
1249                    tonic::Status::new(
1250                        tonic::Code::Unknown,
1251                        format!("Service was not ready: {}", e.into()),
1252                    )
1253                })?;
1254            let codec = tonic::codec::ProstCodec::default();
1255            let path = http::uri::PathAndQuery::from_static(
1256                "/vtadmin.VTAdmin/CreateShard",
1257            );
1258            let mut req = request.into_request();
1259            req.extensions_mut()
1260                .insert(GrpcMethod::new("vtadmin.VTAdmin", "CreateShard"));
1261            self.inner.unary(req, path, codec).await
1262        }
1263        /// DeleteKeyspace deletes a keyspace in the given cluster.
1264        pub async fn delete_keyspace(
1265            &mut self,
1266            request: impl tonic::IntoRequest<super::DeleteKeyspaceRequest>,
1267        ) -> std::result::Result<
1268            tonic::Response<super::super::vtctldata::DeleteKeyspaceResponse>,
1269            tonic::Status,
1270        > {
1271            self.inner
1272                .ready()
1273                .await
1274                .map_err(|e| {
1275                    tonic::Status::new(
1276                        tonic::Code::Unknown,
1277                        format!("Service was not ready: {}", e.into()),
1278                    )
1279                })?;
1280            let codec = tonic::codec::ProstCodec::default();
1281            let path = http::uri::PathAndQuery::from_static(
1282                "/vtadmin.VTAdmin/DeleteKeyspace",
1283            );
1284            let mut req = request.into_request();
1285            req.extensions_mut()
1286                .insert(GrpcMethod::new("vtadmin.VTAdmin", "DeleteKeyspace"));
1287            self.inner.unary(req, path, codec).await
1288        }
1289        /// DeleteShard deletes one or more shards in the given cluster and keyspace.
1290        pub async fn delete_shards(
1291            &mut self,
1292            request: impl tonic::IntoRequest<super::DeleteShardsRequest>,
1293        ) -> std::result::Result<
1294            tonic::Response<super::super::vtctldata::DeleteShardsResponse>,
1295            tonic::Status,
1296        > {
1297            self.inner
1298                .ready()
1299                .await
1300                .map_err(|e| {
1301                    tonic::Status::new(
1302                        tonic::Code::Unknown,
1303                        format!("Service was not ready: {}", e.into()),
1304                    )
1305                })?;
1306            let codec = tonic::codec::ProstCodec::default();
1307            let path = http::uri::PathAndQuery::from_static(
1308                "/vtadmin.VTAdmin/DeleteShards",
1309            );
1310            let mut req = request.into_request();
1311            req.extensions_mut()
1312                .insert(GrpcMethod::new("vtadmin.VTAdmin", "DeleteShards"));
1313            self.inner.unary(req, path, codec).await
1314        }
1315        /// DeleteTablet deletes a tablet from the topology
1316        pub async fn delete_tablet(
1317            &mut self,
1318            request: impl tonic::IntoRequest<super::DeleteTabletRequest>,
1319        ) -> std::result::Result<
1320            tonic::Response<super::DeleteTabletResponse>,
1321            tonic::Status,
1322        > {
1323            self.inner
1324                .ready()
1325                .await
1326                .map_err(|e| {
1327                    tonic::Status::new(
1328                        tonic::Code::Unknown,
1329                        format!("Service was not ready: {}", e.into()),
1330                    )
1331                })?;
1332            let codec = tonic::codec::ProstCodec::default();
1333            let path = http::uri::PathAndQuery::from_static(
1334                "/vtadmin.VTAdmin/DeleteTablet",
1335            );
1336            let mut req = request.into_request();
1337            req.extensions_mut()
1338                .insert(GrpcMethod::new("vtadmin.VTAdmin", "DeleteTablet"));
1339            self.inner.unary(req, path, codec).await
1340        }
1341        /// EmergencyFailoverShard fails over a shard to a new primary. It assumes
1342        /// the old primary is dead or otherwise not responding.
1343        pub async fn emergency_failover_shard(
1344            &mut self,
1345            request: impl tonic::IntoRequest<super::EmergencyFailoverShardRequest>,
1346        ) -> std::result::Result<
1347            tonic::Response<super::EmergencyFailoverShardResponse>,
1348            tonic::Status,
1349        > {
1350            self.inner
1351                .ready()
1352                .await
1353                .map_err(|e| {
1354                    tonic::Status::new(
1355                        tonic::Code::Unknown,
1356                        format!("Service was not ready: {}", e.into()),
1357                    )
1358                })?;
1359            let codec = tonic::codec::ProstCodec::default();
1360            let path = http::uri::PathAndQuery::from_static(
1361                "/vtadmin.VTAdmin/EmergencyFailoverShard",
1362            );
1363            let mut req = request.into_request();
1364            req.extensions_mut()
1365                .insert(GrpcMethod::new("vtadmin.VTAdmin", "EmergencyFailoverShard"));
1366            self.inner.unary(req, path, codec).await
1367        }
1368        /// FindSchema returns a single Schema that matches the provided table name
1369        /// across all specified clusters IDs. Not specifying a set of cluster IDs
1370        /// causes the search to span all configured clusters.
1371        ///
1372        /// An error occurs if either no table exists across any of the clusters with
1373        /// the specified table name, or if multiple tables exist with that name.
1374        pub async fn find_schema(
1375            &mut self,
1376            request: impl tonic::IntoRequest<super::FindSchemaRequest>,
1377        ) -> std::result::Result<tonic::Response<super::Schema>, tonic::Status> {
1378            self.inner
1379                .ready()
1380                .await
1381                .map_err(|e| {
1382                    tonic::Status::new(
1383                        tonic::Code::Unknown,
1384                        format!("Service was not ready: {}", e.into()),
1385                    )
1386                })?;
1387            let codec = tonic::codec::ProstCodec::default();
1388            let path = http::uri::PathAndQuery::from_static(
1389                "/vtadmin.VTAdmin/FindSchema",
1390            );
1391            let mut req = request.into_request();
1392            req.extensions_mut()
1393                .insert(GrpcMethod::new("vtadmin.VTAdmin", "FindSchema"));
1394            self.inner.unary(req, path, codec).await
1395        }
1396        /// GetBackups returns backups grouped by cluster.
1397        pub async fn get_backups(
1398            &mut self,
1399            request: impl tonic::IntoRequest<super::GetBackupsRequest>,
1400        ) -> std::result::Result<
1401            tonic::Response<super::GetBackupsResponse>,
1402            tonic::Status,
1403        > {
1404            self.inner
1405                .ready()
1406                .await
1407                .map_err(|e| {
1408                    tonic::Status::new(
1409                        tonic::Code::Unknown,
1410                        format!("Service was not ready: {}", e.into()),
1411                    )
1412                })?;
1413            let codec = tonic::codec::ProstCodec::default();
1414            let path = http::uri::PathAndQuery::from_static(
1415                "/vtadmin.VTAdmin/GetBackups",
1416            );
1417            let mut req = request.into_request();
1418            req.extensions_mut()
1419                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetBackups"));
1420            self.inner.unary(req, path, codec).await
1421        }
1422        /// GetCellInfos returns the CellInfo objects for the specified clusters.
1423        ///
1424        /// Callers may optionally restrict the set of CellInfos, or restrict the
1425        /// response to include only cell names.
1426        pub async fn get_cell_infos(
1427            &mut self,
1428            request: impl tonic::IntoRequest<super::GetCellInfosRequest>,
1429        ) -> std::result::Result<
1430            tonic::Response<super::GetCellInfosResponse>,
1431            tonic::Status,
1432        > {
1433            self.inner
1434                .ready()
1435                .await
1436                .map_err(|e| {
1437                    tonic::Status::new(
1438                        tonic::Code::Unknown,
1439                        format!("Service was not ready: {}", e.into()),
1440                    )
1441                })?;
1442            let codec = tonic::codec::ProstCodec::default();
1443            let path = http::uri::PathAndQuery::from_static(
1444                "/vtadmin.VTAdmin/GetCellInfos",
1445            );
1446            let mut req = request.into_request();
1447            req.extensions_mut()
1448                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetCellInfos"));
1449            self.inner.unary(req, path, codec).await
1450        }
1451        /// GetCellsAliases returns the CellsAliases data for the specified clusters.
1452        pub async fn get_cells_aliases(
1453            &mut self,
1454            request: impl tonic::IntoRequest<super::GetCellsAliasesRequest>,
1455        ) -> std::result::Result<
1456            tonic::Response<super::GetCellsAliasesResponse>,
1457            tonic::Status,
1458        > {
1459            self.inner
1460                .ready()
1461                .await
1462                .map_err(|e| {
1463                    tonic::Status::new(
1464                        tonic::Code::Unknown,
1465                        format!("Service was not ready: {}", e.into()),
1466                    )
1467                })?;
1468            let codec = tonic::codec::ProstCodec::default();
1469            let path = http::uri::PathAndQuery::from_static(
1470                "/vtadmin.VTAdmin/GetCellsAliases",
1471            );
1472            let mut req = request.into_request();
1473            req.extensions_mut()
1474                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetCellsAliases"));
1475            self.inner.unary(req, path, codec).await
1476        }
1477        /// GetClusters returns all configured clusters.
1478        pub async fn get_clusters(
1479            &mut self,
1480            request: impl tonic::IntoRequest<super::GetClustersRequest>,
1481        ) -> std::result::Result<
1482            tonic::Response<super::GetClustersResponse>,
1483            tonic::Status,
1484        > {
1485            self.inner
1486                .ready()
1487                .await
1488                .map_err(|e| {
1489                    tonic::Status::new(
1490                        tonic::Code::Unknown,
1491                        format!("Service was not ready: {}", e.into()),
1492                    )
1493                })?;
1494            let codec = tonic::codec::ProstCodec::default();
1495            let path = http::uri::PathAndQuery::from_static(
1496                "/vtadmin.VTAdmin/GetClusters",
1497            );
1498            let mut req = request.into_request();
1499            req.extensions_mut()
1500                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetClusters"));
1501            self.inner.unary(req, path, codec).await
1502        }
1503        /// GetFullStatus returns the full status of MySQL including the replication information, semi-sync information, GTID information among others
1504        pub async fn get_full_status(
1505            &mut self,
1506            request: impl tonic::IntoRequest<super::GetFullStatusRequest>,
1507        ) -> std::result::Result<
1508            tonic::Response<super::super::vtctldata::GetFullStatusResponse>,
1509            tonic::Status,
1510        > {
1511            self.inner
1512                .ready()
1513                .await
1514                .map_err(|e| {
1515                    tonic::Status::new(
1516                        tonic::Code::Unknown,
1517                        format!("Service was not ready: {}", e.into()),
1518                    )
1519                })?;
1520            let codec = tonic::codec::ProstCodec::default();
1521            let path = http::uri::PathAndQuery::from_static(
1522                "/vtadmin.VTAdmin/GetFullStatus",
1523            );
1524            let mut req = request.into_request();
1525            req.extensions_mut()
1526                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetFullStatus"));
1527            self.inner.unary(req, path, codec).await
1528        }
1529        /// GetGates returns all gates across all the specified clusters.
1530        pub async fn get_gates(
1531            &mut self,
1532            request: impl tonic::IntoRequest<super::GetGatesRequest>,
1533        ) -> std::result::Result<
1534            tonic::Response<super::GetGatesResponse>,
1535            tonic::Status,
1536        > {
1537            self.inner
1538                .ready()
1539                .await
1540                .map_err(|e| {
1541                    tonic::Status::new(
1542                        tonic::Code::Unknown,
1543                        format!("Service was not ready: {}", e.into()),
1544                    )
1545                })?;
1546            let codec = tonic::codec::ProstCodec::default();
1547            let path = http::uri::PathAndQuery::from_static("/vtadmin.VTAdmin/GetGates");
1548            let mut req = request.into_request();
1549            req.extensions_mut().insert(GrpcMethod::new("vtadmin.VTAdmin", "GetGates"));
1550            self.inner.unary(req, path, codec).await
1551        }
1552        /// GetKeyspace returns a keyspace by name in the specified cluster.
1553        pub async fn get_keyspace(
1554            &mut self,
1555            request: impl tonic::IntoRequest<super::GetKeyspaceRequest>,
1556        ) -> std::result::Result<tonic::Response<super::Keyspace>, tonic::Status> {
1557            self.inner
1558                .ready()
1559                .await
1560                .map_err(|e| {
1561                    tonic::Status::new(
1562                        tonic::Code::Unknown,
1563                        format!("Service was not ready: {}", e.into()),
1564                    )
1565                })?;
1566            let codec = tonic::codec::ProstCodec::default();
1567            let path = http::uri::PathAndQuery::from_static(
1568                "/vtadmin.VTAdmin/GetKeyspace",
1569            );
1570            let mut req = request.into_request();
1571            req.extensions_mut()
1572                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetKeyspace"));
1573            self.inner.unary(req, path, codec).await
1574        }
1575        /// GetKeyspaces returns all keyspaces across the specified clusters.
1576        pub async fn get_keyspaces(
1577            &mut self,
1578            request: impl tonic::IntoRequest<super::GetKeyspacesRequest>,
1579        ) -> std::result::Result<
1580            tonic::Response<super::GetKeyspacesResponse>,
1581            tonic::Status,
1582        > {
1583            self.inner
1584                .ready()
1585                .await
1586                .map_err(|e| {
1587                    tonic::Status::new(
1588                        tonic::Code::Unknown,
1589                        format!("Service was not ready: {}", e.into()),
1590                    )
1591                })?;
1592            let codec = tonic::codec::ProstCodec::default();
1593            let path = http::uri::PathAndQuery::from_static(
1594                "/vtadmin.VTAdmin/GetKeyspaces",
1595            );
1596            let mut req = request.into_request();
1597            req.extensions_mut()
1598                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetKeyspaces"));
1599            self.inner.unary(req, path, codec).await
1600        }
1601        /// GetSchema returns the schema for the specified (cluster, keyspace, table)
1602        /// tuple.
1603        pub async fn get_schema(
1604            &mut self,
1605            request: impl tonic::IntoRequest<super::GetSchemaRequest>,
1606        ) -> std::result::Result<tonic::Response<super::Schema>, tonic::Status> {
1607            self.inner
1608                .ready()
1609                .await
1610                .map_err(|e| {
1611                    tonic::Status::new(
1612                        tonic::Code::Unknown,
1613                        format!("Service was not ready: {}", e.into()),
1614                    )
1615                })?;
1616            let codec = tonic::codec::ProstCodec::default();
1617            let path = http::uri::PathAndQuery::from_static(
1618                "/vtadmin.VTAdmin/GetSchema",
1619            );
1620            let mut req = request.into_request();
1621            req.extensions_mut().insert(GrpcMethod::new("vtadmin.VTAdmin", "GetSchema"));
1622            self.inner.unary(req, path, codec).await
1623        }
1624        /// GetSchemas returns all schemas across the specified clusters.
1625        pub async fn get_schemas(
1626            &mut self,
1627            request: impl tonic::IntoRequest<super::GetSchemasRequest>,
1628        ) -> std::result::Result<
1629            tonic::Response<super::GetSchemasResponse>,
1630            tonic::Status,
1631        > {
1632            self.inner
1633                .ready()
1634                .await
1635                .map_err(|e| {
1636                    tonic::Status::new(
1637                        tonic::Code::Unknown,
1638                        format!("Service was not ready: {}", e.into()),
1639                    )
1640                })?;
1641            let codec = tonic::codec::ProstCodec::default();
1642            let path = http::uri::PathAndQuery::from_static(
1643                "/vtadmin.VTAdmin/GetSchemas",
1644            );
1645            let mut req = request.into_request();
1646            req.extensions_mut()
1647                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetSchemas"));
1648            self.inner.unary(req, path, codec).await
1649        }
1650        /// GetShardReplicationPositions returns shard replication positions grouped
1651        /// by cluster.
1652        pub async fn get_shard_replication_positions(
1653            &mut self,
1654            request: impl tonic::IntoRequest<super::GetShardReplicationPositionsRequest>,
1655        ) -> std::result::Result<
1656            tonic::Response<super::GetShardReplicationPositionsResponse>,
1657            tonic::Status,
1658        > {
1659            self.inner
1660                .ready()
1661                .await
1662                .map_err(|e| {
1663                    tonic::Status::new(
1664                        tonic::Code::Unknown,
1665                        format!("Service was not ready: {}", e.into()),
1666                    )
1667                })?;
1668            let codec = tonic::codec::ProstCodec::default();
1669            let path = http::uri::PathAndQuery::from_static(
1670                "/vtadmin.VTAdmin/GetShardReplicationPositions",
1671            );
1672            let mut req = request.into_request();
1673            req.extensions_mut()
1674                .insert(
1675                    GrpcMethod::new("vtadmin.VTAdmin", "GetShardReplicationPositions"),
1676                );
1677            self.inner.unary(req, path, codec).await
1678        }
1679        /// GetSrvKeyspace returns the SrvKeyspace for a keyspace in one or more cells.
1680        pub async fn get_srv_keyspace(
1681            &mut self,
1682            request: impl tonic::IntoRequest<super::GetSrvKeyspaceRequest>,
1683        ) -> std::result::Result<
1684            tonic::Response<super::super::vtctldata::GetSrvKeyspacesResponse>,
1685            tonic::Status,
1686        > {
1687            self.inner
1688                .ready()
1689                .await
1690                .map_err(|e| {
1691                    tonic::Status::new(
1692                        tonic::Code::Unknown,
1693                        format!("Service was not ready: {}", e.into()),
1694                    )
1695                })?;
1696            let codec = tonic::codec::ProstCodec::default();
1697            let path = http::uri::PathAndQuery::from_static(
1698                "/vtadmin.VTAdmin/GetSrvKeyspace",
1699            );
1700            let mut req = request.into_request();
1701            req.extensions_mut()
1702                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetSrvKeyspace"));
1703            self.inner.unary(req, path, codec).await
1704        }
1705        /// GetSrvKeyspaces returns the SrvKeyspaces for all keyspaces across all the specified clusters.
1706        pub async fn get_srv_keyspaces(
1707            &mut self,
1708            request: impl tonic::IntoRequest<super::GetSrvKeyspacesRequest>,
1709        ) -> std::result::Result<
1710            tonic::Response<super::GetSrvKeyspacesResponse>,
1711            tonic::Status,
1712        > {
1713            self.inner
1714                .ready()
1715                .await
1716                .map_err(|e| {
1717                    tonic::Status::new(
1718                        tonic::Code::Unknown,
1719                        format!("Service was not ready: {}", e.into()),
1720                    )
1721                })?;
1722            let codec = tonic::codec::ProstCodec::default();
1723            let path = http::uri::PathAndQuery::from_static(
1724                "/vtadmin.VTAdmin/GetSrvKeyspaces",
1725            );
1726            let mut req = request.into_request();
1727            req.extensions_mut()
1728                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetSrvKeyspaces"));
1729            self.inner.unary(req, path, codec).await
1730        }
1731        /// GetSrvVSchema returns the SrvVSchema for the given cluster and cell.
1732        pub async fn get_srv_v_schema(
1733            &mut self,
1734            request: impl tonic::IntoRequest<super::GetSrvVSchemaRequest>,
1735        ) -> std::result::Result<tonic::Response<super::SrvVSchema>, tonic::Status> {
1736            self.inner
1737                .ready()
1738                .await
1739                .map_err(|e| {
1740                    tonic::Status::new(
1741                        tonic::Code::Unknown,
1742                        format!("Service was not ready: {}", e.into()),
1743                    )
1744                })?;
1745            let codec = tonic::codec::ProstCodec::default();
1746            let path = http::uri::PathAndQuery::from_static(
1747                "/vtadmin.VTAdmin/GetSrvVSchema",
1748            );
1749            let mut req = request.into_request();
1750            req.extensions_mut()
1751                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetSrvVSchema"));
1752            self.inner.unary(req, path, codec).await
1753        }
1754        /// GetSrvVSchemas returns all SrvVSchemas across all (or specified) clusters
1755        /// and cells.
1756        pub async fn get_srv_v_schemas(
1757            &mut self,
1758            request: impl tonic::IntoRequest<super::GetSrvVSchemasRequest>,
1759        ) -> std::result::Result<
1760            tonic::Response<super::GetSrvVSchemasResponse>,
1761            tonic::Status,
1762        > {
1763            self.inner
1764                .ready()
1765                .await
1766                .map_err(|e| {
1767                    tonic::Status::new(
1768                        tonic::Code::Unknown,
1769                        format!("Service was not ready: {}", e.into()),
1770                    )
1771                })?;
1772            let codec = tonic::codec::ProstCodec::default();
1773            let path = http::uri::PathAndQuery::from_static(
1774                "/vtadmin.VTAdmin/GetSrvVSchemas",
1775            );
1776            let mut req = request.into_request();
1777            req.extensions_mut()
1778                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetSrvVSchemas"));
1779            self.inner.unary(req, path, codec).await
1780        }
1781        /// GetTablet looks up a tablet by hostname across all clusters and returns
1782        /// the result.
1783        pub async fn get_tablet(
1784            &mut self,
1785            request: impl tonic::IntoRequest<super::GetTabletRequest>,
1786        ) -> std::result::Result<tonic::Response<super::Tablet>, tonic::Status> {
1787            self.inner
1788                .ready()
1789                .await
1790                .map_err(|e| {
1791                    tonic::Status::new(
1792                        tonic::Code::Unknown,
1793                        format!("Service was not ready: {}", e.into()),
1794                    )
1795                })?;
1796            let codec = tonic::codec::ProstCodec::default();
1797            let path = http::uri::PathAndQuery::from_static(
1798                "/vtadmin.VTAdmin/GetTablet",
1799            );
1800            let mut req = request.into_request();
1801            req.extensions_mut().insert(GrpcMethod::new("vtadmin.VTAdmin", "GetTablet"));
1802            self.inner.unary(req, path, codec).await
1803        }
1804        /// GetTablets returns all tablets across all the specified clusters.
1805        pub async fn get_tablets(
1806            &mut self,
1807            request: impl tonic::IntoRequest<super::GetTabletsRequest>,
1808        ) -> std::result::Result<
1809            tonic::Response<super::GetTabletsResponse>,
1810            tonic::Status,
1811        > {
1812            self.inner
1813                .ready()
1814                .await
1815                .map_err(|e| {
1816                    tonic::Status::new(
1817                        tonic::Code::Unknown,
1818                        format!("Service was not ready: {}", e.into()),
1819                    )
1820                })?;
1821            let codec = tonic::codec::ProstCodec::default();
1822            let path = http::uri::PathAndQuery::from_static(
1823                "/vtadmin.VTAdmin/GetTablets",
1824            );
1825            let mut req = request.into_request();
1826            req.extensions_mut()
1827                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetTablets"));
1828            self.inner.unary(req, path, codec).await
1829        }
1830        /// GetTopologyPath returns the cell located at the specified path in the topology server.
1831        pub async fn get_topology_path(
1832            &mut self,
1833            request: impl tonic::IntoRequest<super::GetTopologyPathRequest>,
1834        ) -> std::result::Result<
1835            tonic::Response<super::super::vtctldata::GetTopologyPathResponse>,
1836            tonic::Status,
1837        > {
1838            self.inner
1839                .ready()
1840                .await
1841                .map_err(|e| {
1842                    tonic::Status::new(
1843                        tonic::Code::Unknown,
1844                        format!("Service was not ready: {}", e.into()),
1845                    )
1846                })?;
1847            let codec = tonic::codec::ProstCodec::default();
1848            let path = http::uri::PathAndQuery::from_static(
1849                "/vtadmin.VTAdmin/GetTopologyPath",
1850            );
1851            let mut req = request.into_request();
1852            req.extensions_mut()
1853                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetTopologyPath"));
1854            self.inner.unary(req, path, codec).await
1855        }
1856        /// GetVSchema returns a VSchema for the specified keyspace in the specified
1857        /// cluster.
1858        pub async fn get_v_schema(
1859            &mut self,
1860            request: impl tonic::IntoRequest<super::GetVSchemaRequest>,
1861        ) -> std::result::Result<tonic::Response<super::VSchema>, tonic::Status> {
1862            self.inner
1863                .ready()
1864                .await
1865                .map_err(|e| {
1866                    tonic::Status::new(
1867                        tonic::Code::Unknown,
1868                        format!("Service was not ready: {}", e.into()),
1869                    )
1870                })?;
1871            let codec = tonic::codec::ProstCodec::default();
1872            let path = http::uri::PathAndQuery::from_static(
1873                "/vtadmin.VTAdmin/GetVSchema",
1874            );
1875            let mut req = request.into_request();
1876            req.extensions_mut()
1877                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetVSchema"));
1878            self.inner.unary(req, path, codec).await
1879        }
1880        /// GetVSchemas returns the VSchemas for all specified clusters.
1881        pub async fn get_v_schemas(
1882            &mut self,
1883            request: impl tonic::IntoRequest<super::GetVSchemasRequest>,
1884        ) -> std::result::Result<
1885            tonic::Response<super::GetVSchemasResponse>,
1886            tonic::Status,
1887        > {
1888            self.inner
1889                .ready()
1890                .await
1891                .map_err(|e| {
1892                    tonic::Status::new(
1893                        tonic::Code::Unknown,
1894                        format!("Service was not ready: {}", e.into()),
1895                    )
1896                })?;
1897            let codec = tonic::codec::ProstCodec::default();
1898            let path = http::uri::PathAndQuery::from_static(
1899                "/vtadmin.VTAdmin/GetVSchemas",
1900            );
1901            let mut req = request.into_request();
1902            req.extensions_mut()
1903                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetVSchemas"));
1904            self.inner.unary(req, path, codec).await
1905        }
1906        /// GetVtctlds returns the Vtctlds for all specified clusters.
1907        pub async fn get_vtctlds(
1908            &mut self,
1909            request: impl tonic::IntoRequest<super::GetVtctldsRequest>,
1910        ) -> std::result::Result<
1911            tonic::Response<super::GetVtctldsResponse>,
1912            tonic::Status,
1913        > {
1914            self.inner
1915                .ready()
1916                .await
1917                .map_err(|e| {
1918                    tonic::Status::new(
1919                        tonic::Code::Unknown,
1920                        format!("Service was not ready: {}", e.into()),
1921                    )
1922                })?;
1923            let codec = tonic::codec::ProstCodec::default();
1924            let path = http::uri::PathAndQuery::from_static(
1925                "/vtadmin.VTAdmin/GetVtctlds",
1926            );
1927            let mut req = request.into_request();
1928            req.extensions_mut()
1929                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetVtctlds"));
1930            self.inner.unary(req, path, codec).await
1931        }
1932        /// GetWorkflow returns a single Workflow for a given cluster, keyspace, and
1933        /// workflow name.
1934        pub async fn get_workflow(
1935            &mut self,
1936            request: impl tonic::IntoRequest<super::GetWorkflowRequest>,
1937        ) -> std::result::Result<tonic::Response<super::Workflow>, tonic::Status> {
1938            self.inner
1939                .ready()
1940                .await
1941                .map_err(|e| {
1942                    tonic::Status::new(
1943                        tonic::Code::Unknown,
1944                        format!("Service was not ready: {}", e.into()),
1945                    )
1946                })?;
1947            let codec = tonic::codec::ProstCodec::default();
1948            let path = http::uri::PathAndQuery::from_static(
1949                "/vtadmin.VTAdmin/GetWorkflow",
1950            );
1951            let mut req = request.into_request();
1952            req.extensions_mut()
1953                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetWorkflow"));
1954            self.inner.unary(req, path, codec).await
1955        }
1956        /// GetWorkflows returns the Workflows for all specified clusters.
1957        pub async fn get_workflows(
1958            &mut self,
1959            request: impl tonic::IntoRequest<super::GetWorkflowsRequest>,
1960        ) -> std::result::Result<
1961            tonic::Response<super::GetWorkflowsResponse>,
1962            tonic::Status,
1963        > {
1964            self.inner
1965                .ready()
1966                .await
1967                .map_err(|e| {
1968                    tonic::Status::new(
1969                        tonic::Code::Unknown,
1970                        format!("Service was not ready: {}", e.into()),
1971                    )
1972                })?;
1973            let codec = tonic::codec::ProstCodec::default();
1974            let path = http::uri::PathAndQuery::from_static(
1975                "/vtadmin.VTAdmin/GetWorkflows",
1976            );
1977            let mut req = request.into_request();
1978            req.extensions_mut()
1979                .insert(GrpcMethod::new("vtadmin.VTAdmin", "GetWorkflows"));
1980            self.inner.unary(req, path, codec).await
1981        }
1982        /// PingTablet checks that the specified tablet is awake and responding to
1983        /// RPCs. This command can be blocked by other in-flight operations.
1984        pub async fn ping_tablet(
1985            &mut self,
1986            request: impl tonic::IntoRequest<super::PingTabletRequest>,
1987        ) -> std::result::Result<
1988            tonic::Response<super::PingTabletResponse>,
1989            tonic::Status,
1990        > {
1991            self.inner
1992                .ready()
1993                .await
1994                .map_err(|e| {
1995                    tonic::Status::new(
1996                        tonic::Code::Unknown,
1997                        format!("Service was not ready: {}", e.into()),
1998                    )
1999                })?;
2000            let codec = tonic::codec::ProstCodec::default();
2001            let path = http::uri::PathAndQuery::from_static(
2002                "/vtadmin.VTAdmin/PingTablet",
2003            );
2004            let mut req = request.into_request();
2005            req.extensions_mut()
2006                .insert(GrpcMethod::new("vtadmin.VTAdmin", "PingTablet"));
2007            self.inner.unary(req, path, codec).await
2008        }
2009        /// PlannedFailoverShard fails over the shard to a new primary, or away from
2010        /// an old primary. Both the old and new primaries must be reachable and
2011        /// running.
2012        ///
2013        /// NOTE: A planned failover will not consider replicas outside the current
2014        /// shard primary's cell as promotion candidates unless NewPrimary is
2015        /// explicitly provided in the request.
2016        pub async fn planned_failover_shard(
2017            &mut self,
2018            request: impl tonic::IntoRequest<super::PlannedFailoverShardRequest>,
2019        ) -> std::result::Result<
2020            tonic::Response<super::PlannedFailoverShardResponse>,
2021            tonic::Status,
2022        > {
2023            self.inner
2024                .ready()
2025                .await
2026                .map_err(|e| {
2027                    tonic::Status::new(
2028                        tonic::Code::Unknown,
2029                        format!("Service was not ready: {}", e.into()),
2030                    )
2031                })?;
2032            let codec = tonic::codec::ProstCodec::default();
2033            let path = http::uri::PathAndQuery::from_static(
2034                "/vtadmin.VTAdmin/PlannedFailoverShard",
2035            );
2036            let mut req = request.into_request();
2037            req.extensions_mut()
2038                .insert(GrpcMethod::new("vtadmin.VTAdmin", "PlannedFailoverShard"));
2039            self.inner.unary(req, path, codec).await
2040        }
2041        /// RebuildKeyspaceGraph rebuilds the serving data for a keyspace.
2042        pub async fn rebuild_keyspace_graph(
2043            &mut self,
2044            request: impl tonic::IntoRequest<super::RebuildKeyspaceGraphRequest>,
2045        ) -> std::result::Result<
2046            tonic::Response<super::RebuildKeyspaceGraphResponse>,
2047            tonic::Status,
2048        > {
2049            self.inner
2050                .ready()
2051                .await
2052                .map_err(|e| {
2053                    tonic::Status::new(
2054                        tonic::Code::Unknown,
2055                        format!("Service was not ready: {}", e.into()),
2056                    )
2057                })?;
2058            let codec = tonic::codec::ProstCodec::default();
2059            let path = http::uri::PathAndQuery::from_static(
2060                "/vtadmin.VTAdmin/RebuildKeyspaceGraph",
2061            );
2062            let mut req = request.into_request();
2063            req.extensions_mut()
2064                .insert(GrpcMethod::new("vtadmin.VTAdmin", "RebuildKeyspaceGraph"));
2065            self.inner.unary(req, path, codec).await
2066        }
2067        /// RefreshState reloads the tablet record on the specified tablet.
2068        pub async fn refresh_state(
2069            &mut self,
2070            request: impl tonic::IntoRequest<super::RefreshStateRequest>,
2071        ) -> std::result::Result<
2072            tonic::Response<super::RefreshStateResponse>,
2073            tonic::Status,
2074        > {
2075            self.inner
2076                .ready()
2077                .await
2078                .map_err(|e| {
2079                    tonic::Status::new(
2080                        tonic::Code::Unknown,
2081                        format!("Service was not ready: {}", e.into()),
2082                    )
2083                })?;
2084            let codec = tonic::codec::ProstCodec::default();
2085            let path = http::uri::PathAndQuery::from_static(
2086                "/vtadmin.VTAdmin/RefreshState",
2087            );
2088            let mut req = request.into_request();
2089            req.extensions_mut()
2090                .insert(GrpcMethod::new("vtadmin.VTAdmin", "RefreshState"));
2091            self.inner.unary(req, path, codec).await
2092        }
2093        /// RefreshTabletReplicationSource performs a `CHANGE REPLICATION SOURCE TO`
2094        /// on a tablet to replicate from the current primary in the shard.
2095        pub async fn refresh_tablet_replication_source(
2096            &mut self,
2097            request: impl tonic::IntoRequest<
2098                super::RefreshTabletReplicationSourceRequest,
2099            >,
2100        ) -> std::result::Result<
2101            tonic::Response<super::RefreshTabletReplicationSourceResponse>,
2102            tonic::Status,
2103        > {
2104            self.inner
2105                .ready()
2106                .await
2107                .map_err(|e| {
2108                    tonic::Status::new(
2109                        tonic::Code::Unknown,
2110                        format!("Service was not ready: {}", e.into()),
2111                    )
2112                })?;
2113            let codec = tonic::codec::ProstCodec::default();
2114            let path = http::uri::PathAndQuery::from_static(
2115                "/vtadmin.VTAdmin/RefreshTabletReplicationSource",
2116            );
2117            let mut req = request.into_request();
2118            req.extensions_mut()
2119                .insert(
2120                    GrpcMethod::new("vtadmin.VTAdmin", "RefreshTabletReplicationSource"),
2121                );
2122            self.inner.unary(req, path, codec).await
2123        }
2124        /// ReloadSchemas reloads the schema definition across keyspaces, shards, or
2125        /// tablets in one or more clusters, depending on the request fields (see
2126        /// ReloadSchemasRequest for details).
2127        pub async fn reload_schemas(
2128            &mut self,
2129            request: impl tonic::IntoRequest<super::ReloadSchemasRequest>,
2130        ) -> std::result::Result<
2131            tonic::Response<super::ReloadSchemasResponse>,
2132            tonic::Status,
2133        > {
2134            self.inner
2135                .ready()
2136                .await
2137                .map_err(|e| {
2138                    tonic::Status::new(
2139                        tonic::Code::Unknown,
2140                        format!("Service was not ready: {}", e.into()),
2141                    )
2142                })?;
2143            let codec = tonic::codec::ProstCodec::default();
2144            let path = http::uri::PathAndQuery::from_static(
2145                "/vtadmin.VTAdmin/ReloadSchemas",
2146            );
2147            let mut req = request.into_request();
2148            req.extensions_mut()
2149                .insert(GrpcMethod::new("vtadmin.VTAdmin", "ReloadSchemas"));
2150            self.inner.unary(req, path, codec).await
2151        }
2152        /// ReloadSchemaShard reloads the schema on all tablets in a shard. This is done on a best-effort basis.
2153        pub async fn reload_schema_shard(
2154            &mut self,
2155            request: impl tonic::IntoRequest<super::ReloadSchemaShardRequest>,
2156        ) -> std::result::Result<
2157            tonic::Response<super::ReloadSchemaShardResponse>,
2158            tonic::Status,
2159        > {
2160            self.inner
2161                .ready()
2162                .await
2163                .map_err(|e| {
2164                    tonic::Status::new(
2165                        tonic::Code::Unknown,
2166                        format!("Service was not ready: {}", e.into()),
2167                    )
2168                })?;
2169            let codec = tonic::codec::ProstCodec::default();
2170            let path = http::uri::PathAndQuery::from_static(
2171                "/vtadmin.VTAdmin/ReloadSchemaShard",
2172            );
2173            let mut req = request.into_request();
2174            req.extensions_mut()
2175                .insert(GrpcMethod::new("vtadmin.VTAdmin", "ReloadSchemaShard"));
2176            self.inner.unary(req, path, codec).await
2177        }
2178        /// RemoveKeyspaceCell removes the cell from the Cells list for all shards in the keyspace, and the SrvKeyspace for that keyspace in that cell.
2179        pub async fn remove_keyspace_cell(
2180            &mut self,
2181            request: impl tonic::IntoRequest<super::RemoveKeyspaceCellRequest>,
2182        ) -> std::result::Result<
2183            tonic::Response<super::RemoveKeyspaceCellResponse>,
2184            tonic::Status,
2185        > {
2186            self.inner
2187                .ready()
2188                .await
2189                .map_err(|e| {
2190                    tonic::Status::new(
2191                        tonic::Code::Unknown,
2192                        format!("Service was not ready: {}", e.into()),
2193                    )
2194                })?;
2195            let codec = tonic::codec::ProstCodec::default();
2196            let path = http::uri::PathAndQuery::from_static(
2197                "/vtadmin.VTAdmin/RemoveKeyspaceCell",
2198            );
2199            let mut req = request.into_request();
2200            req.extensions_mut()
2201                .insert(GrpcMethod::new("vtadmin.VTAdmin", "RemoveKeyspaceCell"));
2202            self.inner.unary(req, path, codec).await
2203        }
2204        /// RunHealthCheck runs a healthcheck on the tablet.
2205        pub async fn run_health_check(
2206            &mut self,
2207            request: impl tonic::IntoRequest<super::RunHealthCheckRequest>,
2208        ) -> std::result::Result<
2209            tonic::Response<super::RunHealthCheckResponse>,
2210            tonic::Status,
2211        > {
2212            self.inner
2213                .ready()
2214                .await
2215                .map_err(|e| {
2216                    tonic::Status::new(
2217                        tonic::Code::Unknown,
2218                        format!("Service was not ready: {}", e.into()),
2219                    )
2220                })?;
2221            let codec = tonic::codec::ProstCodec::default();
2222            let path = http::uri::PathAndQuery::from_static(
2223                "/vtadmin.VTAdmin/RunHealthCheck",
2224            );
2225            let mut req = request.into_request();
2226            req.extensions_mut()
2227                .insert(GrpcMethod::new("vtadmin.VTAdmin", "RunHealthCheck"));
2228            self.inner.unary(req, path, codec).await
2229        }
2230        /// SetReadOnly sets the tablet to read-only mode.
2231        pub async fn set_read_only(
2232            &mut self,
2233            request: impl tonic::IntoRequest<super::SetReadOnlyRequest>,
2234        ) -> std::result::Result<
2235            tonic::Response<super::SetReadOnlyResponse>,
2236            tonic::Status,
2237        > {
2238            self.inner
2239                .ready()
2240                .await
2241                .map_err(|e| {
2242                    tonic::Status::new(
2243                        tonic::Code::Unknown,
2244                        format!("Service was not ready: {}", e.into()),
2245                    )
2246                })?;
2247            let codec = tonic::codec::ProstCodec::default();
2248            let path = http::uri::PathAndQuery::from_static(
2249                "/vtadmin.VTAdmin/SetReadOnly",
2250            );
2251            let mut req = request.into_request();
2252            req.extensions_mut()
2253                .insert(GrpcMethod::new("vtadmin.VTAdmin", "SetReadOnly"));
2254            self.inner.unary(req, path, codec).await
2255        }
2256        /// SetReadWrite sets the tablet to read-write mode.
2257        pub async fn set_read_write(
2258            &mut self,
2259            request: impl tonic::IntoRequest<super::SetReadWriteRequest>,
2260        ) -> std::result::Result<
2261            tonic::Response<super::SetReadWriteResponse>,
2262            tonic::Status,
2263        > {
2264            self.inner
2265                .ready()
2266                .await
2267                .map_err(|e| {
2268                    tonic::Status::new(
2269                        tonic::Code::Unknown,
2270                        format!("Service was not ready: {}", e.into()),
2271                    )
2272                })?;
2273            let codec = tonic::codec::ProstCodec::default();
2274            let path = http::uri::PathAndQuery::from_static(
2275                "/vtadmin.VTAdmin/SetReadWrite",
2276            );
2277            let mut req = request.into_request();
2278            req.extensions_mut()
2279                .insert(GrpcMethod::new("vtadmin.VTAdmin", "SetReadWrite"));
2280            self.inner.unary(req, path, codec).await
2281        }
2282        /// StartReplication runs the underlying database command to start
2283        /// replication on a tablet.
2284        pub async fn start_replication(
2285            &mut self,
2286            request: impl tonic::IntoRequest<super::StartReplicationRequest>,
2287        ) -> std::result::Result<
2288            tonic::Response<super::StartReplicationResponse>,
2289            tonic::Status,
2290        > {
2291            self.inner
2292                .ready()
2293                .await
2294                .map_err(|e| {
2295                    tonic::Status::new(
2296                        tonic::Code::Unknown,
2297                        format!("Service was not ready: {}", e.into()),
2298                    )
2299                })?;
2300            let codec = tonic::codec::ProstCodec::default();
2301            let path = http::uri::PathAndQuery::from_static(
2302                "/vtadmin.VTAdmin/StartReplication",
2303            );
2304            let mut req = request.into_request();
2305            req.extensions_mut()
2306                .insert(GrpcMethod::new("vtadmin.VTAdmin", "StartReplication"));
2307            self.inner.unary(req, path, codec).await
2308        }
2309        /// StopReplication runs the underlying database command to stop replication
2310        /// on a tablet
2311        pub async fn stop_replication(
2312            &mut self,
2313            request: impl tonic::IntoRequest<super::StopReplicationRequest>,
2314        ) -> std::result::Result<
2315            tonic::Response<super::StopReplicationResponse>,
2316            tonic::Status,
2317        > {
2318            self.inner
2319                .ready()
2320                .await
2321                .map_err(|e| {
2322                    tonic::Status::new(
2323                        tonic::Code::Unknown,
2324                        format!("Service was not ready: {}", e.into()),
2325                    )
2326                })?;
2327            let codec = tonic::codec::ProstCodec::default();
2328            let path = http::uri::PathAndQuery::from_static(
2329                "/vtadmin.VTAdmin/StopReplication",
2330            );
2331            let mut req = request.into_request();
2332            req.extensions_mut()
2333                .insert(GrpcMethod::new("vtadmin.VTAdmin", "StopReplication"));
2334            self.inner.unary(req, path, codec).await
2335        }
2336        /// TabletExternallyPromoted updates the metadata in a cluster's topology
2337        /// to acknowledge a shard primary change performed by an external tool
2338        /// (e.g. orchestrator*).
2339        ///
2340        /// See the Reparenting guide for more information:
2341        /// https://vitess.io/docs/user-guides/configuration-advanced/reparenting/#external-reparenting.
2342        ///
2343        /// * "orchestrator" here refers to external orchestrator, not the newer,
2344        /// Vitess-aware orchestrator, VTOrc.
2345        pub async fn tablet_externally_promoted(
2346            &mut self,
2347            request: impl tonic::IntoRequest<super::TabletExternallyPromotedRequest>,
2348        ) -> std::result::Result<
2349            tonic::Response<super::TabletExternallyPromotedResponse>,
2350            tonic::Status,
2351        > {
2352            self.inner
2353                .ready()
2354                .await
2355                .map_err(|e| {
2356                    tonic::Status::new(
2357                        tonic::Code::Unknown,
2358                        format!("Service was not ready: {}", e.into()),
2359                    )
2360                })?;
2361            let codec = tonic::codec::ProstCodec::default();
2362            let path = http::uri::PathAndQuery::from_static(
2363                "/vtadmin.VTAdmin/TabletExternallyPromoted",
2364            );
2365            let mut req = request.into_request();
2366            req.extensions_mut()
2367                .insert(GrpcMethod::new("vtadmin.VTAdmin", "TabletExternallyPromoted"));
2368            self.inner.unary(req, path, codec).await
2369        }
2370        /// Validate validates all nodes in a cluster that are reachable from the global replication graph,
2371        /// as well as all tablets in discoverable cells, are consistent
2372        pub async fn validate(
2373            &mut self,
2374            request: impl tonic::IntoRequest<super::ValidateRequest>,
2375        ) -> std::result::Result<
2376            tonic::Response<super::super::vtctldata::ValidateResponse>,
2377            tonic::Status,
2378        > {
2379            self.inner
2380                .ready()
2381                .await
2382                .map_err(|e| {
2383                    tonic::Status::new(
2384                        tonic::Code::Unknown,
2385                        format!("Service was not ready: {}", e.into()),
2386                    )
2387                })?;
2388            let codec = tonic::codec::ProstCodec::default();
2389            let path = http::uri::PathAndQuery::from_static("/vtadmin.VTAdmin/Validate");
2390            let mut req = request.into_request();
2391            req.extensions_mut().insert(GrpcMethod::new("vtadmin.VTAdmin", "Validate"));
2392            self.inner.unary(req, path, codec).await
2393        }
2394        /// ValidateKeyspace validates that all nodes reachable from the specified
2395        /// keyspace are consistent.
2396        pub async fn validate_keyspace(
2397            &mut self,
2398            request: impl tonic::IntoRequest<super::ValidateKeyspaceRequest>,
2399        ) -> std::result::Result<
2400            tonic::Response<super::super::vtctldata::ValidateKeyspaceResponse>,
2401            tonic::Status,
2402        > {
2403            self.inner
2404                .ready()
2405                .await
2406                .map_err(|e| {
2407                    tonic::Status::new(
2408                        tonic::Code::Unknown,
2409                        format!("Service was not ready: {}", e.into()),
2410                    )
2411                })?;
2412            let codec = tonic::codec::ProstCodec::default();
2413            let path = http::uri::PathAndQuery::from_static(
2414                "/vtadmin.VTAdmin/ValidateKeyspace",
2415            );
2416            let mut req = request.into_request();
2417            req.extensions_mut()
2418                .insert(GrpcMethod::new("vtadmin.VTAdmin", "ValidateKeyspace"));
2419            self.inner.unary(req, path, codec).await
2420        }
2421        /// ValidateSchemaKeyspace validates that the schema on the primary tablet
2422        /// for shard 0 matches the schema on all of the other tablets in the
2423        /// keyspace.
2424        pub async fn validate_schema_keyspace(
2425            &mut self,
2426            request: impl tonic::IntoRequest<super::ValidateSchemaKeyspaceRequest>,
2427        ) -> std::result::Result<
2428            tonic::Response<super::super::vtctldata::ValidateSchemaKeyspaceResponse>,
2429            tonic::Status,
2430        > {
2431            self.inner
2432                .ready()
2433                .await
2434                .map_err(|e| {
2435                    tonic::Status::new(
2436                        tonic::Code::Unknown,
2437                        format!("Service was not ready: {}", e.into()),
2438                    )
2439                })?;
2440            let codec = tonic::codec::ProstCodec::default();
2441            let path = http::uri::PathAndQuery::from_static(
2442                "/vtadmin.VTAdmin/ValidateSchemaKeyspace",
2443            );
2444            let mut req = request.into_request();
2445            req.extensions_mut()
2446                .insert(GrpcMethod::new("vtadmin.VTAdmin", "ValidateSchemaKeyspace"));
2447            self.inner.unary(req, path, codec).await
2448        }
2449        /// ValidateShard validates that that all nodes reachable from the specified shard are consistent.
2450        pub async fn validate_shard(
2451            &mut self,
2452            request: impl tonic::IntoRequest<super::ValidateShardRequest>,
2453        ) -> std::result::Result<
2454            tonic::Response<super::super::vtctldata::ValidateShardResponse>,
2455            tonic::Status,
2456        > {
2457            self.inner
2458                .ready()
2459                .await
2460                .map_err(|e| {
2461                    tonic::Status::new(
2462                        tonic::Code::Unknown,
2463                        format!("Service was not ready: {}", e.into()),
2464                    )
2465                })?;
2466            let codec = tonic::codec::ProstCodec::default();
2467            let path = http::uri::PathAndQuery::from_static(
2468                "/vtadmin.VTAdmin/ValidateShard",
2469            );
2470            let mut req = request.into_request();
2471            req.extensions_mut()
2472                .insert(GrpcMethod::new("vtadmin.VTAdmin", "ValidateShard"));
2473            self.inner.unary(req, path, codec).await
2474        }
2475        /// ValidateVersionKeyspace validates that the version on the primary of
2476        /// shard 0 matches all of the other tablets in the keyspace.
2477        pub async fn validate_version_keyspace(
2478            &mut self,
2479            request: impl tonic::IntoRequest<super::ValidateVersionKeyspaceRequest>,
2480        ) -> std::result::Result<
2481            tonic::Response<super::super::vtctldata::ValidateVersionKeyspaceResponse>,
2482            tonic::Status,
2483        > {
2484            self.inner
2485                .ready()
2486                .await
2487                .map_err(|e| {
2488                    tonic::Status::new(
2489                        tonic::Code::Unknown,
2490                        format!("Service was not ready: {}", e.into()),
2491                    )
2492                })?;
2493            let codec = tonic::codec::ProstCodec::default();
2494            let path = http::uri::PathAndQuery::from_static(
2495                "/vtadmin.VTAdmin/ValidateVersionKeyspace",
2496            );
2497            let mut req = request.into_request();
2498            req.extensions_mut()
2499                .insert(GrpcMethod::new("vtadmin.VTAdmin", "ValidateVersionKeyspace"));
2500            self.inner.unary(req, path, codec).await
2501        }
2502        /// ValidateVersionShard validates that the version on the primary matches all of the replicas.
2503        pub async fn validate_version_shard(
2504            &mut self,
2505            request: impl tonic::IntoRequest<super::ValidateVersionShardRequest>,
2506        ) -> std::result::Result<
2507            tonic::Response<super::super::vtctldata::ValidateVersionShardResponse>,
2508            tonic::Status,
2509        > {
2510            self.inner
2511                .ready()
2512                .await
2513                .map_err(|e| {
2514                    tonic::Status::new(
2515                        tonic::Code::Unknown,
2516                        format!("Service was not ready: {}", e.into()),
2517                    )
2518                })?;
2519            let codec = tonic::codec::ProstCodec::default();
2520            let path = http::uri::PathAndQuery::from_static(
2521                "/vtadmin.VTAdmin/ValidateVersionShard",
2522            );
2523            let mut req = request.into_request();
2524            req.extensions_mut()
2525                .insert(GrpcMethod::new("vtadmin.VTAdmin", "ValidateVersionShard"));
2526            self.inner.unary(req, path, codec).await
2527        }
2528        /// VTExplain provides information on how Vitess plans to execute a
2529        /// particular query.
2530        pub async fn vt_explain(
2531            &mut self,
2532            request: impl tonic::IntoRequest<super::VtExplainRequest>,
2533        ) -> std::result::Result<
2534            tonic::Response<super::VtExplainResponse>,
2535            tonic::Status,
2536        > {
2537            self.inner
2538                .ready()
2539                .await
2540                .map_err(|e| {
2541                    tonic::Status::new(
2542                        tonic::Code::Unknown,
2543                        format!("Service was not ready: {}", e.into()),
2544                    )
2545                })?;
2546            let codec = tonic::codec::ProstCodec::default();
2547            let path = http::uri::PathAndQuery::from_static(
2548                "/vtadmin.VTAdmin/VTExplain",
2549            );
2550            let mut req = request.into_request();
2551            req.extensions_mut().insert(GrpcMethod::new("vtadmin.VTAdmin", "VTExplain"));
2552            self.inner.unary(req, path, codec).await
2553        }
2554    }
2555}