risingwave_pb/
meta.rs

1// This file is @generated by prost-build.
2#[derive(prost_helpers::AnyPB)]
3#[derive(Clone, Copy, PartialEq, ::prost::Message)]
4pub struct GetTelemetryInfoRequest {}
5#[derive(prost_helpers::AnyPB)]
6#[derive(Clone, PartialEq, ::prost::Message)]
7pub struct TelemetryInfoResponse {
8    #[prost(string, optional, tag = "1")]
9    pub tracking_id: ::core::option::Option<::prost::alloc::string::String>,
10}
11#[derive(prost_helpers::AnyPB)]
12#[derive(Clone, Copy, PartialEq, ::prost::Message)]
13pub struct HeartbeatRequest {
14    #[prost(uint32, tag = "1", wrapper = "crate::id::WorkerId")]
15    pub node_id: crate::id::WorkerId,
16}
17#[derive(prost_helpers::AnyPB)]
18#[derive(Clone, PartialEq, ::prost::Message)]
19pub struct HeartbeatResponse {
20    #[prost(message, optional, tag = "1")]
21    pub status: ::core::option::Option<super::common::Status>,
22}
23/// Fragments of a Streaming Job.
24/// It's for all kinds of streaming jobs, and ideally should be called `StreamingJobFragments`.
25/// It's not the same as a storage table correlated with a `TableCatalog`.
26#[derive(prost_helpers::AnyPB)]
27#[derive(Clone, PartialEq, ::prost::Message)]
28pub struct TableFragments {
29    /// The id of the streaming job.
30    #[prost(uint32, tag = "1", wrapper = "crate::id::JobId")]
31    pub table_id: crate::id::JobId,
32    #[prost(enumeration = "table_fragments::State", tag = "2")]
33    pub state: i32,
34    #[prost(map = "uint32, message", tag = "3", wrapper = "crate::id::FragmentId")]
35    pub fragments: ::std::collections::HashMap<
36        crate::id::FragmentId,
37        table_fragments::Fragment,
38    >,
39    #[prost(map = "uint32, message", tag = "4", wrapper = "crate::id::ActorId")]
40    pub actor_status: ::std::collections::HashMap<
41        crate::id::ActorId,
42        table_fragments::ActorStatus,
43    >,
44    #[prost(message, optional, tag = "6")]
45    pub ctx: ::core::option::Option<super::stream_plan::StreamContext>,
46    #[prost(message, optional, tag = "7")]
47    pub parallelism: ::core::option::Option<TableParallelism>,
48    /// The max parallelism specified when the streaming job was created, i.e., expected vnode count.
49    ///
50    /// The reason for persisting this value is mainly to check if a parallelism change (via `ALTER
51    /// .. SET PARALLELISM`) is valid, so that the behavior can be consistent with the creation of
52    /// the streaming job.
53    ///
54    /// Note that the actual vnode count, denoted by `vnode_count` in `fragments`, may be different
55    /// from this value (see `StreamFragmentGraph.max_parallelism` for more details.). As a result,
56    /// checking the parallelism change with this value can be inaccurate in some cases. However,
57    /// when generating resizing plans, we still take the `vnode_count` of each fragment into account.
58    ///
59    /// Can be unset if the fragment is created in older versions where variable vnode count is not
60    /// supported, in which case a default value of 256 should be used.
61    #[prost(uint32, optional, tag = "10")]
62    pub max_parallelism: ::core::option::Option<u32>,
63    /// Actors of a materialize view, sink, or table can only be scheduled on nodes with matching node_label.
64    #[prost(string, tag = "8")]
65    pub node_label: ::prost::alloc::string::String,
66    /// If this is a materialized view: True if backfill is done, else false.
67    /// If this is a regular table: Always true.
68    #[prost(bool, tag = "9")]
69    pub backfill_done: bool,
70}
71/// Nested message and enum types in `TableFragments`.
72pub mod table_fragments {
73    /// Runtime information of an actor
74    #[derive(prost_helpers::AnyPB)]
75    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
76    pub struct ActorStatus {
77        /// Current on which worker
78        #[prost(message, optional, tag = "1")]
79        pub location: ::core::option::Option<super::super::common::ActorLocation>,
80    }
81    #[derive(prost_helpers::AnyPB)]
82    #[derive(Clone, PartialEq, ::prost::Message)]
83    pub struct Fragment {
84        #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
85        pub fragment_id: crate::id::FragmentId,
86        /// Bitwise-OR of FragmentTypeFlags
87        #[prost(uint32, tag = "2")]
88        pub fragment_type_mask: u32,
89        #[prost(enumeration = "fragment::FragmentDistributionType", tag = "3")]
90        pub distribution_type: i32,
91        #[prost(message, repeated, tag = "4")]
92        pub actors: ::prost::alloc::vec::Vec<super::super::stream_plan::StreamActor>,
93        #[prost(uint32, repeated, tag = "6", wrapper = "crate::id::TableId")]
94        pub state_table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
95        /// Note that this can be derived backwards from the upstream actors of the Actor held by the Fragment,
96        /// but in some scenarios (e.g. Scaling) it will lead to a lot of duplicate code,
97        /// so we pre-generate and store it here, this member will only be initialized when creating the Fragment
98        /// and modified when creating the mv-on-mv
99        #[prost(uint32, repeated, tag = "7", wrapper = "crate::id::FragmentId")]
100        pub upstream_fragment_ids: ::prost::alloc::vec::Vec<crate::id::FragmentId>,
101        /// Total vnode count of the fragment (then all internal tables).
102        /// Duplicated from the length of the vnode bitmap in any actor of the fragment.
103        ///
104        /// Can be unset if the fragment is created in older versions where variable vnode count is not
105        /// supported, in which case a default value of 256 (or 1 for singleton) should be used.
106        /// Use `VnodeCountCompat::vnode_count` to access it.
107        #[prost(uint32, optional, tag = "8")]
108        pub maybe_vnode_count: ::core::option::Option<u32>,
109        #[prost(message, optional, tag = "9")]
110        pub nodes: ::core::option::Option<super::super::stream_plan::StreamNode>,
111    }
112    /// Nested message and enum types in `Fragment`.
113    pub mod fragment {
114        #[derive(prost_helpers::AnyPB)]
115        #[derive(
116            Clone,
117            Copy,
118            Debug,
119            PartialEq,
120            Eq,
121            Hash,
122            PartialOrd,
123            Ord,
124            ::prost::Enumeration
125        )]
126        #[repr(i32)]
127        pub enum FragmentDistributionType {
128            Unspecified = 0,
129            Single = 1,
130            Hash = 2,
131        }
132        impl FragmentDistributionType {
133            /// String value of the enum field names used in the ProtoBuf definition.
134            ///
135            /// The values are not transformed in any way and thus are considered stable
136            /// (if the ProtoBuf definition does not change) and safe for programmatic use.
137            pub fn as_str_name(&self) -> &'static str {
138                match self {
139                    Self::Unspecified => "UNSPECIFIED",
140                    Self::Single => "SINGLE",
141                    Self::Hash => "HASH",
142                }
143            }
144            /// Creates an enum from field names used in the ProtoBuf definition.
145            pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
146                match value {
147                    "UNSPECIFIED" => Some(Self::Unspecified),
148                    "SINGLE" => Some(Self::Single),
149                    "HASH" => Some(Self::Hash),
150                    _ => None,
151                }
152            }
153        }
154    }
155    /// The state of the fragments of this table
156    #[derive(prost_helpers::AnyPB)]
157    #[derive(
158        Clone,
159        Copy,
160        Debug,
161        PartialEq,
162        Eq,
163        Hash,
164        PartialOrd,
165        Ord,
166        ::prost::Enumeration
167    )]
168    #[repr(i32)]
169    pub enum State {
170        Unspecified = 0,
171        /// The streaming job is initial.
172        Initial = 1,
173        /// The streaming job is creating.
174        Creating = 2,
175        /// The streaming job has been created.
176        Created = 3,
177    }
178    impl State {
179        /// String value of the enum field names used in the ProtoBuf definition.
180        ///
181        /// The values are not transformed in any way and thus are considered stable
182        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
183        pub fn as_str_name(&self) -> &'static str {
184            match self {
185                Self::Unspecified => "UNSPECIFIED",
186                Self::Initial => "INITIAL",
187                Self::Creating => "CREATING",
188                Self::Created => "CREATED",
189            }
190        }
191        /// Creates an enum from field names used in the ProtoBuf definition.
192        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
193            match value {
194                "UNSPECIFIED" => Some(Self::Unspecified),
195                "INITIAL" => Some(Self::Initial),
196                "CREATING" => Some(Self::Creating),
197                "CREATED" => Some(Self::Created),
198                _ => None,
199            }
200        }
201    }
202}
203/// / Worker slot mapping with fragment id, used for notification.
204#[derive(prost_helpers::AnyPB)]
205#[derive(Clone, PartialEq, ::prost::Message)]
206pub struct FragmentWorkerSlotMapping {
207    #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
208    pub fragment_id: crate::id::FragmentId,
209    #[prost(message, optional, tag = "2")]
210    pub mapping: ::core::option::Option<super::common::WorkerSlotMapping>,
211}
212#[derive(prost_helpers::AnyPB)]
213#[derive(Clone, PartialEq, ::prost::Message)]
214pub struct FragmentWorkerSlotMappings {
215    #[prost(message, repeated, tag = "1")]
216    pub mappings: ::prost::alloc::vec::Vec<FragmentWorkerSlotMapping>,
217}
218/// TODO: remove this when dashboard refactored.
219#[derive(prost_helpers::AnyPB)]
220#[derive(Clone, PartialEq, ::prost::Message)]
221pub struct ActorLocation {
222    #[prost(message, optional, tag = "1")]
223    pub node: ::core::option::Option<super::common::WorkerNode>,
224    #[prost(message, repeated, tag = "2")]
225    pub actors: ::prost::alloc::vec::Vec<super::stream_plan::StreamActor>,
226}
227#[derive(prost_helpers::AnyPB)]
228#[derive(Clone, PartialEq, ::prost::Message)]
229pub struct MigrationPlan {
230    /// map<src_worker_slot_id, dst_worker_slot_id>, the plan indicates that the actors will be migrated from old worker_slot to the new one.
231    #[prost(map = "uint64, uint64", tag = "2")]
232    pub worker_slot_migration_plan: ::std::collections::HashMap<u64, u64>,
233}
234#[derive(prost_helpers::AnyPB)]
235#[derive(Clone, Copy, PartialEq, ::prost::Message)]
236pub struct FlushRequest {
237    #[prost(uint32, tag = "1", wrapper = "crate::id::DatabaseId")]
238    pub database_id: crate::id::DatabaseId,
239}
240#[derive(prost_helpers::AnyPB)]
241#[derive(Clone, PartialEq, ::prost::Message)]
242pub struct FlushResponse {
243    #[prost(message, optional, tag = "1")]
244    pub status: ::core::option::Option<super::common::Status>,
245    #[prost(uint64, tag = "2")]
246    pub hummock_version_id: u64,
247}
248#[derive(prost_helpers::AnyPB)]
249#[derive(Clone, Copy, PartialEq, ::prost::Message)]
250pub struct PauseRequest {}
251#[derive(prost_helpers::AnyPB)]
252#[derive(Clone, Copy, PartialEq, ::prost::Message)]
253pub struct PauseResponse {}
254#[derive(prost_helpers::AnyPB)]
255#[derive(Clone, Copy, PartialEq, ::prost::Message)]
256pub struct ResumeRequest {}
257#[derive(prost_helpers::AnyPB)]
258#[derive(Clone, Copy, PartialEq, ::prost::Message)]
259pub struct ResumeResponse {}
260#[derive(prost_helpers::AnyPB)]
261#[derive(Clone, Copy, PartialEq, ::prost::Message)]
262pub struct RefreshRequest {
263    #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
264    pub table_id: crate::id::TableId,
265    #[prost(uint32, tag = "2")]
266    pub associated_source_id: u32,
267}
268#[derive(prost_helpers::AnyPB)]
269#[derive(Clone, PartialEq, ::prost::Message)]
270pub struct RefreshResponse {
271    #[prost(message, optional, tag = "1")]
272    pub status: ::core::option::Option<super::common::Status>,
273}
274#[derive(prost_helpers::AnyPB)]
275#[derive(Clone, PartialEq, ::prost::Message)]
276pub struct CancelCreatingJobsRequest {
277    #[prost(oneof = "cancel_creating_jobs_request::Jobs", tags = "1, 2")]
278    pub jobs: ::core::option::Option<cancel_creating_jobs_request::Jobs>,
279}
280/// Nested message and enum types in `CancelCreatingJobsRequest`.
281pub mod cancel_creating_jobs_request {
282    #[derive(prost_helpers::AnyPB)]
283    #[derive(Clone, PartialEq, ::prost::Message)]
284    pub struct CreatingJobInfo {
285        #[prost(uint32, tag = "1", wrapper = "crate::id::DatabaseId")]
286        pub database_id: crate::id::DatabaseId,
287        #[prost(uint32, tag = "2", wrapper = "crate::id::SchemaId")]
288        pub schema_id: crate::id::SchemaId,
289        #[prost(string, tag = "3")]
290        pub name: ::prost::alloc::string::String,
291    }
292    #[derive(prost_helpers::AnyPB)]
293    #[derive(Clone, PartialEq, ::prost::Message)]
294    pub struct CreatingJobInfos {
295        #[prost(message, repeated, tag = "1")]
296        pub infos: ::prost::alloc::vec::Vec<CreatingJobInfo>,
297    }
298    #[derive(prost_helpers::AnyPB)]
299    #[derive(Clone, PartialEq, ::prost::Message)]
300    pub struct CreatingJobIds {
301        #[prost(uint32, repeated, tag = "1", wrapper = "crate::id::JobId")]
302        pub job_ids: ::prost::alloc::vec::Vec<crate::id::JobId>,
303    }
304    #[derive(prost_helpers::AnyPB)]
305    #[derive(Clone, PartialEq, ::prost::Oneof)]
306    pub enum Jobs {
307        #[prost(message, tag = "1")]
308        Infos(CreatingJobInfos),
309        #[prost(message, tag = "2")]
310        Ids(CreatingJobIds),
311    }
312}
313#[derive(prost_helpers::AnyPB)]
314#[derive(Clone, PartialEq, ::prost::Message)]
315pub struct CancelCreatingJobsResponse {
316    #[prost(message, optional, tag = "1")]
317    pub status: ::core::option::Option<super::common::Status>,
318    #[prost(uint32, repeated, tag = "2")]
319    pub canceled_jobs: ::prost::alloc::vec::Vec<u32>,
320}
321#[derive(prost_helpers::AnyPB)]
322#[derive(Clone, PartialEq, ::prost::Message)]
323pub struct ListTableFragmentsRequest {
324    #[prost(uint32, repeated, tag = "1", wrapper = "crate::id::JobId")]
325    pub table_ids: ::prost::alloc::vec::Vec<crate::id::JobId>,
326}
327#[derive(prost_helpers::AnyPB)]
328#[derive(Clone, PartialEq, ::prost::Message)]
329pub struct ListTableFragmentsResponse {
330    #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::JobId")]
331    pub table_fragments: ::std::collections::HashMap<
332        crate::id::JobId,
333        list_table_fragments_response::TableFragmentInfo,
334    >,
335}
336/// Nested message and enum types in `ListTableFragmentsResponse`.
337pub mod list_table_fragments_response {
338    #[derive(prost_helpers::AnyPB)]
339    #[derive(Clone, PartialEq, ::prost::Message)]
340    pub struct ActorInfo {
341        #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
342        pub id: crate::id::ActorId,
343        #[prost(message, optional, tag = "2")]
344        pub node: ::core::option::Option<super::super::stream_plan::StreamNode>,
345        #[prost(message, repeated, tag = "3")]
346        pub dispatcher: ::prost::alloc::vec::Vec<super::super::stream_plan::Dispatcher>,
347    }
348    #[derive(prost_helpers::AnyPB)]
349    #[derive(Clone, PartialEq, ::prost::Message)]
350    pub struct FragmentInfo {
351        #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
352        pub id: crate::id::FragmentId,
353        #[prost(message, repeated, tag = "4")]
354        pub actors: ::prost::alloc::vec::Vec<ActorInfo>,
355    }
356    #[derive(prost_helpers::AnyPB)]
357    #[derive(Clone, PartialEq, ::prost::Message)]
358    pub struct TableFragmentInfo {
359        #[prost(message, repeated, tag = "1")]
360        pub fragments: ::prost::alloc::vec::Vec<FragmentInfo>,
361        #[prost(message, optional, tag = "2")]
362        pub ctx: ::core::option::Option<super::super::stream_plan::StreamContext>,
363    }
364}
365#[derive(prost_helpers::AnyPB)]
366#[derive(Clone, Copy, PartialEq, ::prost::Message)]
367pub struct GetFragmentByIdRequest {
368    #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
369    pub fragment_id: crate::id::FragmentId,
370}
371#[derive(prost_helpers::AnyPB)]
372#[derive(Clone, PartialEq, ::prost::Message)]
373pub struct GetFragmentByIdResponse {
374    #[prost(message, optional, tag = "1")]
375    pub distribution: ::core::option::Option<FragmentDistribution>,
376}
377#[derive(prost_helpers::AnyPB)]
378#[derive(Clone, Copy, PartialEq, ::prost::Message)]
379pub struct GetFragmentVnodesRequest {
380    #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
381    pub fragment_id: crate::id::FragmentId,
382}
383#[derive(prost_helpers::AnyPB)]
384#[derive(Clone, PartialEq, ::prost::Message)]
385pub struct GetFragmentVnodesResponse {
386    #[prost(message, repeated, tag = "1")]
387    pub actor_vnodes: ::prost::alloc::vec::Vec<
388        get_fragment_vnodes_response::ActorVnodes,
389    >,
390}
391/// Nested message and enum types in `GetFragmentVnodesResponse`.
392pub mod get_fragment_vnodes_response {
393    #[derive(prost_helpers::AnyPB)]
394    #[derive(Clone, PartialEq, ::prost::Message)]
395    pub struct ActorVnodes {
396        #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
397        pub actor_id: crate::id::ActorId,
398        #[prost(uint32, repeated, tag = "2")]
399        pub vnode_indices: ::prost::alloc::vec::Vec<u32>,
400    }
401}
402#[derive(prost_helpers::AnyPB)]
403#[derive(Clone, Copy, PartialEq, ::prost::Message)]
404pub struct GetActorVnodesRequest {
405    #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
406    pub actor_id: crate::id::ActorId,
407}
408#[derive(prost_helpers::AnyPB)]
409#[derive(Clone, PartialEq, ::prost::Message)]
410pub struct GetActorVnodesResponse {
411    #[prost(uint32, repeated, tag = "1")]
412    pub vnode_indices: ::prost::alloc::vec::Vec<u32>,
413}
414#[derive(prost_helpers::AnyPB)]
415#[derive(Clone, Copy, PartialEq, ::prost::Message)]
416pub struct ListStreamingJobStatesRequest {}
417#[derive(prost_helpers::AnyPB)]
418#[derive(Clone, PartialEq, ::prost::Message)]
419pub struct ListStreamingJobStatesResponse {
420    #[prost(message, repeated, tag = "1")]
421    pub states: ::prost::alloc::vec::Vec<
422        list_streaming_job_states_response::StreamingJobState,
423    >,
424}
425/// Nested message and enum types in `ListStreamingJobStatesResponse`.
426pub mod list_streaming_job_states_response {
427    #[derive(prost_helpers::AnyPB)]
428    #[derive(Clone, PartialEq, ::prost::Message)]
429    pub struct StreamingJobState {
430        #[prost(uint32, tag = "1", wrapper = "crate::id::JobId")]
431        pub table_id: crate::id::JobId,
432        #[prost(enumeration = "super::table_fragments::State", tag = "2")]
433        pub state: i32,
434        #[prost(message, optional, tag = "3")]
435        pub parallelism: ::core::option::Option<super::TableParallelism>,
436        #[prost(uint32, tag = "4")]
437        pub max_parallelism: u32,
438        #[prost(string, tag = "5")]
439        pub name: ::prost::alloc::string::String,
440        #[prost(string, tag = "6")]
441        pub resource_group: ::prost::alloc::string::String,
442        #[prost(uint32, tag = "7", wrapper = "crate::id::DatabaseId")]
443        pub database_id: crate::id::DatabaseId,
444        #[prost(uint32, tag = "8", wrapper = "crate::id::SchemaId")]
445        pub schema_id: crate::id::SchemaId,
446    }
447}
448#[derive(prost_helpers::AnyPB)]
449#[derive(Clone, Copy, PartialEq, ::prost::Message)]
450pub struct ListFragmentDistributionRequest {}
451#[derive(prost_helpers::AnyPB)]
452#[derive(Clone, PartialEq, ::prost::Message)]
453pub struct FragmentDistribution {
454    #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
455    pub fragment_id: crate::id::FragmentId,
456    #[prost(uint32, tag = "2", wrapper = "crate::id::JobId")]
457    pub table_id: crate::id::JobId,
458    #[prost(
459        enumeration = "table_fragments::fragment::FragmentDistributionType",
460        tag = "3"
461    )]
462    pub distribution_type: i32,
463    #[prost(uint32, repeated, tag = "4", wrapper = "crate::id::TableId")]
464    pub state_table_ids: ::prost::alloc::vec::Vec<crate::id::TableId>,
465    #[prost(uint32, repeated, tag = "5", wrapper = "crate::id::FragmentId")]
466    pub upstream_fragment_ids: ::prost::alloc::vec::Vec<crate::id::FragmentId>,
467    #[prost(uint32, tag = "6")]
468    pub fragment_type_mask: u32,
469    #[prost(uint32, tag = "7")]
470    pub parallelism: u32,
471    #[prost(uint32, tag = "8")]
472    pub vnode_count: u32,
473    #[prost(message, optional, tag = "9")]
474    pub node: ::core::option::Option<super::stream_plan::StreamNode>,
475    #[prost(string, tag = "10")]
476    pub parallelism_policy: ::prost::alloc::string::String,
477}
478#[derive(prost_helpers::AnyPB)]
479#[derive(Clone, PartialEq, ::prost::Message)]
480pub struct ListFragmentDistributionResponse {
481    #[prost(message, repeated, tag = "1")]
482    pub distributions: ::prost::alloc::vec::Vec<FragmentDistribution>,
483}
484/// List fragments containing stream scans, and corresponding
485/// to a streaming job in creation.
486#[derive(prost_helpers::AnyPB)]
487#[derive(Clone, Copy, PartialEq, ::prost::Message)]
488pub struct ListCreatingFragmentDistributionRequest {}
489/// List fragments containing stream scans, and corresponding
490/// to a streaming job in creation.
491#[derive(prost_helpers::AnyPB)]
492#[derive(Clone, PartialEq, ::prost::Message)]
493pub struct ListCreatingFragmentDistributionResponse {
494    #[prost(message, repeated, tag = "1")]
495    pub distributions: ::prost::alloc::vec::Vec<FragmentDistribution>,
496}
497#[derive(prost_helpers::AnyPB)]
498#[derive(Clone, Copy, PartialEq, ::prost::Message)]
499pub struct ListActorStatesRequest {}
500#[derive(prost_helpers::AnyPB)]
501#[derive(Clone, PartialEq, ::prost::Message)]
502pub struct ListActorStatesResponse {
503    #[prost(message, repeated, tag = "1")]
504    pub states: ::prost::alloc::vec::Vec<list_actor_states_response::ActorState>,
505}
506/// Nested message and enum types in `ListActorStatesResponse`.
507pub mod list_actor_states_response {
508    #[derive(prost_helpers::AnyPB)]
509    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
510    pub struct ActorState {
511        #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
512        pub actor_id: crate::id::ActorId,
513        #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
514        pub fragment_id: crate::id::FragmentId,
515        #[prost(uint32, tag = "5", wrapper = "crate::id::WorkerId")]
516        pub worker_id: crate::id::WorkerId,
517    }
518}
519#[derive(prost_helpers::AnyPB)]
520#[derive(Clone, Copy, PartialEq, ::prost::Message)]
521pub struct ListActorSplitsRequest {}
522#[derive(prost_helpers::AnyPB)]
523#[derive(Clone, PartialEq, ::prost::Message)]
524pub struct ListActorSplitsResponse {
525    #[prost(message, repeated, tag = "1")]
526    pub actor_splits: ::prost::alloc::vec::Vec<list_actor_splits_response::ActorSplit>,
527}
528/// Nested message and enum types in `ListActorSplitsResponse`.
529pub mod list_actor_splits_response {
530    #[derive(prost_helpers::AnyPB)]
531    #[derive(Clone, PartialEq, ::prost::Message)]
532    pub struct ActorSplit {
533        #[prost(uint32, tag = "1", wrapper = "crate::id::ActorId")]
534        pub actor_id: crate::id::ActorId,
535        #[prost(uint32, tag = "2", wrapper = "crate::id::FragmentId")]
536        pub fragment_id: crate::id::FragmentId,
537        #[prost(uint32, tag = "3")]
538        pub source_id: u32,
539        #[prost(string, tag = "4")]
540        pub split_id: ::prost::alloc::string::String,
541        #[prost(enumeration = "FragmentType", tag = "5")]
542        pub fragment_type: i32,
543    }
544    #[derive(prost_helpers::AnyPB)]
545    #[derive(
546        Clone,
547        Copy,
548        Debug,
549        PartialEq,
550        Eq,
551        Hash,
552        PartialOrd,
553        Ord,
554        ::prost::Enumeration
555    )]
556    #[repr(i32)]
557    pub enum FragmentType {
558        Unspecified = 0,
559        NonSharedSource = 1,
560        SharedSource = 2,
561        SharedSourceBackfill = 3,
562    }
563    impl FragmentType {
564        /// String value of the enum field names used in the ProtoBuf definition.
565        ///
566        /// The values are not transformed in any way and thus are considered stable
567        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
568        pub fn as_str_name(&self) -> &'static str {
569            match self {
570                Self::Unspecified => "UNSPECIFIED",
571                Self::NonSharedSource => "NON_SHARED_SOURCE",
572                Self::SharedSource => "SHARED_SOURCE",
573                Self::SharedSourceBackfill => "SHARED_SOURCE_BACKFILL",
574            }
575        }
576        /// Creates an enum from field names used in the ProtoBuf definition.
577        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
578            match value {
579                "UNSPECIFIED" => Some(Self::Unspecified),
580                "NON_SHARED_SOURCE" => Some(Self::NonSharedSource),
581                "SHARED_SOURCE" => Some(Self::SharedSource),
582                "SHARED_SOURCE_BACKFILL" => Some(Self::SharedSourceBackfill),
583                _ => None,
584            }
585        }
586    }
587}
588#[derive(prost_helpers::AnyPB)]
589#[derive(Clone, Copy, PartialEq, ::prost::Message)]
590pub struct ListObjectDependenciesRequest {}
591#[derive(prost_helpers::AnyPB)]
592#[derive(Clone, PartialEq, ::prost::Message)]
593pub struct ListObjectDependenciesResponse {
594    #[prost(message, repeated, tag = "1")]
595    pub dependencies: ::prost::alloc::vec::Vec<
596        list_object_dependencies_response::ObjectDependencies,
597    >,
598}
599/// Nested message and enum types in `ListObjectDependenciesResponse`.
600pub mod list_object_dependencies_response {
601    #[derive(prost_helpers::AnyPB)]
602    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
603    pub struct ObjectDependencies {
604        #[prost(uint32, tag = "1")]
605        pub object_id: u32,
606        #[prost(uint32, tag = "2")]
607        pub referenced_object_id: u32,
608    }
609}
610#[derive(prost_helpers::AnyPB)]
611#[derive(Clone, Copy, PartialEq, ::prost::Message)]
612pub struct ApplyThrottleRequest {
613    #[prost(enumeration = "ThrottleTarget", tag = "1")]
614    pub kind: i32,
615    #[prost(uint32, tag = "2")]
616    pub id: u32,
617    #[prost(uint32, optional, tag = "3")]
618    pub rate: ::core::option::Option<u32>,
619}
620#[derive(prost_helpers::AnyPB)]
621#[derive(Clone, PartialEq, ::prost::Message)]
622pub struct ApplyThrottleResponse {
623    #[prost(message, optional, tag = "1")]
624    pub status: ::core::option::Option<super::common::Status>,
625}
626#[derive(prost_helpers::AnyPB)]
627#[derive(Clone, Copy, PartialEq, ::prost::Message)]
628pub struct RecoverRequest {}
629#[derive(prost_helpers::AnyPB)]
630#[derive(Clone, Copy, PartialEq, ::prost::Message)]
631pub struct RecoverResponse {}
632#[derive(prost_helpers::AnyPB)]
633#[derive(Clone, PartialEq, ::prost::Message)]
634pub struct AlterConnectorPropsRequest {
635    #[prost(uint32, tag = "1")]
636    pub object_id: u32,
637    #[prost(map = "string, string", tag = "2")]
638    pub changed_props: ::std::collections::HashMap<
639        ::prost::alloc::string::String,
640        ::prost::alloc::string::String,
641    >,
642    #[prost(map = "string, message", tag = "3")]
643    pub changed_secret_refs: ::std::collections::HashMap<
644        ::prost::alloc::string::String,
645        super::secret::SecretRef,
646    >,
647    #[prost(uint32, optional, tag = "4")]
648    pub connector_conn_ref: ::core::option::Option<u32>,
649    #[prost(
650        enumeration = "alter_connector_props_request::AlterConnectorPropsObject",
651        tag = "5"
652    )]
653    pub object_type: i32,
654    #[prost(oneof = "alter_connector_props_request::ExtraOptions", tags = "6")]
655    pub extra_options: ::core::option::Option<
656        alter_connector_props_request::ExtraOptions,
657    >,
658}
659/// Nested message and enum types in `AlterConnectorPropsRequest`.
660pub mod alter_connector_props_request {
661    #[derive(prost_helpers::AnyPB)]
662    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
663    pub struct AlterIcebergTableIds {
664        #[prost(int32, tag = "1")]
665        pub source_id: i32,
666        #[prost(uint32, tag = "2", wrapper = "crate::id::SinkId")]
667        pub sink_id: crate::id::SinkId,
668    }
669    #[derive(prost_helpers::AnyPB)]
670    #[derive(
671        Clone,
672        Copy,
673        Debug,
674        PartialEq,
675        Eq,
676        Hash,
677        PartialOrd,
678        Ord,
679        ::prost::Enumeration
680    )]
681    #[repr(i32)]
682    pub enum AlterConnectorPropsObject {
683        Unspecified = 0,
684        Source = 1,
685        Sink = 2,
686        Connection = 3,
687        IcebergTable = 4,
688    }
689    impl AlterConnectorPropsObject {
690        /// String value of the enum field names used in the ProtoBuf definition.
691        ///
692        /// The values are not transformed in any way and thus are considered stable
693        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
694        pub fn as_str_name(&self) -> &'static str {
695            match self {
696                Self::Unspecified => "UNSPECIFIED",
697                Self::Source => "SOURCE",
698                Self::Sink => "SINK",
699                Self::Connection => "CONNECTION",
700                Self::IcebergTable => "ICEBERG_TABLE",
701            }
702        }
703        /// Creates an enum from field names used in the ProtoBuf definition.
704        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
705            match value {
706                "UNSPECIFIED" => Some(Self::Unspecified),
707                "SOURCE" => Some(Self::Source),
708                "SINK" => Some(Self::Sink),
709                "CONNECTION" => Some(Self::Connection),
710                "ICEBERG_TABLE" => Some(Self::IcebergTable),
711                _ => None,
712            }
713        }
714    }
715    #[derive(prost_helpers::AnyPB)]
716    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
717    pub enum ExtraOptions {
718        #[prost(message, tag = "6")]
719        AlterIcebergTableIds(AlterIcebergTableIds),
720    }
721}
722#[derive(prost_helpers::AnyPB)]
723#[derive(Clone, Copy, PartialEq, ::prost::Message)]
724pub struct AlterConnectorPropsResponse {}
725#[derive(prost_helpers::AnyPB)]
726#[derive(Clone, Copy, PartialEq, ::prost::Message)]
727pub struct ListCdcProgressRequest {}
728#[derive(prost_helpers::AnyPB)]
729#[derive(Clone, PartialEq, ::prost::Message)]
730pub struct ListCdcProgressResponse {
731    #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::JobId")]
732    pub cdc_progress: ::std::collections::HashMap<
733        crate::id::JobId,
734        list_cdc_progress_response::CdcProgress,
735    >,
736}
737/// Nested message and enum types in `ListCdcProgressResponse`.
738pub mod list_cdc_progress_response {
739    #[derive(prost_helpers::AnyPB)]
740    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
741    pub struct CdcProgress {
742        #[prost(uint64, tag = "1")]
743        pub split_total_count: u64,
744        #[prost(uint64, tag = "2")]
745        pub split_backfilled_count: u64,
746        #[prost(uint64, tag = "3")]
747        pub split_completed_count: u64,
748    }
749}
750/// Below for cluster service.
751#[derive(prost_helpers::AnyPB)]
752#[derive(Clone, PartialEq, ::prost::Message)]
753pub struct AddWorkerNodeRequest {
754    #[prost(enumeration = "super::common::WorkerType", tag = "1")]
755    pub worker_type: i32,
756    #[prost(message, optional, tag = "2")]
757    pub host: ::core::option::Option<super::common::HostAddress>,
758    #[prost(message, optional, tag = "5")]
759    pub resource: ::core::option::Option<super::common::worker_node::Resource>,
760    #[prost(message, optional, tag = "6")]
761    pub property: ::core::option::Option<super::common::worker_node::Property>,
762}
763#[derive(prost_helpers::AnyPB)]
764#[derive(Clone, PartialEq, ::prost::Message)]
765pub struct AddWorkerNodeResponse {
766    #[prost(uint32, optional, tag = "2", wrapper = "crate::id::WorkerId")]
767    pub node_id: ::core::option::Option<crate::id::WorkerId>,
768    #[prost(string, tag = "4")]
769    pub cluster_id: ::prost::alloc::string::String,
770}
771#[derive(prost_helpers::AnyPB)]
772#[derive(Clone, PartialEq, ::prost::Message)]
773pub struct ActivateWorkerNodeRequest {
774    #[prost(message, optional, tag = "1")]
775    pub host: ::core::option::Option<super::common::HostAddress>,
776    #[prost(uint32, tag = "2", wrapper = "crate::id::WorkerId")]
777    pub node_id: crate::id::WorkerId,
778}
779#[derive(prost_helpers::AnyPB)]
780#[derive(Clone, PartialEq, ::prost::Message)]
781pub struct ActivateWorkerNodeResponse {
782    #[prost(message, optional, tag = "1")]
783    pub status: ::core::option::Option<super::common::Status>,
784}
785#[derive(prost_helpers::AnyPB)]
786#[derive(Clone, PartialEq, ::prost::Message)]
787pub struct DeleteWorkerNodeRequest {
788    #[prost(message, optional, tag = "1")]
789    pub host: ::core::option::Option<super::common::HostAddress>,
790}
791#[derive(prost_helpers::AnyPB)]
792#[derive(Clone, PartialEq, ::prost::Message)]
793pub struct DeleteWorkerNodeResponse {
794    #[prost(message, optional, tag = "1")]
795    pub status: ::core::option::Option<super::common::Status>,
796}
797/// Mark CN as schedulable or as unschedulable
798#[derive(prost_helpers::AnyPB)]
799#[derive(Clone, PartialEq, ::prost::Message)]
800pub struct UpdateWorkerNodeSchedulabilityRequest {
801    #[prost(uint32, repeated, tag = "1", wrapper = "crate::id::WorkerId")]
802    pub worker_ids: ::prost::alloc::vec::Vec<crate::id::WorkerId>,
803    #[prost(
804        enumeration = "update_worker_node_schedulability_request::Schedulability",
805        tag = "2"
806    )]
807    pub schedulability: i32,
808}
809/// Nested message and enum types in `UpdateWorkerNodeSchedulabilityRequest`.
810pub mod update_worker_node_schedulability_request {
811    #[derive(prost_helpers::AnyPB)]
812    #[derive(
813        Clone,
814        Copy,
815        Debug,
816        PartialEq,
817        Eq,
818        Hash,
819        PartialOrd,
820        Ord,
821        ::prost::Enumeration
822    )]
823    #[repr(i32)]
824    pub enum Schedulability {
825        Unspecified = 0,
826        Schedulable = 1,
827        Unschedulable = 2,
828    }
829    impl Schedulability {
830        /// String value of the enum field names used in the ProtoBuf definition.
831        ///
832        /// The values are not transformed in any way and thus are considered stable
833        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
834        pub fn as_str_name(&self) -> &'static str {
835            match self {
836                Self::Unspecified => "UNSPECIFIED",
837                Self::Schedulable => "SCHEDULABLE",
838                Self::Unschedulable => "UNSCHEDULABLE",
839            }
840        }
841        /// Creates an enum from field names used in the ProtoBuf definition.
842        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
843            match value {
844                "UNSPECIFIED" => Some(Self::Unspecified),
845                "SCHEDULABLE" => Some(Self::Schedulable),
846                "UNSCHEDULABLE" => Some(Self::Unschedulable),
847                _ => None,
848            }
849        }
850    }
851}
852#[derive(prost_helpers::AnyPB)]
853#[derive(Clone, PartialEq, ::prost::Message)]
854pub struct UpdateWorkerNodeSchedulabilityResponse {
855    #[prost(message, optional, tag = "1")]
856    pub status: ::core::option::Option<super::common::Status>,
857}
858#[derive(prost_helpers::AnyPB)]
859#[derive(Clone, Copy, PartialEq, ::prost::Message)]
860pub struct ListAllNodesRequest {
861    #[prost(enumeration = "super::common::WorkerType", optional, tag = "1")]
862    pub worker_type: ::core::option::Option<i32>,
863    /// Whether to include nodes still starting
864    #[prost(bool, tag = "2")]
865    pub include_starting_nodes: bool,
866}
867#[derive(prost_helpers::AnyPB)]
868#[derive(Clone, PartialEq, ::prost::Message)]
869pub struct ListAllNodesResponse {
870    #[prost(message, optional, tag = "1")]
871    pub status: ::core::option::Option<super::common::Status>,
872    #[prost(message, repeated, tag = "2")]
873    pub nodes: ::prost::alloc::vec::Vec<super::common::WorkerNode>,
874}
875#[derive(prost_helpers::AnyPB)]
876#[derive(Clone, Copy, PartialEq, ::prost::Message)]
877pub struct GetClusterRecoveryStatusRequest {}
878#[derive(prost_helpers::AnyPB)]
879#[derive(Clone, Copy, PartialEq, ::prost::Message)]
880pub struct GetClusterRecoveryStatusResponse {
881    #[prost(enumeration = "RecoveryStatus", tag = "1")]
882    pub status: i32,
883}
884#[derive(prost_helpers::AnyPB)]
885#[derive(Clone, Copy, PartialEq, ::prost::Message)]
886pub struct GetMetaStoreInfoRequest {}
887#[derive(prost_helpers::AnyPB)]
888#[derive(Clone, PartialEq, ::prost::Message)]
889pub struct GetMetaStoreInfoResponse {
890    #[prost(string, tag = "1")]
891    pub meta_store_endpoint: ::prost::alloc::string::String,
892}
893/// Below for notification service.
894#[derive(prost_helpers::AnyPB)]
895#[derive(Clone, PartialEq, ::prost::Message)]
896pub struct SubscribeRequest {
897    #[prost(enumeration = "SubscribeType", tag = "1")]
898    pub subscribe_type: i32,
899    #[prost(message, optional, tag = "2")]
900    pub host: ::core::option::Option<super::common::HostAddress>,
901    #[prost(uint32, tag = "3", wrapper = "crate::id::WorkerId")]
902    pub worker_id: crate::id::WorkerId,
903}
904#[derive(prost_helpers::AnyPB)]
905#[derive(Clone, PartialEq, ::prost::Message)]
906pub struct MetaSnapshot {
907    #[prost(message, repeated, tag = "1")]
908    pub databases: ::prost::alloc::vec::Vec<super::catalog::Database>,
909    #[prost(message, repeated, tag = "2")]
910    pub schemas: ::prost::alloc::vec::Vec<super::catalog::Schema>,
911    #[prost(message, repeated, tag = "3")]
912    pub sources: ::prost::alloc::vec::Vec<super::catalog::Source>,
913    #[prost(message, repeated, tag = "4")]
914    pub sinks: ::prost::alloc::vec::Vec<super::catalog::Sink>,
915    #[prost(message, repeated, tag = "5")]
916    pub tables: ::prost::alloc::vec::Vec<super::catalog::Table>,
917    #[prost(message, repeated, tag = "6")]
918    pub indexes: ::prost::alloc::vec::Vec<super::catalog::Index>,
919    #[prost(message, repeated, tag = "7")]
920    pub views: ::prost::alloc::vec::Vec<super::catalog::View>,
921    #[prost(message, repeated, tag = "15")]
922    pub functions: ::prost::alloc::vec::Vec<super::catalog::Function>,
923    #[prost(message, repeated, tag = "17")]
924    pub connections: ::prost::alloc::vec::Vec<super::catalog::Connection>,
925    #[prost(message, repeated, tag = "19")]
926    pub subscriptions: ::prost::alloc::vec::Vec<super::catalog::Subscription>,
927    #[prost(message, repeated, tag = "8")]
928    pub users: ::prost::alloc::vec::Vec<super::user::UserInfo>,
929    #[prost(message, optional, tag = "20")]
930    pub session_params: ::core::option::Option<GetSessionParamsResponse>,
931    #[prost(message, repeated, tag = "23")]
932    pub secrets: ::prost::alloc::vec::Vec<super::catalog::Secret>,
933    #[prost(message, optional, tag = "25")]
934    pub cluster_resource: ::core::option::Option<super::common::ClusterResource>,
935    #[prost(message, repeated, tag = "10")]
936    pub nodes: ::prost::alloc::vec::Vec<super::common::WorkerNode>,
937    #[prost(message, optional, tag = "12")]
938    pub hummock_version: ::core::option::Option<super::hummock::HummockVersion>,
939    #[prost(message, optional, tag = "14")]
940    pub meta_backup_manifest_id: ::core::option::Option<
941        super::backup_service::MetaBackupManifestId,
942    >,
943    #[prost(message, optional, tag = "16")]
944    pub hummock_write_limits: ::core::option::Option<super::hummock::WriteLimits>,
945    /// for streaming
946    #[prost(message, repeated, tag = "21")]
947    pub streaming_worker_slot_mappings: ::prost::alloc::vec::Vec<
948        FragmentWorkerSlotMapping,
949    >,
950    #[prost(message, repeated, tag = "22")]
951    pub serving_worker_slot_mappings: ::prost::alloc::vec::Vec<
952        FragmentWorkerSlotMapping,
953    >,
954    #[prost(message, optional, tag = "13")]
955    pub version: ::core::option::Option<meta_snapshot::SnapshotVersion>,
956}
957/// Nested message and enum types in `MetaSnapshot`.
958pub mod meta_snapshot {
959    #[derive(prost_helpers::AnyPB)]
960    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
961    pub struct SnapshotVersion {
962        #[prost(uint64, tag = "1")]
963        pub catalog_version: u64,
964        #[prost(uint64, tag = "3")]
965        pub worker_node_version: u64,
966        #[prost(uint64, tag = "4")]
967        pub streaming_worker_slot_mapping_version: u64,
968    }
969}
970#[derive(prost_helpers::AnyPB)]
971#[derive(Clone, PartialEq, ::prost::Message)]
972pub struct Object {
973    #[prost(oneof = "object::ObjectInfo", tags = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11")]
974    pub object_info: ::core::option::Option<object::ObjectInfo>,
975}
976/// Nested message and enum types in `Object`.
977pub mod object {
978    #[derive(prost_helpers::AnyPB)]
979    #[derive(strum::Display)]
980    #[derive(Clone, PartialEq, ::prost::Oneof)]
981    pub enum ObjectInfo {
982        #[prost(message, tag = "1")]
983        Database(super::super::catalog::Database),
984        #[prost(message, tag = "2")]
985        Schema(super::super::catalog::Schema),
986        #[prost(message, tag = "3")]
987        Table(super::super::catalog::Table),
988        #[prost(message, tag = "4")]
989        Index(super::super::catalog::Index),
990        #[prost(message, tag = "5")]
991        Source(super::super::catalog::Source),
992        #[prost(message, tag = "6")]
993        Sink(super::super::catalog::Sink),
994        #[prost(message, tag = "7")]
995        View(super::super::catalog::View),
996        #[prost(message, tag = "8")]
997        Function(super::super::catalog::Function),
998        #[prost(message, tag = "9")]
999        Connection(super::super::catalog::Connection),
1000        #[prost(message, tag = "10")]
1001        Subscription(super::super::catalog::Subscription),
1002        #[prost(message, tag = "11")]
1003        Secret(super::super::catalog::Secret),
1004    }
1005}
1006#[derive(prost_helpers::AnyPB)]
1007#[derive(Clone, PartialEq, ::prost::Message)]
1008pub struct ObjectGroup {
1009    #[prost(message, repeated, tag = "1")]
1010    pub objects: ::prost::alloc::vec::Vec<Object>,
1011}
1012#[derive(prost_helpers::AnyPB)]
1013#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1014pub struct Recovery {}
1015#[derive(prost_helpers::AnyPB)]
1016#[derive(Clone, PartialEq, ::prost::Message)]
1017pub struct SubscribeResponse {
1018    #[prost(message, optional, tag = "1")]
1019    pub status: ::core::option::Option<super::common::Status>,
1020    #[prost(enumeration = "subscribe_response::Operation", tag = "2")]
1021    pub operation: i32,
1022    /// Catalog version
1023    #[prost(uint64, tag = "3")]
1024    pub version: u64,
1025    #[prost(
1026        oneof = "subscribe_response::Info",
1027        tags = "4, 5, 6, 11, 26, 13, 15, 16, 17, 19, 20, 21, 22, 24, 25, 27, 28, 29, 31"
1028    )]
1029    pub info: ::core::option::Option<subscribe_response::Info>,
1030}
1031/// Nested message and enum types in `SubscribeResponse`.
1032pub mod subscribe_response {
1033    #[derive(prost_helpers::AnyPB)]
1034    #[derive(
1035        Clone,
1036        Copy,
1037        Debug,
1038        PartialEq,
1039        Eq,
1040        Hash,
1041        PartialOrd,
1042        Ord,
1043        ::prost::Enumeration
1044    )]
1045    #[repr(i32)]
1046    pub enum Operation {
1047        Unspecified = 0,
1048        Add = 1,
1049        Delete = 2,
1050        Update = 3,
1051        Snapshot = 4,
1052    }
1053    impl Operation {
1054        /// String value of the enum field names used in the ProtoBuf definition.
1055        ///
1056        /// The values are not transformed in any way and thus are considered stable
1057        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1058        pub fn as_str_name(&self) -> &'static str {
1059            match self {
1060                Self::Unspecified => "UNSPECIFIED",
1061                Self::Add => "ADD",
1062                Self::Delete => "DELETE",
1063                Self::Update => "UPDATE",
1064                Self::Snapshot => "SNAPSHOT",
1065            }
1066        }
1067        /// Creates an enum from field names used in the ProtoBuf definition.
1068        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1069            match value {
1070                "UNSPECIFIED" => Some(Self::Unspecified),
1071                "ADD" => Some(Self::Add),
1072                "DELETE" => Some(Self::Delete),
1073                "UPDATE" => Some(Self::Update),
1074                "SNAPSHOT" => Some(Self::Snapshot),
1075                _ => None,
1076            }
1077        }
1078    }
1079    #[derive(prost_helpers::AnyPB)]
1080    #[derive(strum::Display)]
1081    #[derive(Clone, PartialEq, ::prost::Oneof)]
1082    pub enum Info {
1083        #[prost(message, tag = "4")]
1084        Database(super::super::catalog::Database),
1085        #[prost(message, tag = "5")]
1086        Schema(super::super::catalog::Schema),
1087        #[prost(message, tag = "6")]
1088        Function(super::super::catalog::Function),
1089        #[prost(message, tag = "11")]
1090        User(super::super::user::UserInfo),
1091        #[prost(message, tag = "26")]
1092        SessionParam(super::SetSessionParamRequest),
1093        #[prost(message, tag = "13")]
1094        Node(super::super::common::WorkerNode),
1095        #[prost(message, tag = "15")]
1096        HummockVersionDeltas(super::super::hummock::HummockVersionDeltas),
1097        #[prost(message, tag = "16")]
1098        Snapshot(super::MetaSnapshot),
1099        #[prost(message, tag = "17")]
1100        MetaBackupManifestId(super::super::backup_service::MetaBackupManifestId),
1101        #[prost(message, tag = "19")]
1102        SystemParams(super::SystemParams),
1103        #[prost(message, tag = "20")]
1104        HummockWriteLimits(super::super::hummock::WriteLimits),
1105        #[prost(message, tag = "21")]
1106        ObjectGroup(super::ObjectGroup),
1107        #[prost(message, tag = "22")]
1108        Connection(super::super::catalog::Connection),
1109        #[prost(message, tag = "24")]
1110        HummockStats(super::super::hummock::HummockVersionStats),
1111        #[prost(message, tag = "25")]
1112        Recovery(super::Recovery),
1113        #[prost(message, tag = "27")]
1114        StreamingWorkerSlotMapping(super::FragmentWorkerSlotMapping),
1115        #[prost(message, tag = "28")]
1116        ServingWorkerSlotMappings(super::FragmentWorkerSlotMappings),
1117        #[prost(message, tag = "29")]
1118        Secret(super::super::catalog::Secret),
1119        #[prost(message, tag = "31")]
1120        ClusterResource(super::super::common::ClusterResource),
1121    }
1122}
1123#[derive(prost_helpers::AnyPB)]
1124#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1125pub struct GetClusterInfoRequest {}
1126#[derive(prost_helpers::AnyPB)]
1127#[derive(Clone, PartialEq, ::prost::Message)]
1128pub struct GetClusterInfoResponse {
1129    #[prost(message, repeated, tag = "1")]
1130    pub worker_nodes: ::prost::alloc::vec::Vec<super::common::WorkerNode>,
1131    #[prost(message, repeated, tag = "2")]
1132    pub table_fragments: ::prost::alloc::vec::Vec<TableFragments>,
1133    /// `Source` and `SourceBackfill` are handled together here.
1134    #[prost(map = "uint32, message", tag = "3", wrapper = "crate::id::ActorId")]
1135    pub actor_splits: ::std::collections::HashMap<
1136        crate::id::ActorId,
1137        super::source::ConnectorSplits,
1138    >,
1139    #[prost(map = "uint32, message", tag = "4")]
1140    pub source_infos: ::std::collections::HashMap<u32, super::catalog::Source>,
1141    #[prost(uint64, tag = "5")]
1142    pub revision: u64,
1143}
1144/// For each fragment that needs to be rescheduled, there will be a WorkerReschedule,
1145/// indicating on which workers the actors of this fragment need to be changed and by how many.
1146#[derive(prost_helpers::AnyPB)]
1147#[derive(Clone, PartialEq, ::prost::Message)]
1148pub struct WorkerReschedule {
1149    /// worker_id -> actor_diff
1150    #[prost(map = "uint32, int32", tag = "1", wrapper = "crate::id::WorkerId")]
1151    pub worker_actor_diff: ::std::collections::HashMap<crate::id::WorkerId, i32>,
1152}
1153#[derive(prost_helpers::AnyPB)]
1154#[derive(Clone, PartialEq, ::prost::Message)]
1155pub struct RescheduleRequest {
1156    #[prost(uint64, tag = "2")]
1157    pub revision: u64,
1158    #[prost(bool, tag = "3")]
1159    pub resolve_no_shuffle_upstream: bool,
1160    #[prost(map = "uint32, message", tag = "4")]
1161    pub worker_reschedules: ::std::collections::HashMap<u32, WorkerReschedule>,
1162}
1163#[derive(prost_helpers::AnyPB)]
1164#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1165pub struct RescheduleResponse {
1166    #[prost(bool, tag = "1")]
1167    pub success: bool,
1168    #[prost(uint64, tag = "2")]
1169    pub revision: u64,
1170}
1171#[derive(prost_helpers::AnyPB)]
1172#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1173pub struct TableParallelism {
1174    #[prost(oneof = "table_parallelism::Parallelism", tags = "1, 2, 3, 4")]
1175    pub parallelism: ::core::option::Option<table_parallelism::Parallelism>,
1176}
1177/// Nested message and enum types in `TableParallelism`.
1178pub mod table_parallelism {
1179    #[derive(prost_helpers::AnyPB)]
1180    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1181    pub struct FixedParallelism {
1182        #[prost(uint32, tag = "1")]
1183        pub parallelism: u32,
1184    }
1185    /// deprecated, treated as AdaptiveParallelism
1186    #[derive(prost_helpers::AnyPB)]
1187    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1188    pub struct AutoParallelism {}
1189    #[derive(prost_helpers::AnyPB)]
1190    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1191    pub struct AdaptiveParallelism {}
1192    #[derive(prost_helpers::AnyPB)]
1193    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1194    pub struct CustomParallelism {}
1195    #[derive(prost_helpers::AnyPB)]
1196    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
1197    pub enum Parallelism {
1198        #[prost(message, tag = "1")]
1199        Fixed(FixedParallelism),
1200        #[prost(message, tag = "2")]
1201        Auto(AutoParallelism),
1202        #[prost(message, tag = "3")]
1203        Custom(CustomParallelism),
1204        #[prost(message, tag = "4")]
1205        Adaptive(AdaptiveParallelism),
1206    }
1207}
1208/// Changes a streaming job in place by overwriting its node_label.
1209/// This may cause the re-scheduling of the streaming job actors.
1210#[derive(prost_helpers::AnyPB)]
1211#[derive(Clone, PartialEq, ::prost::Message)]
1212pub struct UpdateStreamingJobNodeLabelsRequest {
1213    /// Id of the materialized view, table, or sink which we want to update
1214    #[prost(uint32, tag = "1")]
1215    pub id: u32,
1216    /// replace the node_label of the streaming job with a given id with below value
1217    #[prost(string, tag = "2")]
1218    pub node_label: ::prost::alloc::string::String,
1219}
1220/// We do not need to add an explicit status field here, we can just use the RPC status
1221#[derive(prost_helpers::AnyPB)]
1222#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1223pub struct UpdateStreamingJobNodeLabelsResponse {}
1224#[derive(prost_helpers::AnyPB)]
1225#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1226pub struct GetServerlessStreamingJobsStatusRequest {}
1227/// Descriptions of MVs and sinks
1228#[derive(prost_helpers::AnyPB)]
1229#[derive(Clone, PartialEq, ::prost::Message)]
1230pub struct GetServerlessStreamingJobsStatusResponse {
1231    #[prost(message, repeated, tag = "1")]
1232    pub streaming_job_statuses: ::prost::alloc::vec::Vec<
1233        get_serverless_streaming_jobs_status_response::Status,
1234    >,
1235}
1236/// Nested message and enum types in `GetServerlessStreamingJobsStatusResponse`.
1237pub mod get_serverless_streaming_jobs_status_response {
1238    #[derive(prost_helpers::AnyPB)]
1239    #[derive(Clone, PartialEq, ::prost::Message)]
1240    pub struct Status {
1241        #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1242        pub table_id: crate::id::TableId,
1243        #[prost(string, tag = "2")]
1244        pub node_label: ::prost::alloc::string::String,
1245        #[prost(bool, tag = "3")]
1246        pub backfill_done: bool,
1247    }
1248}
1249#[derive(prost_helpers::AnyPB)]
1250#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1251pub struct MembersRequest {}
1252#[derive(prost_helpers::AnyPB)]
1253#[derive(Clone, PartialEq, ::prost::Message)]
1254pub struct MetaMember {
1255    #[prost(message, optional, tag = "1")]
1256    pub address: ::core::option::Option<super::common::HostAddress>,
1257    #[prost(bool, tag = "2")]
1258    pub is_leader: bool,
1259}
1260#[derive(prost_helpers::AnyPB)]
1261#[derive(Clone, PartialEq, ::prost::Message)]
1262pub struct MembersResponse {
1263    #[prost(message, repeated, tag = "1")]
1264    pub members: ::prost::alloc::vec::Vec<MetaMember>,
1265}
1266/// The schema for persisted system parameters.
1267/// Note on backward compatibility:
1268/// - Do not remove deprecated fields. Mark them as deprecated instead.
1269/// - Do not rename existing fields, since each field is stored separately in the meta store with the field name as the key.
1270/// - To modify (rename, change the type or semantic of) a field, introduce a new field suffixed by the version.
1271#[derive(prost_helpers::AnyPB)]
1272#[derive(Clone, PartialEq, ::prost::Message)]
1273#[prost(skip_debug)]
1274pub struct SystemParams {
1275    #[prost(uint32, optional, tag = "1")]
1276    pub barrier_interval_ms: ::core::option::Option<u32>,
1277    #[prost(uint64, optional, tag = "2")]
1278    pub checkpoint_frequency: ::core::option::Option<u64>,
1279    #[prost(uint32, optional, tag = "3")]
1280    pub sstable_size_mb: ::core::option::Option<u32>,
1281    #[prost(uint32, optional, tag = "4")]
1282    pub block_size_kb: ::core::option::Option<u32>,
1283    #[prost(double, optional, tag = "5")]
1284    pub bloom_false_positive: ::core::option::Option<f64>,
1285    #[prost(string, optional, tag = "6")]
1286    pub state_store: ::core::option::Option<::prost::alloc::string::String>,
1287    #[prost(string, optional, tag = "7")]
1288    pub data_directory: ::core::option::Option<::prost::alloc::string::String>,
1289    #[prost(string, optional, tag = "8")]
1290    pub backup_storage_url: ::core::option::Option<::prost::alloc::string::String>,
1291    #[prost(string, optional, tag = "9")]
1292    pub backup_storage_directory: ::core::option::Option<::prost::alloc::string::String>,
1293    /// Deprecated. Use config file instead.
1294    #[deprecated]
1295    #[prost(bool, optional, tag = "10")]
1296    pub telemetry_enabled: ::core::option::Option<bool>,
1297    #[prost(uint32, optional, tag = "11")]
1298    pub parallel_compact_size_mb: ::core::option::Option<u32>,
1299    #[prost(uint32, optional, tag = "12")]
1300    pub max_concurrent_creating_streaming_jobs: ::core::option::Option<u32>,
1301    #[prost(bool, optional, tag = "13")]
1302    pub pause_on_next_bootstrap: ::core::option::Option<bool>,
1303    #[deprecated]
1304    #[prost(string, optional, tag = "14")]
1305    pub wasm_storage_url: ::core::option::Option<::prost::alloc::string::String>,
1306    #[prost(bool, optional, tag = "15")]
1307    pub enable_tracing: ::core::option::Option<bool>,
1308    #[prost(bool, optional, tag = "16")]
1309    pub use_new_object_prefix_strategy: ::core::option::Option<bool>,
1310    #[prost(string, optional, tag = "17")]
1311    pub license_key: ::core::option::Option<::prost::alloc::string::String>,
1312    #[prost(uint64, optional, tag = "18")]
1313    pub time_travel_retention_ms: ::core::option::Option<u64>,
1314    #[prost(string, optional, tag = "19")]
1315    pub adaptive_parallelism_strategy: ::core::option::Option<
1316        ::prost::alloc::string::String,
1317    >,
1318    #[prost(bool, optional, tag = "20")]
1319    pub per_database_isolation: ::core::option::Option<bool>,
1320    #[prost(bool, optional, tag = "21")]
1321    pub enforce_secret: ::core::option::Option<bool>,
1322}
1323#[derive(prost_helpers::AnyPB)]
1324#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1325pub struct GetSystemParamsRequest {}
1326#[derive(prost_helpers::AnyPB)]
1327#[derive(Clone, PartialEq, ::prost::Message)]
1328pub struct GetSystemParamsResponse {
1329    #[prost(message, optional, tag = "1")]
1330    pub params: ::core::option::Option<SystemParams>,
1331}
1332#[derive(prost_helpers::AnyPB)]
1333#[derive(Clone, PartialEq, ::prost::Message)]
1334pub struct SetSystemParamRequest {
1335    #[prost(string, tag = "1")]
1336    pub param: ::prost::alloc::string::String,
1337    /// None means set to default value.
1338    #[prost(string, optional, tag = "2")]
1339    pub value: ::core::option::Option<::prost::alloc::string::String>,
1340}
1341#[derive(prost_helpers::AnyPB)]
1342#[derive(Clone, PartialEq, ::prost::Message)]
1343pub struct SetSystemParamResponse {
1344    #[prost(message, optional, tag = "1")]
1345    pub params: ::core::option::Option<SystemParams>,
1346}
1347#[derive(prost_helpers::AnyPB)]
1348#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1349pub struct GetSessionParamsRequest {}
1350#[derive(prost_helpers::AnyPB)]
1351#[derive(Clone, PartialEq, ::prost::Message)]
1352pub struct GetSessionParamsResponse {
1353    #[prost(string, tag = "1")]
1354    pub params: ::prost::alloc::string::String,
1355}
1356#[derive(prost_helpers::AnyPB)]
1357#[derive(Clone, PartialEq, ::prost::Message)]
1358pub struct SetSessionParamRequest {
1359    #[prost(string, tag = "1")]
1360    pub param: ::prost::alloc::string::String,
1361    /// None means set to default value.
1362    #[prost(string, optional, tag = "2")]
1363    pub value: ::core::option::Option<::prost::alloc::string::String>,
1364}
1365#[derive(prost_helpers::AnyPB)]
1366#[derive(Clone, PartialEq, ::prost::Message)]
1367pub struct SetSessionParamResponse {
1368    #[prost(string, tag = "1")]
1369    pub param: ::prost::alloc::string::String,
1370}
1371#[derive(prost_helpers::AnyPB)]
1372#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1373pub struct GetServingVnodeMappingsRequest {}
1374#[derive(prost_helpers::AnyPB)]
1375#[derive(Clone, PartialEq, ::prost::Message)]
1376pub struct GetServingVnodeMappingsResponse {
1377    #[prost(map = "uint32, uint32", tag = "2", wrapper = "crate::id::FragmentId")]
1378    pub fragment_to_table: ::std::collections::HashMap<crate::id::FragmentId, u32>,
1379    #[prost(message, repeated, tag = "3")]
1380    pub worker_slot_mappings: ::prost::alloc::vec::Vec<FragmentWorkerSlotMapping>,
1381}
1382#[derive(prost_helpers::AnyPB)]
1383#[derive(Clone, PartialEq, ::prost::Message)]
1384pub struct EventLog {
1385    /// Event logs identifier, which should be populated by event log service.
1386    #[prost(string, optional, tag = "1")]
1387    pub unique_id: ::core::option::Option<::prost::alloc::string::String>,
1388    /// Processing time, which should be populated by event log service.
1389    #[prost(uint64, optional, tag = "2")]
1390    pub timestamp: ::core::option::Option<u64>,
1391    #[prost(oneof = "event_log::Event", tags = "3, 4, 5, 6, 7, 8, 9, 10, 11, 12")]
1392    pub event: ::core::option::Option<event_log::Event>,
1393}
1394/// Nested message and enum types in `EventLog`.
1395pub mod event_log {
1396    #[derive(prost_helpers::AnyPB)]
1397    #[derive(Clone, PartialEq, ::prost::Message)]
1398    pub struct EventMetaNodeStart {
1399        #[prost(string, tag = "1")]
1400        pub advertise_addr: ::prost::alloc::string::String,
1401        #[prost(string, tag = "2")]
1402        pub listen_addr: ::prost::alloc::string::String,
1403        #[prost(string, tag = "3")]
1404        pub opts: ::prost::alloc::string::String,
1405    }
1406    #[derive(prost_helpers::AnyPB)]
1407    #[derive(Clone, PartialEq, ::prost::Message)]
1408    pub struct EventCreateStreamJobFail {
1409        #[prost(uint32, tag = "1", wrapper = "crate::id::JobId")]
1410        pub id: crate::id::JobId,
1411        #[prost(string, tag = "2")]
1412        pub name: ::prost::alloc::string::String,
1413        #[prost(string, tag = "3")]
1414        pub definition: ::prost::alloc::string::String,
1415        #[prost(string, tag = "4")]
1416        pub error: ::prost::alloc::string::String,
1417    }
1418    #[derive(prost_helpers::AnyPB)]
1419    #[derive(Clone, PartialEq, ::prost::Message)]
1420    pub struct EventDirtyStreamJobClear {
1421        #[prost(uint32, tag = "1", wrapper = "crate::id::JobId")]
1422        pub id: crate::id::JobId,
1423        #[prost(string, tag = "2")]
1424        pub name: ::prost::alloc::string::String,
1425        #[prost(string, tag = "3")]
1426        pub definition: ::prost::alloc::string::String,
1427        #[prost(string, tag = "4")]
1428        pub error: ::prost::alloc::string::String,
1429    }
1430    #[derive(prost_helpers::AnyPB)]
1431    #[derive(Clone, PartialEq, ::prost::Message)]
1432    pub struct EventBarrierComplete {
1433        #[prost(uint64, tag = "1")]
1434        pub prev_epoch: u64,
1435        #[prost(uint64, tag = "2")]
1436        pub cur_epoch: u64,
1437        #[prost(double, tag = "3")]
1438        pub duration_sec: f64,
1439        #[prost(string, tag = "4")]
1440        pub command: ::prost::alloc::string::String,
1441        #[prost(string, tag = "5")]
1442        pub barrier_kind: ::prost::alloc::string::String,
1443    }
1444    #[derive(prost_helpers::AnyPB)]
1445    #[derive(Clone, PartialEq, ::prost::Message)]
1446    pub struct EventInjectBarrierFail {
1447        #[prost(uint64, tag = "1")]
1448        pub prev_epoch: u64,
1449        #[prost(uint64, tag = "2")]
1450        pub cur_epoch: u64,
1451        #[prost(string, tag = "3")]
1452        pub error: ::prost::alloc::string::String,
1453    }
1454    #[derive(prost_helpers::AnyPB)]
1455    #[derive(Clone, PartialEq, ::prost::Message)]
1456    pub struct EventCollectBarrierFail {
1457        #[prost(string, tag = "3")]
1458        pub error: ::prost::alloc::string::String,
1459    }
1460    #[derive(prost_helpers::AnyPB)]
1461    #[derive(Clone, PartialEq, ::prost::Message)]
1462    pub struct EventWorkerNodePanic {
1463        #[prost(uint32, tag = "1", wrapper = "crate::id::WorkerId")]
1464        pub worker_id: crate::id::WorkerId,
1465        #[prost(enumeration = "super::super::common::WorkerType", tag = "2")]
1466        pub worker_type: i32,
1467        #[prost(message, optional, tag = "3")]
1468        pub host_addr: ::core::option::Option<super::super::common::HostAddress>,
1469        #[prost(string, tag = "4")]
1470        pub panic_info: ::prost::alloc::string::String,
1471    }
1472    #[derive(prost_helpers::AnyPB)]
1473    #[derive(Clone, PartialEq, ::prost::Message)]
1474    pub struct EventAutoSchemaChangeFail {
1475        #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1476        pub table_id: crate::id::TableId,
1477        #[prost(string, tag = "2")]
1478        pub table_name: ::prost::alloc::string::String,
1479        #[prost(string, tag = "3")]
1480        pub cdc_table_id: ::prost::alloc::string::String,
1481        #[prost(string, tag = "4")]
1482        pub upstream_ddl: ::prost::alloc::string::String,
1483        #[prost(string, tag = "5")]
1484        pub fail_info: ::prost::alloc::string::String,
1485    }
1486    #[derive(prost_helpers::AnyPB)]
1487    #[derive(Clone, PartialEq, ::prost::Message)]
1488    pub struct EventSinkFail {
1489        #[prost(uint32, tag = "1", wrapper = "crate::id::SinkId")]
1490        pub sink_id: crate::id::SinkId,
1491        #[prost(string, tag = "2")]
1492        pub sink_name: ::prost::alloc::string::String,
1493        #[prost(string, tag = "3")]
1494        pub connector: ::prost::alloc::string::String,
1495        #[prost(string, tag = "4")]
1496        pub error: ::prost::alloc::string::String,
1497    }
1498    #[derive(prost_helpers::AnyPB)]
1499    #[derive(Clone, PartialEq, ::prost::Message)]
1500    pub struct EventRecovery {
1501        #[prost(oneof = "event_recovery::RecoveryEvent", tags = "1, 2, 3, 4, 5, 6")]
1502        pub recovery_event: ::core::option::Option<event_recovery::RecoveryEvent>,
1503    }
1504    /// Nested message and enum types in `EventRecovery`.
1505    pub mod event_recovery {
1506        #[derive(prost_helpers::AnyPB)]
1507        #[derive(Clone, PartialEq, ::prost::Message)]
1508        pub struct GlobalRecoveryStart {
1509            #[prost(string, tag = "1")]
1510            pub reason: ::prost::alloc::string::String,
1511        }
1512        #[derive(prost_helpers::AnyPB)]
1513        #[derive(Clone, PartialEq, ::prost::Message)]
1514        pub struct GlobalRecoverySuccess {
1515            #[prost(string, tag = "1")]
1516            pub reason: ::prost::alloc::string::String,
1517            #[prost(float, tag = "2")]
1518            pub duration_secs: f32,
1519            #[prost(uint32, repeated, tag = "3")]
1520            pub running_database_ids: ::prost::alloc::vec::Vec<u32>,
1521            #[prost(uint32, repeated, tag = "4")]
1522            pub recovering_database_ids: ::prost::alloc::vec::Vec<u32>,
1523        }
1524        #[derive(prost_helpers::AnyPB)]
1525        #[derive(Clone, PartialEq, ::prost::Message)]
1526        pub struct GlobalRecoveryFailure {
1527            #[prost(string, tag = "1")]
1528            pub reason: ::prost::alloc::string::String,
1529            #[prost(string, tag = "2")]
1530            pub error: ::prost::alloc::string::String,
1531        }
1532        #[derive(prost_helpers::AnyPB)]
1533        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1534        pub struct DatabaseRecoveryStart {
1535            #[prost(uint32, tag = "1")]
1536            pub database_id: u32,
1537        }
1538        #[derive(prost_helpers::AnyPB)]
1539        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1540        pub struct DatabaseRecoveryFailure {
1541            #[prost(uint32, tag = "1")]
1542            pub database_id: u32,
1543        }
1544        #[derive(prost_helpers::AnyPB)]
1545        #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1546        pub struct DatabaseRecoverySuccess {
1547            #[prost(uint32, tag = "1")]
1548            pub database_id: u32,
1549        }
1550        #[derive(prost_helpers::AnyPB)]
1551        #[derive(Clone, PartialEq, ::prost::Oneof)]
1552        pub enum RecoveryEvent {
1553            #[prost(message, tag = "1")]
1554            GlobalStart(GlobalRecoveryStart),
1555            #[prost(message, tag = "2")]
1556            GlobalSuccess(GlobalRecoverySuccess),
1557            #[prost(message, tag = "3")]
1558            GlobalFailure(GlobalRecoveryFailure),
1559            #[prost(message, tag = "4")]
1560            DatabaseStart(DatabaseRecoveryStart),
1561            #[prost(message, tag = "5")]
1562            DatabaseFailure(DatabaseRecoveryFailure),
1563            #[prost(message, tag = "6")]
1564            DatabaseSuccess(DatabaseRecoverySuccess),
1565        }
1566    }
1567    #[derive(prost_helpers::AnyPB)]
1568    #[derive(Clone, PartialEq, ::prost::Oneof)]
1569    pub enum Event {
1570        #[prost(message, tag = "3")]
1571        CreateStreamJobFail(EventCreateStreamJobFail),
1572        #[prost(message, tag = "4")]
1573        DirtyStreamJobClear(EventDirtyStreamJobClear),
1574        #[prost(message, tag = "5")]
1575        MetaNodeStart(EventMetaNodeStart),
1576        #[prost(message, tag = "6")]
1577        BarrierComplete(EventBarrierComplete),
1578        #[prost(message, tag = "7")]
1579        InjectBarrierFail(EventInjectBarrierFail),
1580        #[prost(message, tag = "8")]
1581        CollectBarrierFail(EventCollectBarrierFail),
1582        #[prost(message, tag = "9")]
1583        WorkerNodePanic(EventWorkerNodePanic),
1584        #[prost(message, tag = "10")]
1585        AutoSchemaChangeFail(EventAutoSchemaChangeFail),
1586        #[prost(message, tag = "11")]
1587        SinkFail(EventSinkFail),
1588        #[prost(message, tag = "12")]
1589        Recovery(EventRecovery),
1590    }
1591}
1592#[derive(prost_helpers::AnyPB)]
1593#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1594pub struct ListEventLogRequest {}
1595#[derive(prost_helpers::AnyPB)]
1596#[derive(Clone, PartialEq, ::prost::Message)]
1597pub struct ListEventLogResponse {
1598    #[prost(message, repeated, tag = "1")]
1599    pub event_logs: ::prost::alloc::vec::Vec<EventLog>,
1600}
1601#[derive(prost_helpers::AnyPB)]
1602#[derive(Clone, PartialEq, ::prost::Message)]
1603pub struct AddEventLogRequest {
1604    /// A subset of EventLog.event that can be added by non meta node.
1605    #[prost(oneof = "add_event_log_request::Event", tags = "1, 2, 3")]
1606    pub event: ::core::option::Option<add_event_log_request::Event>,
1607}
1608/// Nested message and enum types in `AddEventLogRequest`.
1609pub mod add_event_log_request {
1610    /// A subset of EventLog.event that can be added by non meta node.
1611    #[derive(prost_helpers::AnyPB)]
1612    #[derive(Clone, PartialEq, ::prost::Oneof)]
1613    pub enum Event {
1614        #[prost(message, tag = "1")]
1615        WorkerNodePanic(super::event_log::EventWorkerNodePanic),
1616        #[prost(message, tag = "2")]
1617        SinkFail(super::event_log::EventSinkFail),
1618        #[prost(message, tag = "3")]
1619        AutoSchemaChangeFail(super::event_log::EventAutoSchemaChangeFail),
1620    }
1621}
1622#[derive(prost_helpers::AnyPB)]
1623#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1624pub struct AddEventLogResponse {}
1625#[derive(prost_helpers::AnyPB)]
1626#[derive(Clone, PartialEq, ::prost::Message)]
1627pub struct ActorIds {
1628    #[prost(uint32, repeated, tag = "1", wrapper = "crate::id::ActorId")]
1629    pub ids: ::prost::alloc::vec::Vec<crate::id::ActorId>,
1630}
1631#[derive(prost_helpers::AnyPB)]
1632#[derive(Clone, PartialEq, ::prost::Message)]
1633pub struct FragmentIdToActorIdMap {
1634    #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::FragmentId")]
1635    pub map: ::std::collections::HashMap<crate::id::FragmentId, ActorIds>,
1636}
1637/// / Provides all the ids: relation_id, fragment_id, actor_id
1638/// / in an hierarchical format.
1639/// / relation_id -> \[fragment_id\]
1640/// / fragment_id -> \[actor_id\]
1641#[derive(prost_helpers::AnyPB)]
1642#[derive(Clone, PartialEq, ::prost::Message)]
1643pub struct RelationIdInfos {
1644    /// relation_id -> FragmentIdToActorIdMap
1645    #[prost(map = "uint32, message", tag = "1")]
1646    pub map: ::std::collections::HashMap<u32, FragmentIdToActorIdMap>,
1647}
1648#[derive(prost_helpers::AnyPB)]
1649#[derive(Clone, PartialEq, ::prost::Message)]
1650pub struct FragmentToRelationMap {
1651    /// / fragment_id -> relation_id mapping for all fragments
1652    #[prost(map = "uint32, uint32", tag = "1", wrapper = "crate::id::FragmentId")]
1653    pub fragment_to_relation_map: ::std::collections::HashMap<
1654        crate::id::FragmentId,
1655        u32,
1656    >,
1657}
1658#[derive(prost_helpers::AnyPB)]
1659#[derive(Clone, PartialEq, ::prost::Message)]
1660pub struct ActorCountPerParallelism {
1661    #[prost(map = "uint32, message", tag = "1", wrapper = "crate::id::WorkerId")]
1662    pub worker_id_to_actor_count: ::std::collections::HashMap<
1663        crate::id::WorkerId,
1664        actor_count_per_parallelism::WorkerActorCount,
1665    >,
1666    #[prost(uint64, tag = "2")]
1667    pub hard_limit: u64,
1668    #[prost(uint64, tag = "3")]
1669    pub soft_limit: u64,
1670}
1671/// Nested message and enum types in `ActorCountPerParallelism`.
1672pub mod actor_count_per_parallelism {
1673    #[derive(prost_helpers::AnyPB)]
1674    #[derive(Clone, Copy, PartialEq, ::prost::Message)]
1675    pub struct WorkerActorCount {
1676        #[prost(uint64, tag = "1")]
1677        pub actor_count: u64,
1678        #[prost(uint64, tag = "2")]
1679        pub parallelism: u64,
1680    }
1681}
1682#[derive(prost_helpers::AnyPB)]
1683#[derive(Clone, PartialEq, ::prost::Message)]
1684pub struct ClusterLimit {
1685    #[prost(oneof = "cluster_limit::Limit", tags = "1")]
1686    pub limit: ::core::option::Option<cluster_limit::Limit>,
1687}
1688/// Nested message and enum types in `ClusterLimit`.
1689pub mod cluster_limit {
1690    #[derive(prost_helpers::AnyPB)]
1691    #[derive(Clone, PartialEq, ::prost::Oneof)]
1692    pub enum Limit {
1693        /// TODO: limit DDL using compaction pending bytes
1694        #[prost(message, tag = "1")]
1695        ActorCount(super::ActorCountPerParallelism),
1696    }
1697}
1698#[derive(prost_helpers::AnyPB)]
1699#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1700pub struct GetClusterLimitsRequest {}
1701#[derive(prost_helpers::AnyPB)]
1702#[derive(Clone, PartialEq, ::prost::Message)]
1703pub struct GetClusterLimitsResponse {
1704    #[prost(message, repeated, tag = "1")]
1705    pub active_limits: ::prost::alloc::vec::Vec<ClusterLimit>,
1706}
1707#[derive(prost_helpers::AnyPB)]
1708#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1709pub struct ListRateLimitsRequest {}
1710#[derive(prost_helpers::AnyPB)]
1711#[derive(Clone, PartialEq, ::prost::Message)]
1712pub struct ListRateLimitsResponse {
1713    #[prost(message, repeated, tag = "1")]
1714    pub rate_limits: ::prost::alloc::vec::Vec<list_rate_limits_response::RateLimitInfo>,
1715}
1716/// Nested message and enum types in `ListRateLimitsResponse`.
1717pub mod list_rate_limits_response {
1718    #[derive(prost_helpers::AnyPB)]
1719    #[derive(Clone, PartialEq, ::prost::Message)]
1720    pub struct RateLimitInfo {
1721        #[prost(uint32, tag = "1", wrapper = "crate::id::FragmentId")]
1722        pub fragment_id: crate::id::FragmentId,
1723        #[prost(uint32, tag = "2", wrapper = "crate::id::JobId")]
1724        pub job_id: crate::id::JobId,
1725        #[prost(uint32, tag = "3")]
1726        pub fragment_type_mask: u32,
1727        #[prost(uint32, tag = "4")]
1728        pub rate_limit: u32,
1729        #[prost(string, tag = "5")]
1730        pub node_name: ::prost::alloc::string::String,
1731    }
1732}
1733#[derive(prost_helpers::AnyPB)]
1734#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1735pub struct ListIcebergTablesRequest {}
1736#[derive(prost_helpers::AnyPB)]
1737#[derive(Clone, PartialEq, ::prost::Message)]
1738pub struct ListIcebergTablesResponse {
1739    #[prost(message, repeated, tag = "1")]
1740    pub iceberg_tables: ::prost::alloc::vec::Vec<
1741        list_iceberg_tables_response::IcebergTable,
1742    >,
1743}
1744/// Nested message and enum types in `ListIcebergTablesResponse`.
1745pub mod list_iceberg_tables_response {
1746    #[derive(prost_helpers::AnyPB)]
1747    #[derive(Clone, PartialEq, ::prost::Message)]
1748    pub struct IcebergTable {
1749        #[prost(string, tag = "1")]
1750        pub catalog_name: ::prost::alloc::string::String,
1751        #[prost(string, tag = "2")]
1752        pub table_namespace: ::prost::alloc::string::String,
1753        #[prost(string, tag = "3")]
1754        pub table_name: ::prost::alloc::string::String,
1755        #[prost(string, optional, tag = "4")]
1756        pub metadata_location: ::core::option::Option<::prost::alloc::string::String>,
1757        #[prost(string, optional, tag = "5")]
1758        pub previous_metadata_location: ::core::option::Option<
1759            ::prost::alloc::string::String,
1760        >,
1761        #[prost(string, optional, tag = "6")]
1762        pub iceberg_type: ::core::option::Option<::prost::alloc::string::String>,
1763    }
1764}
1765#[derive(prost_helpers::AnyPB)]
1766#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1767pub struct SetSyncLogStoreAlignedRequest {
1768    #[prost(uint32, tag = "1", wrapper = "crate::id::JobId")]
1769    pub job_id: crate::id::JobId,
1770    #[prost(bool, tag = "2")]
1771    pub aligned: bool,
1772}
1773#[derive(prost_helpers::AnyPB)]
1774#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1775pub struct SetSyncLogStoreAlignedResponse {}
1776#[derive(prost_helpers::AnyPB)]
1777#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1778pub struct ListUnmigratedTablesRequest {}
1779#[derive(prost_helpers::AnyPB)]
1780#[derive(Clone, PartialEq, ::prost::Message)]
1781pub struct ListUnmigratedTablesResponse {
1782    #[prost(message, repeated, tag = "1")]
1783    pub tables: ::prost::alloc::vec::Vec<
1784        list_unmigrated_tables_response::UnmigratedTable,
1785    >,
1786}
1787/// Nested message and enum types in `ListUnmigratedTablesResponse`.
1788pub mod list_unmigrated_tables_response {
1789    #[derive(prost_helpers::AnyPB)]
1790    #[derive(Clone, PartialEq, ::prost::Message)]
1791    pub struct UnmigratedTable {
1792        #[prost(uint32, tag = "1", wrapper = "crate::id::TableId")]
1793        pub table_id: crate::id::TableId,
1794        #[prost(string, tag = "2")]
1795        pub table_name: ::prost::alloc::string::String,
1796    }
1797}
1798#[derive(prost_helpers::AnyPB)]
1799#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1800#[repr(i32)]
1801pub enum ThrottleTarget {
1802    Unspecified = 0,
1803    Source = 1,
1804    Mv = 2,
1805    TableWithSource = 3,
1806    CdcTable = 4,
1807    TableDml = 5,
1808    Sink = 6,
1809    Fragment = 7,
1810}
1811impl ThrottleTarget {
1812    /// String value of the enum field names used in the ProtoBuf definition.
1813    ///
1814    /// The values are not transformed in any way and thus are considered stable
1815    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1816    pub fn as_str_name(&self) -> &'static str {
1817        match self {
1818            Self::Unspecified => "THROTTLE_TARGET_UNSPECIFIED",
1819            Self::Source => "SOURCE",
1820            Self::Mv => "MV",
1821            Self::TableWithSource => "TABLE_WITH_SOURCE",
1822            Self::CdcTable => "CDC_TABLE",
1823            Self::TableDml => "TABLE_DML",
1824            Self::Sink => "SINK",
1825            Self::Fragment => "FRAGMENT",
1826        }
1827    }
1828    /// Creates an enum from field names used in the ProtoBuf definition.
1829    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1830        match value {
1831            "THROTTLE_TARGET_UNSPECIFIED" => Some(Self::Unspecified),
1832            "SOURCE" => Some(Self::Source),
1833            "MV" => Some(Self::Mv),
1834            "TABLE_WITH_SOURCE" => Some(Self::TableWithSource),
1835            "CDC_TABLE" => Some(Self::CdcTable),
1836            "TABLE_DML" => Some(Self::TableDml),
1837            "SINK" => Some(Self::Sink),
1838            "FRAGMENT" => Some(Self::Fragment),
1839            _ => None,
1840        }
1841    }
1842}
1843#[derive(prost_helpers::AnyPB)]
1844#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1845#[repr(i32)]
1846pub enum RecoveryStatus {
1847    StatusUnspecified = 0,
1848    StatusStarting = 1,
1849    StatusRecovering = 2,
1850    StatusRunning = 3,
1851}
1852impl RecoveryStatus {
1853    /// String value of the enum field names used in the ProtoBuf definition.
1854    ///
1855    /// The values are not transformed in any way and thus are considered stable
1856    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1857    pub fn as_str_name(&self) -> &'static str {
1858        match self {
1859            Self::StatusUnspecified => "STATUS_UNSPECIFIED",
1860            Self::StatusStarting => "STATUS_STARTING",
1861            Self::StatusRecovering => "STATUS_RECOVERING",
1862            Self::StatusRunning => "STATUS_RUNNING",
1863        }
1864    }
1865    /// Creates an enum from field names used in the ProtoBuf definition.
1866    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1867        match value {
1868            "STATUS_UNSPECIFIED" => Some(Self::StatusUnspecified),
1869            "STATUS_STARTING" => Some(Self::StatusStarting),
1870            "STATUS_RECOVERING" => Some(Self::StatusRecovering),
1871            "STATUS_RUNNING" => Some(Self::StatusRunning),
1872            _ => None,
1873        }
1874    }
1875}
1876#[derive(prost_helpers::AnyPB)]
1877#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1878#[repr(i32)]
1879pub enum SubscribeType {
1880    Unspecified = 0,
1881    Frontend = 1,
1882    Hummock = 2,
1883    Compactor = 3,
1884    Compute = 4,
1885}
1886impl SubscribeType {
1887    /// String value of the enum field names used in the ProtoBuf definition.
1888    ///
1889    /// The values are not transformed in any way and thus are considered stable
1890    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1891    pub fn as_str_name(&self) -> &'static str {
1892        match self {
1893            Self::Unspecified => "UNSPECIFIED",
1894            Self::Frontend => "FRONTEND",
1895            Self::Hummock => "HUMMOCK",
1896            Self::Compactor => "COMPACTOR",
1897            Self::Compute => "COMPUTE",
1898        }
1899    }
1900    /// Creates an enum from field names used in the ProtoBuf definition.
1901    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1902        match value {
1903            "UNSPECIFIED" => Some(Self::Unspecified),
1904            "FRONTEND" => Some(Self::Frontend),
1905            "HUMMOCK" => Some(Self::Hummock),
1906            "COMPACTOR" => Some(Self::Compactor),
1907            "COMPUTE" => Some(Self::Compute),
1908            _ => None,
1909        }
1910    }
1911}
1912/// Generated client implementations.
1913pub mod telemetry_info_service_client {
1914    #![allow(
1915        unused_variables,
1916        dead_code,
1917        missing_docs,
1918        clippy::wildcard_imports,
1919        clippy::let_unit_value,
1920    )]
1921    use tonic::codegen::*;
1922    use tonic::codegen::http::Uri;
1923    #[derive(Debug, Clone)]
1924    pub struct TelemetryInfoServiceClient<T> {
1925        inner: tonic::client::Grpc<T>,
1926    }
1927    impl TelemetryInfoServiceClient<tonic::transport::Channel> {
1928        /// Attempt to create a new client by connecting to a given endpoint.
1929        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
1930        where
1931            D: TryInto<tonic::transport::Endpoint>,
1932            D::Error: Into<StdError>,
1933        {
1934            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
1935            Ok(Self::new(conn))
1936        }
1937    }
1938    impl<T> TelemetryInfoServiceClient<T>
1939    where
1940        T: tonic::client::GrpcService<tonic::body::BoxBody>,
1941        T::Error: Into<StdError>,
1942        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
1943        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
1944    {
1945        pub fn new(inner: T) -> Self {
1946            let inner = tonic::client::Grpc::new(inner);
1947            Self { inner }
1948        }
1949        pub fn with_origin(inner: T, origin: Uri) -> Self {
1950            let inner = tonic::client::Grpc::with_origin(inner, origin);
1951            Self { inner }
1952        }
1953        pub fn with_interceptor<F>(
1954            inner: T,
1955            interceptor: F,
1956        ) -> TelemetryInfoServiceClient<InterceptedService<T, F>>
1957        where
1958            F: tonic::service::Interceptor,
1959            T::ResponseBody: Default,
1960            T: tonic::codegen::Service<
1961                http::Request<tonic::body::BoxBody>,
1962                Response = http::Response<
1963                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
1964                >,
1965            >,
1966            <T as tonic::codegen::Service<
1967                http::Request<tonic::body::BoxBody>,
1968            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
1969        {
1970            TelemetryInfoServiceClient::new(InterceptedService::new(inner, interceptor))
1971        }
1972        /// Compress requests with the given encoding.
1973        ///
1974        /// This requires the server to support it otherwise it might respond with an
1975        /// error.
1976        #[must_use]
1977        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
1978            self.inner = self.inner.send_compressed(encoding);
1979            self
1980        }
1981        /// Enable decompressing responses.
1982        #[must_use]
1983        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
1984            self.inner = self.inner.accept_compressed(encoding);
1985            self
1986        }
1987        /// Limits the maximum size of a decoded message.
1988        ///
1989        /// Default: `4MB`
1990        #[must_use]
1991        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
1992            self.inner = self.inner.max_decoding_message_size(limit);
1993            self
1994        }
1995        /// Limits the maximum size of an encoded message.
1996        ///
1997        /// Default: `usize::MAX`
1998        #[must_use]
1999        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2000            self.inner = self.inner.max_encoding_message_size(limit);
2001            self
2002        }
2003        /// Request telemetry info from meta node
2004        pub async fn get_telemetry_info(
2005            &mut self,
2006            request: impl tonic::IntoRequest<super::GetTelemetryInfoRequest>,
2007        ) -> std::result::Result<
2008            tonic::Response<super::TelemetryInfoResponse>,
2009            tonic::Status,
2010        > {
2011            self.inner
2012                .ready()
2013                .await
2014                .map_err(|e| {
2015                    tonic::Status::unknown(
2016                        format!("Service was not ready: {}", e.into()),
2017                    )
2018                })?;
2019            let codec = tonic::codec::ProstCodec::default();
2020            let path = http::uri::PathAndQuery::from_static(
2021                "/meta.TelemetryInfoService/GetTelemetryInfo",
2022            );
2023            let mut req = request.into_request();
2024            req.extensions_mut()
2025                .insert(
2026                    GrpcMethod::new("meta.TelemetryInfoService", "GetTelemetryInfo"),
2027                );
2028            self.inner.unary(req, path, codec).await
2029        }
2030    }
2031}
2032/// Generated client implementations.
2033pub mod heartbeat_service_client {
2034    #![allow(
2035        unused_variables,
2036        dead_code,
2037        missing_docs,
2038        clippy::wildcard_imports,
2039        clippy::let_unit_value,
2040    )]
2041    use tonic::codegen::*;
2042    use tonic::codegen::http::Uri;
2043    #[derive(Debug, Clone)]
2044    pub struct HeartbeatServiceClient<T> {
2045        inner: tonic::client::Grpc<T>,
2046    }
2047    impl HeartbeatServiceClient<tonic::transport::Channel> {
2048        /// Attempt to create a new client by connecting to a given endpoint.
2049        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
2050        where
2051            D: TryInto<tonic::transport::Endpoint>,
2052            D::Error: Into<StdError>,
2053        {
2054            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
2055            Ok(Self::new(conn))
2056        }
2057    }
2058    impl<T> HeartbeatServiceClient<T>
2059    where
2060        T: tonic::client::GrpcService<tonic::body::BoxBody>,
2061        T::Error: Into<StdError>,
2062        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
2063        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
2064    {
2065        pub fn new(inner: T) -> Self {
2066            let inner = tonic::client::Grpc::new(inner);
2067            Self { inner }
2068        }
2069        pub fn with_origin(inner: T, origin: Uri) -> Self {
2070            let inner = tonic::client::Grpc::with_origin(inner, origin);
2071            Self { inner }
2072        }
2073        pub fn with_interceptor<F>(
2074            inner: T,
2075            interceptor: F,
2076        ) -> HeartbeatServiceClient<InterceptedService<T, F>>
2077        where
2078            F: tonic::service::Interceptor,
2079            T::ResponseBody: Default,
2080            T: tonic::codegen::Service<
2081                http::Request<tonic::body::BoxBody>,
2082                Response = http::Response<
2083                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
2084                >,
2085            >,
2086            <T as tonic::codegen::Service<
2087                http::Request<tonic::body::BoxBody>,
2088            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
2089        {
2090            HeartbeatServiceClient::new(InterceptedService::new(inner, interceptor))
2091        }
2092        /// Compress requests with the given encoding.
2093        ///
2094        /// This requires the server to support it otherwise it might respond with an
2095        /// error.
2096        #[must_use]
2097        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2098            self.inner = self.inner.send_compressed(encoding);
2099            self
2100        }
2101        /// Enable decompressing responses.
2102        #[must_use]
2103        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2104            self.inner = self.inner.accept_compressed(encoding);
2105            self
2106        }
2107        /// Limits the maximum size of a decoded message.
2108        ///
2109        /// Default: `4MB`
2110        #[must_use]
2111        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2112            self.inner = self.inner.max_decoding_message_size(limit);
2113            self
2114        }
2115        /// Limits the maximum size of an encoded message.
2116        ///
2117        /// Default: `usize::MAX`
2118        #[must_use]
2119        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2120            self.inner = self.inner.max_encoding_message_size(limit);
2121            self
2122        }
2123        pub async fn heartbeat(
2124            &mut self,
2125            request: impl tonic::IntoRequest<super::HeartbeatRequest>,
2126        ) -> std::result::Result<
2127            tonic::Response<super::HeartbeatResponse>,
2128            tonic::Status,
2129        > {
2130            self.inner
2131                .ready()
2132                .await
2133                .map_err(|e| {
2134                    tonic::Status::unknown(
2135                        format!("Service was not ready: {}", e.into()),
2136                    )
2137                })?;
2138            let codec = tonic::codec::ProstCodec::default();
2139            let path = http::uri::PathAndQuery::from_static(
2140                "/meta.HeartbeatService/Heartbeat",
2141            );
2142            let mut req = request.into_request();
2143            req.extensions_mut()
2144                .insert(GrpcMethod::new("meta.HeartbeatService", "Heartbeat"));
2145            self.inner.unary(req, path, codec).await
2146        }
2147    }
2148}
2149/// Generated client implementations.
2150pub mod stream_manager_service_client {
2151    #![allow(
2152        unused_variables,
2153        dead_code,
2154        missing_docs,
2155        clippy::wildcard_imports,
2156        clippy::let_unit_value,
2157    )]
2158    use tonic::codegen::*;
2159    use tonic::codegen::http::Uri;
2160    #[derive(Debug, Clone)]
2161    pub struct StreamManagerServiceClient<T> {
2162        inner: tonic::client::Grpc<T>,
2163    }
2164    impl StreamManagerServiceClient<tonic::transport::Channel> {
2165        /// Attempt to create a new client by connecting to a given endpoint.
2166        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
2167        where
2168            D: TryInto<tonic::transport::Endpoint>,
2169            D::Error: Into<StdError>,
2170        {
2171            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
2172            Ok(Self::new(conn))
2173        }
2174    }
2175    impl<T> StreamManagerServiceClient<T>
2176    where
2177        T: tonic::client::GrpcService<tonic::body::BoxBody>,
2178        T::Error: Into<StdError>,
2179        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
2180        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
2181    {
2182        pub fn new(inner: T) -> Self {
2183            let inner = tonic::client::Grpc::new(inner);
2184            Self { inner }
2185        }
2186        pub fn with_origin(inner: T, origin: Uri) -> Self {
2187            let inner = tonic::client::Grpc::with_origin(inner, origin);
2188            Self { inner }
2189        }
2190        pub fn with_interceptor<F>(
2191            inner: T,
2192            interceptor: F,
2193        ) -> StreamManagerServiceClient<InterceptedService<T, F>>
2194        where
2195            F: tonic::service::Interceptor,
2196            T::ResponseBody: Default,
2197            T: tonic::codegen::Service<
2198                http::Request<tonic::body::BoxBody>,
2199                Response = http::Response<
2200                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
2201                >,
2202            >,
2203            <T as tonic::codegen::Service<
2204                http::Request<tonic::body::BoxBody>,
2205            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
2206        {
2207            StreamManagerServiceClient::new(InterceptedService::new(inner, interceptor))
2208        }
2209        /// Compress requests with the given encoding.
2210        ///
2211        /// This requires the server to support it otherwise it might respond with an
2212        /// error.
2213        #[must_use]
2214        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2215            self.inner = self.inner.send_compressed(encoding);
2216            self
2217        }
2218        /// Enable decompressing responses.
2219        #[must_use]
2220        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2221            self.inner = self.inner.accept_compressed(encoding);
2222            self
2223        }
2224        /// Limits the maximum size of a decoded message.
2225        ///
2226        /// Default: `4MB`
2227        #[must_use]
2228        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2229            self.inner = self.inner.max_decoding_message_size(limit);
2230            self
2231        }
2232        /// Limits the maximum size of an encoded message.
2233        ///
2234        /// Default: `usize::MAX`
2235        #[must_use]
2236        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2237            self.inner = self.inner.max_encoding_message_size(limit);
2238            self
2239        }
2240        pub async fn flush(
2241            &mut self,
2242            request: impl tonic::IntoRequest<super::FlushRequest>,
2243        ) -> std::result::Result<tonic::Response<super::FlushResponse>, tonic::Status> {
2244            self.inner
2245                .ready()
2246                .await
2247                .map_err(|e| {
2248                    tonic::Status::unknown(
2249                        format!("Service was not ready: {}", e.into()),
2250                    )
2251                })?;
2252            let codec = tonic::codec::ProstCodec::default();
2253            let path = http::uri::PathAndQuery::from_static(
2254                "/meta.StreamManagerService/Flush",
2255            );
2256            let mut req = request.into_request();
2257            req.extensions_mut()
2258                .insert(GrpcMethod::new("meta.StreamManagerService", "Flush"));
2259            self.inner.unary(req, path, codec).await
2260        }
2261        pub async fn pause(
2262            &mut self,
2263            request: impl tonic::IntoRequest<super::PauseRequest>,
2264        ) -> std::result::Result<tonic::Response<super::PauseResponse>, tonic::Status> {
2265            self.inner
2266                .ready()
2267                .await
2268                .map_err(|e| {
2269                    tonic::Status::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                "/meta.StreamManagerService/Pause",
2276            );
2277            let mut req = request.into_request();
2278            req.extensions_mut()
2279                .insert(GrpcMethod::new("meta.StreamManagerService", "Pause"));
2280            self.inner.unary(req, path, codec).await
2281        }
2282        pub async fn resume(
2283            &mut self,
2284            request: impl tonic::IntoRequest<super::ResumeRequest>,
2285        ) -> std::result::Result<tonic::Response<super::ResumeResponse>, tonic::Status> {
2286            self.inner
2287                .ready()
2288                .await
2289                .map_err(|e| {
2290                    tonic::Status::unknown(
2291                        format!("Service was not ready: {}", e.into()),
2292                    )
2293                })?;
2294            let codec = tonic::codec::ProstCodec::default();
2295            let path = http::uri::PathAndQuery::from_static(
2296                "/meta.StreamManagerService/Resume",
2297            );
2298            let mut req = request.into_request();
2299            req.extensions_mut()
2300                .insert(GrpcMethod::new("meta.StreamManagerService", "Resume"));
2301            self.inner.unary(req, path, codec).await
2302        }
2303        pub async fn refresh(
2304            &mut self,
2305            request: impl tonic::IntoRequest<super::RefreshRequest>,
2306        ) -> std::result::Result<
2307            tonic::Response<super::RefreshResponse>,
2308            tonic::Status,
2309        > {
2310            self.inner
2311                .ready()
2312                .await
2313                .map_err(|e| {
2314                    tonic::Status::unknown(
2315                        format!("Service was not ready: {}", e.into()),
2316                    )
2317                })?;
2318            let codec = tonic::codec::ProstCodec::default();
2319            let path = http::uri::PathAndQuery::from_static(
2320                "/meta.StreamManagerService/Refresh",
2321            );
2322            let mut req = request.into_request();
2323            req.extensions_mut()
2324                .insert(GrpcMethod::new("meta.StreamManagerService", "Refresh"));
2325            self.inner.unary(req, path, codec).await
2326        }
2327        pub async fn cancel_creating_jobs(
2328            &mut self,
2329            request: impl tonic::IntoRequest<super::CancelCreatingJobsRequest>,
2330        ) -> std::result::Result<
2331            tonic::Response<super::CancelCreatingJobsResponse>,
2332            tonic::Status,
2333        > {
2334            self.inner
2335                .ready()
2336                .await
2337                .map_err(|e| {
2338                    tonic::Status::unknown(
2339                        format!("Service was not ready: {}", e.into()),
2340                    )
2341                })?;
2342            let codec = tonic::codec::ProstCodec::default();
2343            let path = http::uri::PathAndQuery::from_static(
2344                "/meta.StreamManagerService/CancelCreatingJobs",
2345            );
2346            let mut req = request.into_request();
2347            req.extensions_mut()
2348                .insert(
2349                    GrpcMethod::new("meta.StreamManagerService", "CancelCreatingJobs"),
2350                );
2351            self.inner.unary(req, path, codec).await
2352        }
2353        pub async fn list_table_fragments(
2354            &mut self,
2355            request: impl tonic::IntoRequest<super::ListTableFragmentsRequest>,
2356        ) -> std::result::Result<
2357            tonic::Response<super::ListTableFragmentsResponse>,
2358            tonic::Status,
2359        > {
2360            self.inner
2361                .ready()
2362                .await
2363                .map_err(|e| {
2364                    tonic::Status::unknown(
2365                        format!("Service was not ready: {}", e.into()),
2366                    )
2367                })?;
2368            let codec = tonic::codec::ProstCodec::default();
2369            let path = http::uri::PathAndQuery::from_static(
2370                "/meta.StreamManagerService/ListTableFragments",
2371            );
2372            let mut req = request.into_request();
2373            req.extensions_mut()
2374                .insert(
2375                    GrpcMethod::new("meta.StreamManagerService", "ListTableFragments"),
2376                );
2377            self.inner.unary(req, path, codec).await
2378        }
2379        pub async fn list_streaming_job_states(
2380            &mut self,
2381            request: impl tonic::IntoRequest<super::ListStreamingJobStatesRequest>,
2382        ) -> std::result::Result<
2383            tonic::Response<super::ListStreamingJobStatesResponse>,
2384            tonic::Status,
2385        > {
2386            self.inner
2387                .ready()
2388                .await
2389                .map_err(|e| {
2390                    tonic::Status::unknown(
2391                        format!("Service was not ready: {}", e.into()),
2392                    )
2393                })?;
2394            let codec = tonic::codec::ProstCodec::default();
2395            let path = http::uri::PathAndQuery::from_static(
2396                "/meta.StreamManagerService/ListStreamingJobStates",
2397            );
2398            let mut req = request.into_request();
2399            req.extensions_mut()
2400                .insert(
2401                    GrpcMethod::new(
2402                        "meta.StreamManagerService",
2403                        "ListStreamingJobStates",
2404                    ),
2405                );
2406            self.inner.unary(req, path, codec).await
2407        }
2408        pub async fn list_fragment_distribution(
2409            &mut self,
2410            request: impl tonic::IntoRequest<super::ListFragmentDistributionRequest>,
2411        ) -> std::result::Result<
2412            tonic::Response<super::ListFragmentDistributionResponse>,
2413            tonic::Status,
2414        > {
2415            self.inner
2416                .ready()
2417                .await
2418                .map_err(|e| {
2419                    tonic::Status::unknown(
2420                        format!("Service was not ready: {}", e.into()),
2421                    )
2422                })?;
2423            let codec = tonic::codec::ProstCodec::default();
2424            let path = http::uri::PathAndQuery::from_static(
2425                "/meta.StreamManagerService/ListFragmentDistribution",
2426            );
2427            let mut req = request.into_request();
2428            req.extensions_mut()
2429                .insert(
2430                    GrpcMethod::new(
2431                        "meta.StreamManagerService",
2432                        "ListFragmentDistribution",
2433                    ),
2434                );
2435            self.inner.unary(req, path, codec).await
2436        }
2437        pub async fn list_creating_fragment_distribution(
2438            &mut self,
2439            request: impl tonic::IntoRequest<
2440                super::ListCreatingFragmentDistributionRequest,
2441            >,
2442        ) -> std::result::Result<
2443            tonic::Response<super::ListCreatingFragmentDistributionResponse>,
2444            tonic::Status,
2445        > {
2446            self.inner
2447                .ready()
2448                .await
2449                .map_err(|e| {
2450                    tonic::Status::unknown(
2451                        format!("Service was not ready: {}", e.into()),
2452                    )
2453                })?;
2454            let codec = tonic::codec::ProstCodec::default();
2455            let path = http::uri::PathAndQuery::from_static(
2456                "/meta.StreamManagerService/ListCreatingFragmentDistribution",
2457            );
2458            let mut req = request.into_request();
2459            req.extensions_mut()
2460                .insert(
2461                    GrpcMethod::new(
2462                        "meta.StreamManagerService",
2463                        "ListCreatingFragmentDistribution",
2464                    ),
2465                );
2466            self.inner.unary(req, path, codec).await
2467        }
2468        pub async fn list_actor_states(
2469            &mut self,
2470            request: impl tonic::IntoRequest<super::ListActorStatesRequest>,
2471        ) -> std::result::Result<
2472            tonic::Response<super::ListActorStatesResponse>,
2473            tonic::Status,
2474        > {
2475            self.inner
2476                .ready()
2477                .await
2478                .map_err(|e| {
2479                    tonic::Status::unknown(
2480                        format!("Service was not ready: {}", e.into()),
2481                    )
2482                })?;
2483            let codec = tonic::codec::ProstCodec::default();
2484            let path = http::uri::PathAndQuery::from_static(
2485                "/meta.StreamManagerService/ListActorStates",
2486            );
2487            let mut req = request.into_request();
2488            req.extensions_mut()
2489                .insert(GrpcMethod::new("meta.StreamManagerService", "ListActorStates"));
2490            self.inner.unary(req, path, codec).await
2491        }
2492        pub async fn list_actor_splits(
2493            &mut self,
2494            request: impl tonic::IntoRequest<super::ListActorSplitsRequest>,
2495        ) -> std::result::Result<
2496            tonic::Response<super::ListActorSplitsResponse>,
2497            tonic::Status,
2498        > {
2499            self.inner
2500                .ready()
2501                .await
2502                .map_err(|e| {
2503                    tonic::Status::unknown(
2504                        format!("Service was not ready: {}", e.into()),
2505                    )
2506                })?;
2507            let codec = tonic::codec::ProstCodec::default();
2508            let path = http::uri::PathAndQuery::from_static(
2509                "/meta.StreamManagerService/ListActorSplits",
2510            );
2511            let mut req = request.into_request();
2512            req.extensions_mut()
2513                .insert(GrpcMethod::new("meta.StreamManagerService", "ListActorSplits"));
2514            self.inner.unary(req, path, codec).await
2515        }
2516        pub async fn list_object_dependencies(
2517            &mut self,
2518            request: impl tonic::IntoRequest<super::ListObjectDependenciesRequest>,
2519        ) -> std::result::Result<
2520            tonic::Response<super::ListObjectDependenciesResponse>,
2521            tonic::Status,
2522        > {
2523            self.inner
2524                .ready()
2525                .await
2526                .map_err(|e| {
2527                    tonic::Status::unknown(
2528                        format!("Service was not ready: {}", e.into()),
2529                    )
2530                })?;
2531            let codec = tonic::codec::ProstCodec::default();
2532            let path = http::uri::PathAndQuery::from_static(
2533                "/meta.StreamManagerService/ListObjectDependencies",
2534            );
2535            let mut req = request.into_request();
2536            req.extensions_mut()
2537                .insert(
2538                    GrpcMethod::new(
2539                        "meta.StreamManagerService",
2540                        "ListObjectDependencies",
2541                    ),
2542                );
2543            self.inner.unary(req, path, codec).await
2544        }
2545        pub async fn apply_throttle(
2546            &mut self,
2547            request: impl tonic::IntoRequest<super::ApplyThrottleRequest>,
2548        ) -> std::result::Result<
2549            tonic::Response<super::ApplyThrottleResponse>,
2550            tonic::Status,
2551        > {
2552            self.inner
2553                .ready()
2554                .await
2555                .map_err(|e| {
2556                    tonic::Status::unknown(
2557                        format!("Service was not ready: {}", e.into()),
2558                    )
2559                })?;
2560            let codec = tonic::codec::ProstCodec::default();
2561            let path = http::uri::PathAndQuery::from_static(
2562                "/meta.StreamManagerService/ApplyThrottle",
2563            );
2564            let mut req = request.into_request();
2565            req.extensions_mut()
2566                .insert(GrpcMethod::new("meta.StreamManagerService", "ApplyThrottle"));
2567            self.inner.unary(req, path, codec).await
2568        }
2569        pub async fn recover(
2570            &mut self,
2571            request: impl tonic::IntoRequest<super::RecoverRequest>,
2572        ) -> std::result::Result<
2573            tonic::Response<super::RecoverResponse>,
2574            tonic::Status,
2575        > {
2576            self.inner
2577                .ready()
2578                .await
2579                .map_err(|e| {
2580                    tonic::Status::unknown(
2581                        format!("Service was not ready: {}", e.into()),
2582                    )
2583                })?;
2584            let codec = tonic::codec::ProstCodec::default();
2585            let path = http::uri::PathAndQuery::from_static(
2586                "/meta.StreamManagerService/Recover",
2587            );
2588            let mut req = request.into_request();
2589            req.extensions_mut()
2590                .insert(GrpcMethod::new("meta.StreamManagerService", "Recover"));
2591            self.inner.unary(req, path, codec).await
2592        }
2593        pub async fn list_rate_limits(
2594            &mut self,
2595            request: impl tonic::IntoRequest<super::ListRateLimitsRequest>,
2596        ) -> std::result::Result<
2597            tonic::Response<super::ListRateLimitsResponse>,
2598            tonic::Status,
2599        > {
2600            self.inner
2601                .ready()
2602                .await
2603                .map_err(|e| {
2604                    tonic::Status::unknown(
2605                        format!("Service was not ready: {}", e.into()),
2606                    )
2607                })?;
2608            let codec = tonic::codec::ProstCodec::default();
2609            let path = http::uri::PathAndQuery::from_static(
2610                "/meta.StreamManagerService/ListRateLimits",
2611            );
2612            let mut req = request.into_request();
2613            req.extensions_mut()
2614                .insert(GrpcMethod::new("meta.StreamManagerService", "ListRateLimits"));
2615            self.inner.unary(req, path, codec).await
2616        }
2617        pub async fn alter_connector_props(
2618            &mut self,
2619            request: impl tonic::IntoRequest<super::AlterConnectorPropsRequest>,
2620        ) -> std::result::Result<
2621            tonic::Response<super::AlterConnectorPropsResponse>,
2622            tonic::Status,
2623        > {
2624            self.inner
2625                .ready()
2626                .await
2627                .map_err(|e| {
2628                    tonic::Status::unknown(
2629                        format!("Service was not ready: {}", e.into()),
2630                    )
2631                })?;
2632            let codec = tonic::codec::ProstCodec::default();
2633            let path = http::uri::PathAndQuery::from_static(
2634                "/meta.StreamManagerService/AlterConnectorProps",
2635            );
2636            let mut req = request.into_request();
2637            req.extensions_mut()
2638                .insert(
2639                    GrpcMethod::new("meta.StreamManagerService", "AlterConnectorProps"),
2640                );
2641            self.inner.unary(req, path, codec).await
2642        }
2643        pub async fn get_fragment_by_id(
2644            &mut self,
2645            request: impl tonic::IntoRequest<super::GetFragmentByIdRequest>,
2646        ) -> std::result::Result<
2647            tonic::Response<super::GetFragmentByIdResponse>,
2648            tonic::Status,
2649        > {
2650            self.inner
2651                .ready()
2652                .await
2653                .map_err(|e| {
2654                    tonic::Status::unknown(
2655                        format!("Service was not ready: {}", e.into()),
2656                    )
2657                })?;
2658            let codec = tonic::codec::ProstCodec::default();
2659            let path = http::uri::PathAndQuery::from_static(
2660                "/meta.StreamManagerService/GetFragmentById",
2661            );
2662            let mut req = request.into_request();
2663            req.extensions_mut()
2664                .insert(GrpcMethod::new("meta.StreamManagerService", "GetFragmentById"));
2665            self.inner.unary(req, path, codec).await
2666        }
2667        pub async fn get_fragment_vnodes(
2668            &mut self,
2669            request: impl tonic::IntoRequest<super::GetFragmentVnodesRequest>,
2670        ) -> std::result::Result<
2671            tonic::Response<super::GetFragmentVnodesResponse>,
2672            tonic::Status,
2673        > {
2674            self.inner
2675                .ready()
2676                .await
2677                .map_err(|e| {
2678                    tonic::Status::unknown(
2679                        format!("Service was not ready: {}", e.into()),
2680                    )
2681                })?;
2682            let codec = tonic::codec::ProstCodec::default();
2683            let path = http::uri::PathAndQuery::from_static(
2684                "/meta.StreamManagerService/GetFragmentVnodes",
2685            );
2686            let mut req = request.into_request();
2687            req.extensions_mut()
2688                .insert(
2689                    GrpcMethod::new("meta.StreamManagerService", "GetFragmentVnodes"),
2690                );
2691            self.inner.unary(req, path, codec).await
2692        }
2693        pub async fn get_actor_vnodes(
2694            &mut self,
2695            request: impl tonic::IntoRequest<super::GetActorVnodesRequest>,
2696        ) -> std::result::Result<
2697            tonic::Response<super::GetActorVnodesResponse>,
2698            tonic::Status,
2699        > {
2700            self.inner
2701                .ready()
2702                .await
2703                .map_err(|e| {
2704                    tonic::Status::unknown(
2705                        format!("Service was not ready: {}", e.into()),
2706                    )
2707                })?;
2708            let codec = tonic::codec::ProstCodec::default();
2709            let path = http::uri::PathAndQuery::from_static(
2710                "/meta.StreamManagerService/GetActorVnodes",
2711            );
2712            let mut req = request.into_request();
2713            req.extensions_mut()
2714                .insert(GrpcMethod::new("meta.StreamManagerService", "GetActorVnodes"));
2715            self.inner.unary(req, path, codec).await
2716        }
2717        pub async fn set_sync_log_store_aligned(
2718            &mut self,
2719            request: impl tonic::IntoRequest<super::SetSyncLogStoreAlignedRequest>,
2720        ) -> std::result::Result<
2721            tonic::Response<super::SetSyncLogStoreAlignedResponse>,
2722            tonic::Status,
2723        > {
2724            self.inner
2725                .ready()
2726                .await
2727                .map_err(|e| {
2728                    tonic::Status::unknown(
2729                        format!("Service was not ready: {}", e.into()),
2730                    )
2731                })?;
2732            let codec = tonic::codec::ProstCodec::default();
2733            let path = http::uri::PathAndQuery::from_static(
2734                "/meta.StreamManagerService/SetSyncLogStoreAligned",
2735            );
2736            let mut req = request.into_request();
2737            req.extensions_mut()
2738                .insert(
2739                    GrpcMethod::new(
2740                        "meta.StreamManagerService",
2741                        "SetSyncLogStoreAligned",
2742                    ),
2743                );
2744            self.inner.unary(req, path, codec).await
2745        }
2746        pub async fn list_cdc_progress(
2747            &mut self,
2748            request: impl tonic::IntoRequest<super::ListCdcProgressRequest>,
2749        ) -> std::result::Result<
2750            tonic::Response<super::ListCdcProgressResponse>,
2751            tonic::Status,
2752        > {
2753            self.inner
2754                .ready()
2755                .await
2756                .map_err(|e| {
2757                    tonic::Status::unknown(
2758                        format!("Service was not ready: {}", e.into()),
2759                    )
2760                })?;
2761            let codec = tonic::codec::ProstCodec::default();
2762            let path = http::uri::PathAndQuery::from_static(
2763                "/meta.StreamManagerService/ListCdcProgress",
2764            );
2765            let mut req = request.into_request();
2766            req.extensions_mut()
2767                .insert(GrpcMethod::new("meta.StreamManagerService", "ListCdcProgress"));
2768            self.inner.unary(req, path, codec).await
2769        }
2770        pub async fn list_unmigrated_tables(
2771            &mut self,
2772            request: impl tonic::IntoRequest<super::ListUnmigratedTablesRequest>,
2773        ) -> std::result::Result<
2774            tonic::Response<super::ListUnmigratedTablesResponse>,
2775            tonic::Status,
2776        > {
2777            self.inner
2778                .ready()
2779                .await
2780                .map_err(|e| {
2781                    tonic::Status::unknown(
2782                        format!("Service was not ready: {}", e.into()),
2783                    )
2784                })?;
2785            let codec = tonic::codec::ProstCodec::default();
2786            let path = http::uri::PathAndQuery::from_static(
2787                "/meta.StreamManagerService/ListUnmigratedTables",
2788            );
2789            let mut req = request.into_request();
2790            req.extensions_mut()
2791                .insert(
2792                    GrpcMethod::new("meta.StreamManagerService", "ListUnmigratedTables"),
2793                );
2794            self.inner.unary(req, path, codec).await
2795        }
2796    }
2797}
2798/// Generated client implementations.
2799pub mod cluster_service_client {
2800    #![allow(
2801        unused_variables,
2802        dead_code,
2803        missing_docs,
2804        clippy::wildcard_imports,
2805        clippy::let_unit_value,
2806    )]
2807    use tonic::codegen::*;
2808    use tonic::codegen::http::Uri;
2809    #[derive(Debug, Clone)]
2810    pub struct ClusterServiceClient<T> {
2811        inner: tonic::client::Grpc<T>,
2812    }
2813    impl ClusterServiceClient<tonic::transport::Channel> {
2814        /// Attempt to create a new client by connecting to a given endpoint.
2815        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
2816        where
2817            D: TryInto<tonic::transport::Endpoint>,
2818            D::Error: Into<StdError>,
2819        {
2820            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
2821            Ok(Self::new(conn))
2822        }
2823    }
2824    impl<T> ClusterServiceClient<T>
2825    where
2826        T: tonic::client::GrpcService<tonic::body::BoxBody>,
2827        T::Error: Into<StdError>,
2828        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
2829        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
2830    {
2831        pub fn new(inner: T) -> Self {
2832            let inner = tonic::client::Grpc::new(inner);
2833            Self { inner }
2834        }
2835        pub fn with_origin(inner: T, origin: Uri) -> Self {
2836            let inner = tonic::client::Grpc::with_origin(inner, origin);
2837            Self { inner }
2838        }
2839        pub fn with_interceptor<F>(
2840            inner: T,
2841            interceptor: F,
2842        ) -> ClusterServiceClient<InterceptedService<T, F>>
2843        where
2844            F: tonic::service::Interceptor,
2845            T::ResponseBody: Default,
2846            T: tonic::codegen::Service<
2847                http::Request<tonic::body::BoxBody>,
2848                Response = http::Response<
2849                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
2850                >,
2851            >,
2852            <T as tonic::codegen::Service<
2853                http::Request<tonic::body::BoxBody>,
2854            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
2855        {
2856            ClusterServiceClient::new(InterceptedService::new(inner, interceptor))
2857        }
2858        /// Compress requests with the given encoding.
2859        ///
2860        /// This requires the server to support it otherwise it might respond with an
2861        /// error.
2862        #[must_use]
2863        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2864            self.inner = self.inner.send_compressed(encoding);
2865            self
2866        }
2867        /// Enable decompressing responses.
2868        #[must_use]
2869        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2870            self.inner = self.inner.accept_compressed(encoding);
2871            self
2872        }
2873        /// Limits the maximum size of a decoded message.
2874        ///
2875        /// Default: `4MB`
2876        #[must_use]
2877        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2878            self.inner = self.inner.max_decoding_message_size(limit);
2879            self
2880        }
2881        /// Limits the maximum size of an encoded message.
2882        ///
2883        /// Default: `usize::MAX`
2884        #[must_use]
2885        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2886            self.inner = self.inner.max_encoding_message_size(limit);
2887            self
2888        }
2889        pub async fn add_worker_node(
2890            &mut self,
2891            request: impl tonic::IntoRequest<super::AddWorkerNodeRequest>,
2892        ) -> std::result::Result<
2893            tonic::Response<super::AddWorkerNodeResponse>,
2894            tonic::Status,
2895        > {
2896            self.inner
2897                .ready()
2898                .await
2899                .map_err(|e| {
2900                    tonic::Status::unknown(
2901                        format!("Service was not ready: {}", e.into()),
2902                    )
2903                })?;
2904            let codec = tonic::codec::ProstCodec::default();
2905            let path = http::uri::PathAndQuery::from_static(
2906                "/meta.ClusterService/AddWorkerNode",
2907            );
2908            let mut req = request.into_request();
2909            req.extensions_mut()
2910                .insert(GrpcMethod::new("meta.ClusterService", "AddWorkerNode"));
2911            self.inner.unary(req, path, codec).await
2912        }
2913        pub async fn activate_worker_node(
2914            &mut self,
2915            request: impl tonic::IntoRequest<super::ActivateWorkerNodeRequest>,
2916        ) -> std::result::Result<
2917            tonic::Response<super::ActivateWorkerNodeResponse>,
2918            tonic::Status,
2919        > {
2920            self.inner
2921                .ready()
2922                .await
2923                .map_err(|e| {
2924                    tonic::Status::unknown(
2925                        format!("Service was not ready: {}", e.into()),
2926                    )
2927                })?;
2928            let codec = tonic::codec::ProstCodec::default();
2929            let path = http::uri::PathAndQuery::from_static(
2930                "/meta.ClusterService/ActivateWorkerNode",
2931            );
2932            let mut req = request.into_request();
2933            req.extensions_mut()
2934                .insert(GrpcMethod::new("meta.ClusterService", "ActivateWorkerNode"));
2935            self.inner.unary(req, path, codec).await
2936        }
2937        pub async fn delete_worker_node(
2938            &mut self,
2939            request: impl tonic::IntoRequest<super::DeleteWorkerNodeRequest>,
2940        ) -> std::result::Result<
2941            tonic::Response<super::DeleteWorkerNodeResponse>,
2942            tonic::Status,
2943        > {
2944            self.inner
2945                .ready()
2946                .await
2947                .map_err(|e| {
2948                    tonic::Status::unknown(
2949                        format!("Service was not ready: {}", e.into()),
2950                    )
2951                })?;
2952            let codec = tonic::codec::ProstCodec::default();
2953            let path = http::uri::PathAndQuery::from_static(
2954                "/meta.ClusterService/DeleteWorkerNode",
2955            );
2956            let mut req = request.into_request();
2957            req.extensions_mut()
2958                .insert(GrpcMethod::new("meta.ClusterService", "DeleteWorkerNode"));
2959            self.inner.unary(req, path, codec).await
2960        }
2961        pub async fn update_worker_node_schedulability(
2962            &mut self,
2963            request: impl tonic::IntoRequest<
2964                super::UpdateWorkerNodeSchedulabilityRequest,
2965            >,
2966        ) -> std::result::Result<
2967            tonic::Response<super::UpdateWorkerNodeSchedulabilityResponse>,
2968            tonic::Status,
2969        > {
2970            self.inner
2971                .ready()
2972                .await
2973                .map_err(|e| {
2974                    tonic::Status::unknown(
2975                        format!("Service was not ready: {}", e.into()),
2976                    )
2977                })?;
2978            let codec = tonic::codec::ProstCodec::default();
2979            let path = http::uri::PathAndQuery::from_static(
2980                "/meta.ClusterService/UpdateWorkerNodeSchedulability",
2981            );
2982            let mut req = request.into_request();
2983            req.extensions_mut()
2984                .insert(
2985                    GrpcMethod::new(
2986                        "meta.ClusterService",
2987                        "UpdateWorkerNodeSchedulability",
2988                    ),
2989                );
2990            self.inner.unary(req, path, codec).await
2991        }
2992        pub async fn list_all_nodes(
2993            &mut self,
2994            request: impl tonic::IntoRequest<super::ListAllNodesRequest>,
2995        ) -> std::result::Result<
2996            tonic::Response<super::ListAllNodesResponse>,
2997            tonic::Status,
2998        > {
2999            self.inner
3000                .ready()
3001                .await
3002                .map_err(|e| {
3003                    tonic::Status::unknown(
3004                        format!("Service was not ready: {}", e.into()),
3005                    )
3006                })?;
3007            let codec = tonic::codec::ProstCodec::default();
3008            let path = http::uri::PathAndQuery::from_static(
3009                "/meta.ClusterService/ListAllNodes",
3010            );
3011            let mut req = request.into_request();
3012            req.extensions_mut()
3013                .insert(GrpcMethod::new("meta.ClusterService", "ListAllNodes"));
3014            self.inner.unary(req, path, codec).await
3015        }
3016        pub async fn get_cluster_recovery_status(
3017            &mut self,
3018            request: impl tonic::IntoRequest<super::GetClusterRecoveryStatusRequest>,
3019        ) -> std::result::Result<
3020            tonic::Response<super::GetClusterRecoveryStatusResponse>,
3021            tonic::Status,
3022        > {
3023            self.inner
3024                .ready()
3025                .await
3026                .map_err(|e| {
3027                    tonic::Status::unknown(
3028                        format!("Service was not ready: {}", e.into()),
3029                    )
3030                })?;
3031            let codec = tonic::codec::ProstCodec::default();
3032            let path = http::uri::PathAndQuery::from_static(
3033                "/meta.ClusterService/GetClusterRecoveryStatus",
3034            );
3035            let mut req = request.into_request();
3036            req.extensions_mut()
3037                .insert(
3038                    GrpcMethod::new("meta.ClusterService", "GetClusterRecoveryStatus"),
3039                );
3040            self.inner.unary(req, path, codec).await
3041        }
3042        pub async fn get_meta_store_info(
3043            &mut self,
3044            request: impl tonic::IntoRequest<super::GetMetaStoreInfoRequest>,
3045        ) -> std::result::Result<
3046            tonic::Response<super::GetMetaStoreInfoResponse>,
3047            tonic::Status,
3048        > {
3049            self.inner
3050                .ready()
3051                .await
3052                .map_err(|e| {
3053                    tonic::Status::unknown(
3054                        format!("Service was not ready: {}", e.into()),
3055                    )
3056                })?;
3057            let codec = tonic::codec::ProstCodec::default();
3058            let path = http::uri::PathAndQuery::from_static(
3059                "/meta.ClusterService/GetMetaStoreInfo",
3060            );
3061            let mut req = request.into_request();
3062            req.extensions_mut()
3063                .insert(GrpcMethod::new("meta.ClusterService", "GetMetaStoreInfo"));
3064            self.inner.unary(req, path, codec).await
3065        }
3066    }
3067}
3068/// Generated client implementations.
3069pub mod notification_service_client {
3070    #![allow(
3071        unused_variables,
3072        dead_code,
3073        missing_docs,
3074        clippy::wildcard_imports,
3075        clippy::let_unit_value,
3076    )]
3077    use tonic::codegen::*;
3078    use tonic::codegen::http::Uri;
3079    #[derive(Debug, Clone)]
3080    pub struct NotificationServiceClient<T> {
3081        inner: tonic::client::Grpc<T>,
3082    }
3083    impl NotificationServiceClient<tonic::transport::Channel> {
3084        /// Attempt to create a new client by connecting to a given endpoint.
3085        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
3086        where
3087            D: TryInto<tonic::transport::Endpoint>,
3088            D::Error: Into<StdError>,
3089        {
3090            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
3091            Ok(Self::new(conn))
3092        }
3093    }
3094    impl<T> NotificationServiceClient<T>
3095    where
3096        T: tonic::client::GrpcService<tonic::body::BoxBody>,
3097        T::Error: Into<StdError>,
3098        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
3099        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
3100    {
3101        pub fn new(inner: T) -> Self {
3102            let inner = tonic::client::Grpc::new(inner);
3103            Self { inner }
3104        }
3105        pub fn with_origin(inner: T, origin: Uri) -> Self {
3106            let inner = tonic::client::Grpc::with_origin(inner, origin);
3107            Self { inner }
3108        }
3109        pub fn with_interceptor<F>(
3110            inner: T,
3111            interceptor: F,
3112        ) -> NotificationServiceClient<InterceptedService<T, F>>
3113        where
3114            F: tonic::service::Interceptor,
3115            T::ResponseBody: Default,
3116            T: tonic::codegen::Service<
3117                http::Request<tonic::body::BoxBody>,
3118                Response = http::Response<
3119                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
3120                >,
3121            >,
3122            <T as tonic::codegen::Service<
3123                http::Request<tonic::body::BoxBody>,
3124            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
3125        {
3126            NotificationServiceClient::new(InterceptedService::new(inner, interceptor))
3127        }
3128        /// Compress requests with the given encoding.
3129        ///
3130        /// This requires the server to support it otherwise it might respond with an
3131        /// error.
3132        #[must_use]
3133        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
3134            self.inner = self.inner.send_compressed(encoding);
3135            self
3136        }
3137        /// Enable decompressing responses.
3138        #[must_use]
3139        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
3140            self.inner = self.inner.accept_compressed(encoding);
3141            self
3142        }
3143        /// Limits the maximum size of a decoded message.
3144        ///
3145        /// Default: `4MB`
3146        #[must_use]
3147        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
3148            self.inner = self.inner.max_decoding_message_size(limit);
3149            self
3150        }
3151        /// Limits the maximum size of an encoded message.
3152        ///
3153        /// Default: `usize::MAX`
3154        #[must_use]
3155        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
3156            self.inner = self.inner.max_encoding_message_size(limit);
3157            self
3158        }
3159        pub async fn subscribe(
3160            &mut self,
3161            request: impl tonic::IntoRequest<super::SubscribeRequest>,
3162        ) -> std::result::Result<
3163            tonic::Response<tonic::codec::Streaming<super::SubscribeResponse>>,
3164            tonic::Status,
3165        > {
3166            self.inner
3167                .ready()
3168                .await
3169                .map_err(|e| {
3170                    tonic::Status::unknown(
3171                        format!("Service was not ready: {}", e.into()),
3172                    )
3173                })?;
3174            let codec = tonic::codec::ProstCodec::default();
3175            let path = http::uri::PathAndQuery::from_static(
3176                "/meta.NotificationService/Subscribe",
3177            );
3178            let mut req = request.into_request();
3179            req.extensions_mut()
3180                .insert(GrpcMethod::new("meta.NotificationService", "Subscribe"));
3181            self.inner.server_streaming(req, path, codec).await
3182        }
3183    }
3184}
3185/// Generated client implementations.
3186pub mod scale_service_client {
3187    #![allow(
3188        unused_variables,
3189        dead_code,
3190        missing_docs,
3191        clippy::wildcard_imports,
3192        clippy::let_unit_value,
3193    )]
3194    use tonic::codegen::*;
3195    use tonic::codegen::http::Uri;
3196    /// This is used by `risectl`
3197    #[derive(Debug, Clone)]
3198    pub struct ScaleServiceClient<T> {
3199        inner: tonic::client::Grpc<T>,
3200    }
3201    impl ScaleServiceClient<tonic::transport::Channel> {
3202        /// Attempt to create a new client by connecting to a given endpoint.
3203        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
3204        where
3205            D: TryInto<tonic::transport::Endpoint>,
3206            D::Error: Into<StdError>,
3207        {
3208            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
3209            Ok(Self::new(conn))
3210        }
3211    }
3212    impl<T> ScaleServiceClient<T>
3213    where
3214        T: tonic::client::GrpcService<tonic::body::BoxBody>,
3215        T::Error: Into<StdError>,
3216        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
3217        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
3218    {
3219        pub fn new(inner: T) -> Self {
3220            let inner = tonic::client::Grpc::new(inner);
3221            Self { inner }
3222        }
3223        pub fn with_origin(inner: T, origin: Uri) -> Self {
3224            let inner = tonic::client::Grpc::with_origin(inner, origin);
3225            Self { inner }
3226        }
3227        pub fn with_interceptor<F>(
3228            inner: T,
3229            interceptor: F,
3230        ) -> ScaleServiceClient<InterceptedService<T, F>>
3231        where
3232            F: tonic::service::Interceptor,
3233            T::ResponseBody: Default,
3234            T: tonic::codegen::Service<
3235                http::Request<tonic::body::BoxBody>,
3236                Response = http::Response<
3237                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
3238                >,
3239            >,
3240            <T as tonic::codegen::Service<
3241                http::Request<tonic::body::BoxBody>,
3242            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
3243        {
3244            ScaleServiceClient::new(InterceptedService::new(inner, interceptor))
3245        }
3246        /// Compress requests with the given encoding.
3247        ///
3248        /// This requires the server to support it otherwise it might respond with an
3249        /// error.
3250        #[must_use]
3251        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
3252            self.inner = self.inner.send_compressed(encoding);
3253            self
3254        }
3255        /// Enable decompressing responses.
3256        #[must_use]
3257        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
3258            self.inner = self.inner.accept_compressed(encoding);
3259            self
3260        }
3261        /// Limits the maximum size of a decoded message.
3262        ///
3263        /// Default: `4MB`
3264        #[must_use]
3265        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
3266            self.inner = self.inner.max_decoding_message_size(limit);
3267            self
3268        }
3269        /// Limits the maximum size of an encoded message.
3270        ///
3271        /// Default: `usize::MAX`
3272        #[must_use]
3273        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
3274            self.inner = self.inner.max_encoding_message_size(limit);
3275            self
3276        }
3277        pub async fn get_cluster_info(
3278            &mut self,
3279            request: impl tonic::IntoRequest<super::GetClusterInfoRequest>,
3280        ) -> std::result::Result<
3281            tonic::Response<super::GetClusterInfoResponse>,
3282            tonic::Status,
3283        > {
3284            self.inner
3285                .ready()
3286                .await
3287                .map_err(|e| {
3288                    tonic::Status::unknown(
3289                        format!("Service was not ready: {}", e.into()),
3290                    )
3291                })?;
3292            let codec = tonic::codec::ProstCodec::default();
3293            let path = http::uri::PathAndQuery::from_static(
3294                "/meta.ScaleService/GetClusterInfo",
3295            );
3296            let mut req = request.into_request();
3297            req.extensions_mut()
3298                .insert(GrpcMethod::new("meta.ScaleService", "GetClusterInfo"));
3299            self.inner.unary(req, path, codec).await
3300        }
3301        pub async fn reschedule(
3302            &mut self,
3303            request: impl tonic::IntoRequest<super::RescheduleRequest>,
3304        ) -> std::result::Result<
3305            tonic::Response<super::RescheduleResponse>,
3306            tonic::Status,
3307        > {
3308            self.inner
3309                .ready()
3310                .await
3311                .map_err(|e| {
3312                    tonic::Status::unknown(
3313                        format!("Service was not ready: {}", e.into()),
3314                    )
3315                })?;
3316            let codec = tonic::codec::ProstCodec::default();
3317            let path = http::uri::PathAndQuery::from_static(
3318                "/meta.ScaleService/Reschedule",
3319            );
3320            let mut req = request.into_request();
3321            req.extensions_mut()
3322                .insert(GrpcMethod::new("meta.ScaleService", "Reschedule"));
3323            self.inner.unary(req, path, codec).await
3324        }
3325        pub async fn update_streaming_job_node_labels(
3326            &mut self,
3327            request: impl tonic::IntoRequest<super::UpdateStreamingJobNodeLabelsRequest>,
3328        ) -> std::result::Result<
3329            tonic::Response<super::UpdateStreamingJobNodeLabelsResponse>,
3330            tonic::Status,
3331        > {
3332            self.inner
3333                .ready()
3334                .await
3335                .map_err(|e| {
3336                    tonic::Status::unknown(
3337                        format!("Service was not ready: {}", e.into()),
3338                    )
3339                })?;
3340            let codec = tonic::codec::ProstCodec::default();
3341            let path = http::uri::PathAndQuery::from_static(
3342                "/meta.ScaleService/UpdateStreamingJobNodeLabels",
3343            );
3344            let mut req = request.into_request();
3345            req.extensions_mut()
3346                .insert(
3347                    GrpcMethod::new("meta.ScaleService", "UpdateStreamingJobNodeLabels"),
3348                );
3349            self.inner.unary(req, path, codec).await
3350        }
3351        pub async fn get_serverless_streaming_jobs_status(
3352            &mut self,
3353            request: impl tonic::IntoRequest<
3354                super::GetServerlessStreamingJobsStatusRequest,
3355            >,
3356        ) -> std::result::Result<
3357            tonic::Response<super::GetServerlessStreamingJobsStatusResponse>,
3358            tonic::Status,
3359        > {
3360            self.inner
3361                .ready()
3362                .await
3363                .map_err(|e| {
3364                    tonic::Status::unknown(
3365                        format!("Service was not ready: {}", e.into()),
3366                    )
3367                })?;
3368            let codec = tonic::codec::ProstCodec::default();
3369            let path = http::uri::PathAndQuery::from_static(
3370                "/meta.ScaleService/GetServerlessStreamingJobsStatus",
3371            );
3372            let mut req = request.into_request();
3373            req.extensions_mut()
3374                .insert(
3375                    GrpcMethod::new(
3376                        "meta.ScaleService",
3377                        "GetServerlessStreamingJobsStatus",
3378                    ),
3379                );
3380            self.inner.unary(req, path, codec).await
3381        }
3382    }
3383}
3384/// Generated client implementations.
3385pub mod meta_member_service_client {
3386    #![allow(
3387        unused_variables,
3388        dead_code,
3389        missing_docs,
3390        clippy::wildcard_imports,
3391        clippy::let_unit_value,
3392    )]
3393    use tonic::codegen::*;
3394    use tonic::codegen::http::Uri;
3395    #[derive(Debug, Clone)]
3396    pub struct MetaMemberServiceClient<T> {
3397        inner: tonic::client::Grpc<T>,
3398    }
3399    impl MetaMemberServiceClient<tonic::transport::Channel> {
3400        /// Attempt to create a new client by connecting to a given endpoint.
3401        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
3402        where
3403            D: TryInto<tonic::transport::Endpoint>,
3404            D::Error: Into<StdError>,
3405        {
3406            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
3407            Ok(Self::new(conn))
3408        }
3409    }
3410    impl<T> MetaMemberServiceClient<T>
3411    where
3412        T: tonic::client::GrpcService<tonic::body::BoxBody>,
3413        T::Error: Into<StdError>,
3414        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
3415        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
3416    {
3417        pub fn new(inner: T) -> Self {
3418            let inner = tonic::client::Grpc::new(inner);
3419            Self { inner }
3420        }
3421        pub fn with_origin(inner: T, origin: Uri) -> Self {
3422            let inner = tonic::client::Grpc::with_origin(inner, origin);
3423            Self { inner }
3424        }
3425        pub fn with_interceptor<F>(
3426            inner: T,
3427            interceptor: F,
3428        ) -> MetaMemberServiceClient<InterceptedService<T, F>>
3429        where
3430            F: tonic::service::Interceptor,
3431            T::ResponseBody: Default,
3432            T: tonic::codegen::Service<
3433                http::Request<tonic::body::BoxBody>,
3434                Response = http::Response<
3435                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
3436                >,
3437            >,
3438            <T as tonic::codegen::Service<
3439                http::Request<tonic::body::BoxBody>,
3440            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
3441        {
3442            MetaMemberServiceClient::new(InterceptedService::new(inner, interceptor))
3443        }
3444        /// Compress requests with the given encoding.
3445        ///
3446        /// This requires the server to support it otherwise it might respond with an
3447        /// error.
3448        #[must_use]
3449        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
3450            self.inner = self.inner.send_compressed(encoding);
3451            self
3452        }
3453        /// Enable decompressing responses.
3454        #[must_use]
3455        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
3456            self.inner = self.inner.accept_compressed(encoding);
3457            self
3458        }
3459        /// Limits the maximum size of a decoded message.
3460        ///
3461        /// Default: `4MB`
3462        #[must_use]
3463        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
3464            self.inner = self.inner.max_decoding_message_size(limit);
3465            self
3466        }
3467        /// Limits the maximum size of an encoded message.
3468        ///
3469        /// Default: `usize::MAX`
3470        #[must_use]
3471        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
3472            self.inner = self.inner.max_encoding_message_size(limit);
3473            self
3474        }
3475        pub async fn members(
3476            &mut self,
3477            request: impl tonic::IntoRequest<super::MembersRequest>,
3478        ) -> std::result::Result<
3479            tonic::Response<super::MembersResponse>,
3480            tonic::Status,
3481        > {
3482            self.inner
3483                .ready()
3484                .await
3485                .map_err(|e| {
3486                    tonic::Status::unknown(
3487                        format!("Service was not ready: {}", e.into()),
3488                    )
3489                })?;
3490            let codec = tonic::codec::ProstCodec::default();
3491            let path = http::uri::PathAndQuery::from_static(
3492                "/meta.MetaMemberService/Members",
3493            );
3494            let mut req = request.into_request();
3495            req.extensions_mut()
3496                .insert(GrpcMethod::new("meta.MetaMemberService", "Members"));
3497            self.inner.unary(req, path, codec).await
3498        }
3499    }
3500}
3501/// Generated client implementations.
3502pub mod system_params_service_client {
3503    #![allow(
3504        unused_variables,
3505        dead_code,
3506        missing_docs,
3507        clippy::wildcard_imports,
3508        clippy::let_unit_value,
3509    )]
3510    use tonic::codegen::*;
3511    use tonic::codegen::http::Uri;
3512    #[derive(Debug, Clone)]
3513    pub struct SystemParamsServiceClient<T> {
3514        inner: tonic::client::Grpc<T>,
3515    }
3516    impl SystemParamsServiceClient<tonic::transport::Channel> {
3517        /// Attempt to create a new client by connecting to a given endpoint.
3518        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
3519        where
3520            D: TryInto<tonic::transport::Endpoint>,
3521            D::Error: Into<StdError>,
3522        {
3523            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
3524            Ok(Self::new(conn))
3525        }
3526    }
3527    impl<T> SystemParamsServiceClient<T>
3528    where
3529        T: tonic::client::GrpcService<tonic::body::BoxBody>,
3530        T::Error: Into<StdError>,
3531        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
3532        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
3533    {
3534        pub fn new(inner: T) -> Self {
3535            let inner = tonic::client::Grpc::new(inner);
3536            Self { inner }
3537        }
3538        pub fn with_origin(inner: T, origin: Uri) -> Self {
3539            let inner = tonic::client::Grpc::with_origin(inner, origin);
3540            Self { inner }
3541        }
3542        pub fn with_interceptor<F>(
3543            inner: T,
3544            interceptor: F,
3545        ) -> SystemParamsServiceClient<InterceptedService<T, F>>
3546        where
3547            F: tonic::service::Interceptor,
3548            T::ResponseBody: Default,
3549            T: tonic::codegen::Service<
3550                http::Request<tonic::body::BoxBody>,
3551                Response = http::Response<
3552                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
3553                >,
3554            >,
3555            <T as tonic::codegen::Service<
3556                http::Request<tonic::body::BoxBody>,
3557            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
3558        {
3559            SystemParamsServiceClient::new(InterceptedService::new(inner, interceptor))
3560        }
3561        /// Compress requests with the given encoding.
3562        ///
3563        /// This requires the server to support it otherwise it might respond with an
3564        /// error.
3565        #[must_use]
3566        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
3567            self.inner = self.inner.send_compressed(encoding);
3568            self
3569        }
3570        /// Enable decompressing responses.
3571        #[must_use]
3572        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
3573            self.inner = self.inner.accept_compressed(encoding);
3574            self
3575        }
3576        /// Limits the maximum size of a decoded message.
3577        ///
3578        /// Default: `4MB`
3579        #[must_use]
3580        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
3581            self.inner = self.inner.max_decoding_message_size(limit);
3582            self
3583        }
3584        /// Limits the maximum size of an encoded message.
3585        ///
3586        /// Default: `usize::MAX`
3587        #[must_use]
3588        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
3589            self.inner = self.inner.max_encoding_message_size(limit);
3590            self
3591        }
3592        pub async fn get_system_params(
3593            &mut self,
3594            request: impl tonic::IntoRequest<super::GetSystemParamsRequest>,
3595        ) -> std::result::Result<
3596            tonic::Response<super::GetSystemParamsResponse>,
3597            tonic::Status,
3598        > {
3599            self.inner
3600                .ready()
3601                .await
3602                .map_err(|e| {
3603                    tonic::Status::unknown(
3604                        format!("Service was not ready: {}", e.into()),
3605                    )
3606                })?;
3607            let codec = tonic::codec::ProstCodec::default();
3608            let path = http::uri::PathAndQuery::from_static(
3609                "/meta.SystemParamsService/GetSystemParams",
3610            );
3611            let mut req = request.into_request();
3612            req.extensions_mut()
3613                .insert(GrpcMethod::new("meta.SystemParamsService", "GetSystemParams"));
3614            self.inner.unary(req, path, codec).await
3615        }
3616        pub async fn set_system_param(
3617            &mut self,
3618            request: impl tonic::IntoRequest<super::SetSystemParamRequest>,
3619        ) -> std::result::Result<
3620            tonic::Response<super::SetSystemParamResponse>,
3621            tonic::Status,
3622        > {
3623            self.inner
3624                .ready()
3625                .await
3626                .map_err(|e| {
3627                    tonic::Status::unknown(
3628                        format!("Service was not ready: {}", e.into()),
3629                    )
3630                })?;
3631            let codec = tonic::codec::ProstCodec::default();
3632            let path = http::uri::PathAndQuery::from_static(
3633                "/meta.SystemParamsService/SetSystemParam",
3634            );
3635            let mut req = request.into_request();
3636            req.extensions_mut()
3637                .insert(GrpcMethod::new("meta.SystemParamsService", "SetSystemParam"));
3638            self.inner.unary(req, path, codec).await
3639        }
3640    }
3641}
3642/// Generated client implementations.
3643pub mod session_param_service_client {
3644    #![allow(
3645        unused_variables,
3646        dead_code,
3647        missing_docs,
3648        clippy::wildcard_imports,
3649        clippy::let_unit_value,
3650    )]
3651    use tonic::codegen::*;
3652    use tonic::codegen::http::Uri;
3653    /// Used for alter system wide default parameters
3654    #[derive(Debug, Clone)]
3655    pub struct SessionParamServiceClient<T> {
3656        inner: tonic::client::Grpc<T>,
3657    }
3658    impl SessionParamServiceClient<tonic::transport::Channel> {
3659        /// Attempt to create a new client by connecting to a given endpoint.
3660        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
3661        where
3662            D: TryInto<tonic::transport::Endpoint>,
3663            D::Error: Into<StdError>,
3664        {
3665            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
3666            Ok(Self::new(conn))
3667        }
3668    }
3669    impl<T> SessionParamServiceClient<T>
3670    where
3671        T: tonic::client::GrpcService<tonic::body::BoxBody>,
3672        T::Error: Into<StdError>,
3673        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
3674        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
3675    {
3676        pub fn new(inner: T) -> Self {
3677            let inner = tonic::client::Grpc::new(inner);
3678            Self { inner }
3679        }
3680        pub fn with_origin(inner: T, origin: Uri) -> Self {
3681            let inner = tonic::client::Grpc::with_origin(inner, origin);
3682            Self { inner }
3683        }
3684        pub fn with_interceptor<F>(
3685            inner: T,
3686            interceptor: F,
3687        ) -> SessionParamServiceClient<InterceptedService<T, F>>
3688        where
3689            F: tonic::service::Interceptor,
3690            T::ResponseBody: Default,
3691            T: tonic::codegen::Service<
3692                http::Request<tonic::body::BoxBody>,
3693                Response = http::Response<
3694                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
3695                >,
3696            >,
3697            <T as tonic::codegen::Service<
3698                http::Request<tonic::body::BoxBody>,
3699            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
3700        {
3701            SessionParamServiceClient::new(InterceptedService::new(inner, interceptor))
3702        }
3703        /// Compress requests with the given encoding.
3704        ///
3705        /// This requires the server to support it otherwise it might respond with an
3706        /// error.
3707        #[must_use]
3708        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
3709            self.inner = self.inner.send_compressed(encoding);
3710            self
3711        }
3712        /// Enable decompressing responses.
3713        #[must_use]
3714        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
3715            self.inner = self.inner.accept_compressed(encoding);
3716            self
3717        }
3718        /// Limits the maximum size of a decoded message.
3719        ///
3720        /// Default: `4MB`
3721        #[must_use]
3722        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
3723            self.inner = self.inner.max_decoding_message_size(limit);
3724            self
3725        }
3726        /// Limits the maximum size of an encoded message.
3727        ///
3728        /// Default: `usize::MAX`
3729        #[must_use]
3730        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
3731            self.inner = self.inner.max_encoding_message_size(limit);
3732            self
3733        }
3734        pub async fn get_session_params(
3735            &mut self,
3736            request: impl tonic::IntoRequest<super::GetSessionParamsRequest>,
3737        ) -> std::result::Result<
3738            tonic::Response<super::GetSessionParamsResponse>,
3739            tonic::Status,
3740        > {
3741            self.inner
3742                .ready()
3743                .await
3744                .map_err(|e| {
3745                    tonic::Status::unknown(
3746                        format!("Service was not ready: {}", e.into()),
3747                    )
3748                })?;
3749            let codec = tonic::codec::ProstCodec::default();
3750            let path = http::uri::PathAndQuery::from_static(
3751                "/meta.SessionParamService/GetSessionParams",
3752            );
3753            let mut req = request.into_request();
3754            req.extensions_mut()
3755                .insert(GrpcMethod::new("meta.SessionParamService", "GetSessionParams"));
3756            self.inner.unary(req, path, codec).await
3757        }
3758        pub async fn set_session_param(
3759            &mut self,
3760            request: impl tonic::IntoRequest<super::SetSessionParamRequest>,
3761        ) -> std::result::Result<
3762            tonic::Response<super::SetSessionParamResponse>,
3763            tonic::Status,
3764        > {
3765            self.inner
3766                .ready()
3767                .await
3768                .map_err(|e| {
3769                    tonic::Status::unknown(
3770                        format!("Service was not ready: {}", e.into()),
3771                    )
3772                })?;
3773            let codec = tonic::codec::ProstCodec::default();
3774            let path = http::uri::PathAndQuery::from_static(
3775                "/meta.SessionParamService/SetSessionParam",
3776            );
3777            let mut req = request.into_request();
3778            req.extensions_mut()
3779                .insert(GrpcMethod::new("meta.SessionParamService", "SetSessionParam"));
3780            self.inner.unary(req, path, codec).await
3781        }
3782    }
3783}
3784/// Generated client implementations.
3785pub mod serving_service_client {
3786    #![allow(
3787        unused_variables,
3788        dead_code,
3789        missing_docs,
3790        clippy::wildcard_imports,
3791        clippy::let_unit_value,
3792    )]
3793    use tonic::codegen::*;
3794    use tonic::codegen::http::Uri;
3795    #[derive(Debug, Clone)]
3796    pub struct ServingServiceClient<T> {
3797        inner: tonic::client::Grpc<T>,
3798    }
3799    impl ServingServiceClient<tonic::transport::Channel> {
3800        /// Attempt to create a new client by connecting to a given endpoint.
3801        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
3802        where
3803            D: TryInto<tonic::transport::Endpoint>,
3804            D::Error: Into<StdError>,
3805        {
3806            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
3807            Ok(Self::new(conn))
3808        }
3809    }
3810    impl<T> ServingServiceClient<T>
3811    where
3812        T: tonic::client::GrpcService<tonic::body::BoxBody>,
3813        T::Error: Into<StdError>,
3814        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
3815        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
3816    {
3817        pub fn new(inner: T) -> Self {
3818            let inner = tonic::client::Grpc::new(inner);
3819            Self { inner }
3820        }
3821        pub fn with_origin(inner: T, origin: Uri) -> Self {
3822            let inner = tonic::client::Grpc::with_origin(inner, origin);
3823            Self { inner }
3824        }
3825        pub fn with_interceptor<F>(
3826            inner: T,
3827            interceptor: F,
3828        ) -> ServingServiceClient<InterceptedService<T, F>>
3829        where
3830            F: tonic::service::Interceptor,
3831            T::ResponseBody: Default,
3832            T: tonic::codegen::Service<
3833                http::Request<tonic::body::BoxBody>,
3834                Response = http::Response<
3835                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
3836                >,
3837            >,
3838            <T as tonic::codegen::Service<
3839                http::Request<tonic::body::BoxBody>,
3840            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
3841        {
3842            ServingServiceClient::new(InterceptedService::new(inner, interceptor))
3843        }
3844        /// Compress requests with the given encoding.
3845        ///
3846        /// This requires the server to support it otherwise it might respond with an
3847        /// error.
3848        #[must_use]
3849        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
3850            self.inner = self.inner.send_compressed(encoding);
3851            self
3852        }
3853        /// Enable decompressing responses.
3854        #[must_use]
3855        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
3856            self.inner = self.inner.accept_compressed(encoding);
3857            self
3858        }
3859        /// Limits the maximum size of a decoded message.
3860        ///
3861        /// Default: `4MB`
3862        #[must_use]
3863        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
3864            self.inner = self.inner.max_decoding_message_size(limit);
3865            self
3866        }
3867        /// Limits the maximum size of an encoded message.
3868        ///
3869        /// Default: `usize::MAX`
3870        #[must_use]
3871        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
3872            self.inner = self.inner.max_encoding_message_size(limit);
3873            self
3874        }
3875        pub async fn get_serving_vnode_mappings(
3876            &mut self,
3877            request: impl tonic::IntoRequest<super::GetServingVnodeMappingsRequest>,
3878        ) -> std::result::Result<
3879            tonic::Response<super::GetServingVnodeMappingsResponse>,
3880            tonic::Status,
3881        > {
3882            self.inner
3883                .ready()
3884                .await
3885                .map_err(|e| {
3886                    tonic::Status::unknown(
3887                        format!("Service was not ready: {}", e.into()),
3888                    )
3889                })?;
3890            let codec = tonic::codec::ProstCodec::default();
3891            let path = http::uri::PathAndQuery::from_static(
3892                "/meta.ServingService/GetServingVnodeMappings",
3893            );
3894            let mut req = request.into_request();
3895            req.extensions_mut()
3896                .insert(
3897                    GrpcMethod::new("meta.ServingService", "GetServingVnodeMappings"),
3898                );
3899            self.inner.unary(req, path, codec).await
3900        }
3901    }
3902}
3903/// Generated client implementations.
3904pub mod event_log_service_client {
3905    #![allow(
3906        unused_variables,
3907        dead_code,
3908        missing_docs,
3909        clippy::wildcard_imports,
3910        clippy::let_unit_value,
3911    )]
3912    use tonic::codegen::*;
3913    use tonic::codegen::http::Uri;
3914    #[derive(Debug, Clone)]
3915    pub struct EventLogServiceClient<T> {
3916        inner: tonic::client::Grpc<T>,
3917    }
3918    impl EventLogServiceClient<tonic::transport::Channel> {
3919        /// Attempt to create a new client by connecting to a given endpoint.
3920        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
3921        where
3922            D: TryInto<tonic::transport::Endpoint>,
3923            D::Error: Into<StdError>,
3924        {
3925            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
3926            Ok(Self::new(conn))
3927        }
3928    }
3929    impl<T> EventLogServiceClient<T>
3930    where
3931        T: tonic::client::GrpcService<tonic::body::BoxBody>,
3932        T::Error: Into<StdError>,
3933        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
3934        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
3935    {
3936        pub fn new(inner: T) -> Self {
3937            let inner = tonic::client::Grpc::new(inner);
3938            Self { inner }
3939        }
3940        pub fn with_origin(inner: T, origin: Uri) -> Self {
3941            let inner = tonic::client::Grpc::with_origin(inner, origin);
3942            Self { inner }
3943        }
3944        pub fn with_interceptor<F>(
3945            inner: T,
3946            interceptor: F,
3947        ) -> EventLogServiceClient<InterceptedService<T, F>>
3948        where
3949            F: tonic::service::Interceptor,
3950            T::ResponseBody: Default,
3951            T: tonic::codegen::Service<
3952                http::Request<tonic::body::BoxBody>,
3953                Response = http::Response<
3954                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
3955                >,
3956            >,
3957            <T as tonic::codegen::Service<
3958                http::Request<tonic::body::BoxBody>,
3959            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
3960        {
3961            EventLogServiceClient::new(InterceptedService::new(inner, interceptor))
3962        }
3963        /// Compress requests with the given encoding.
3964        ///
3965        /// This requires the server to support it otherwise it might respond with an
3966        /// error.
3967        #[must_use]
3968        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
3969            self.inner = self.inner.send_compressed(encoding);
3970            self
3971        }
3972        /// Enable decompressing responses.
3973        #[must_use]
3974        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
3975            self.inner = self.inner.accept_compressed(encoding);
3976            self
3977        }
3978        /// Limits the maximum size of a decoded message.
3979        ///
3980        /// Default: `4MB`
3981        #[must_use]
3982        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
3983            self.inner = self.inner.max_decoding_message_size(limit);
3984            self
3985        }
3986        /// Limits the maximum size of an encoded message.
3987        ///
3988        /// Default: `usize::MAX`
3989        #[must_use]
3990        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
3991            self.inner = self.inner.max_encoding_message_size(limit);
3992            self
3993        }
3994        pub async fn list_event_log(
3995            &mut self,
3996            request: impl tonic::IntoRequest<super::ListEventLogRequest>,
3997        ) -> std::result::Result<
3998            tonic::Response<super::ListEventLogResponse>,
3999            tonic::Status,
4000        > {
4001            self.inner
4002                .ready()
4003                .await
4004                .map_err(|e| {
4005                    tonic::Status::unknown(
4006                        format!("Service was not ready: {}", e.into()),
4007                    )
4008                })?;
4009            let codec = tonic::codec::ProstCodec::default();
4010            let path = http::uri::PathAndQuery::from_static(
4011                "/meta.EventLogService/ListEventLog",
4012            );
4013            let mut req = request.into_request();
4014            req.extensions_mut()
4015                .insert(GrpcMethod::new("meta.EventLogService", "ListEventLog"));
4016            self.inner.unary(req, path, codec).await
4017        }
4018        pub async fn add_event_log(
4019            &mut self,
4020            request: impl tonic::IntoRequest<super::AddEventLogRequest>,
4021        ) -> std::result::Result<
4022            tonic::Response<super::AddEventLogResponse>,
4023            tonic::Status,
4024        > {
4025            self.inner
4026                .ready()
4027                .await
4028                .map_err(|e| {
4029                    tonic::Status::unknown(
4030                        format!("Service was not ready: {}", e.into()),
4031                    )
4032                })?;
4033            let codec = tonic::codec::ProstCodec::default();
4034            let path = http::uri::PathAndQuery::from_static(
4035                "/meta.EventLogService/AddEventLog",
4036            );
4037            let mut req = request.into_request();
4038            req.extensions_mut()
4039                .insert(GrpcMethod::new("meta.EventLogService", "AddEventLog"));
4040            self.inner.unary(req, path, codec).await
4041        }
4042    }
4043}
4044/// Generated client implementations.
4045pub mod cluster_limit_service_client {
4046    #![allow(
4047        unused_variables,
4048        dead_code,
4049        missing_docs,
4050        clippy::wildcard_imports,
4051        clippy::let_unit_value,
4052    )]
4053    use tonic::codegen::*;
4054    use tonic::codegen::http::Uri;
4055    #[derive(Debug, Clone)]
4056    pub struct ClusterLimitServiceClient<T> {
4057        inner: tonic::client::Grpc<T>,
4058    }
4059    impl ClusterLimitServiceClient<tonic::transport::Channel> {
4060        /// Attempt to create a new client by connecting to a given endpoint.
4061        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
4062        where
4063            D: TryInto<tonic::transport::Endpoint>,
4064            D::Error: Into<StdError>,
4065        {
4066            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
4067            Ok(Self::new(conn))
4068        }
4069    }
4070    impl<T> ClusterLimitServiceClient<T>
4071    where
4072        T: tonic::client::GrpcService<tonic::body::BoxBody>,
4073        T::Error: Into<StdError>,
4074        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
4075        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
4076    {
4077        pub fn new(inner: T) -> Self {
4078            let inner = tonic::client::Grpc::new(inner);
4079            Self { inner }
4080        }
4081        pub fn with_origin(inner: T, origin: Uri) -> Self {
4082            let inner = tonic::client::Grpc::with_origin(inner, origin);
4083            Self { inner }
4084        }
4085        pub fn with_interceptor<F>(
4086            inner: T,
4087            interceptor: F,
4088        ) -> ClusterLimitServiceClient<InterceptedService<T, F>>
4089        where
4090            F: tonic::service::Interceptor,
4091            T::ResponseBody: Default,
4092            T: tonic::codegen::Service<
4093                http::Request<tonic::body::BoxBody>,
4094                Response = http::Response<
4095                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
4096                >,
4097            >,
4098            <T as tonic::codegen::Service<
4099                http::Request<tonic::body::BoxBody>,
4100            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
4101        {
4102            ClusterLimitServiceClient::new(InterceptedService::new(inner, interceptor))
4103        }
4104        /// Compress requests with the given encoding.
4105        ///
4106        /// This requires the server to support it otherwise it might respond with an
4107        /// error.
4108        #[must_use]
4109        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
4110            self.inner = self.inner.send_compressed(encoding);
4111            self
4112        }
4113        /// Enable decompressing responses.
4114        #[must_use]
4115        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
4116            self.inner = self.inner.accept_compressed(encoding);
4117            self
4118        }
4119        /// Limits the maximum size of a decoded message.
4120        ///
4121        /// Default: `4MB`
4122        #[must_use]
4123        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
4124            self.inner = self.inner.max_decoding_message_size(limit);
4125            self
4126        }
4127        /// Limits the maximum size of an encoded message.
4128        ///
4129        /// Default: `usize::MAX`
4130        #[must_use]
4131        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
4132            self.inner = self.inner.max_encoding_message_size(limit);
4133            self
4134        }
4135        pub async fn get_cluster_limits(
4136            &mut self,
4137            request: impl tonic::IntoRequest<super::GetClusterLimitsRequest>,
4138        ) -> std::result::Result<
4139            tonic::Response<super::GetClusterLimitsResponse>,
4140            tonic::Status,
4141        > {
4142            self.inner
4143                .ready()
4144                .await
4145                .map_err(|e| {
4146                    tonic::Status::unknown(
4147                        format!("Service was not ready: {}", e.into()),
4148                    )
4149                })?;
4150            let codec = tonic::codec::ProstCodec::default();
4151            let path = http::uri::PathAndQuery::from_static(
4152                "/meta.ClusterLimitService/GetClusterLimits",
4153            );
4154            let mut req = request.into_request();
4155            req.extensions_mut()
4156                .insert(GrpcMethod::new("meta.ClusterLimitService", "GetClusterLimits"));
4157            self.inner.unary(req, path, codec).await
4158        }
4159    }
4160}
4161/// Generated client implementations.
4162pub mod hosted_iceberg_catalog_service_client {
4163    #![allow(
4164        unused_variables,
4165        dead_code,
4166        missing_docs,
4167        clippy::wildcard_imports,
4168        clippy::let_unit_value,
4169    )]
4170    use tonic::codegen::*;
4171    use tonic::codegen::http::Uri;
4172    #[derive(Debug, Clone)]
4173    pub struct HostedIcebergCatalogServiceClient<T> {
4174        inner: tonic::client::Grpc<T>,
4175    }
4176    impl HostedIcebergCatalogServiceClient<tonic::transport::Channel> {
4177        /// Attempt to create a new client by connecting to a given endpoint.
4178        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
4179        where
4180            D: TryInto<tonic::transport::Endpoint>,
4181            D::Error: Into<StdError>,
4182        {
4183            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
4184            Ok(Self::new(conn))
4185        }
4186    }
4187    impl<T> HostedIcebergCatalogServiceClient<T>
4188    where
4189        T: tonic::client::GrpcService<tonic::body::BoxBody>,
4190        T::Error: Into<StdError>,
4191        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
4192        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
4193    {
4194        pub fn new(inner: T) -> Self {
4195            let inner = tonic::client::Grpc::new(inner);
4196            Self { inner }
4197        }
4198        pub fn with_origin(inner: T, origin: Uri) -> Self {
4199            let inner = tonic::client::Grpc::with_origin(inner, origin);
4200            Self { inner }
4201        }
4202        pub fn with_interceptor<F>(
4203            inner: T,
4204            interceptor: F,
4205        ) -> HostedIcebergCatalogServiceClient<InterceptedService<T, F>>
4206        where
4207            F: tonic::service::Interceptor,
4208            T::ResponseBody: Default,
4209            T: tonic::codegen::Service<
4210                http::Request<tonic::body::BoxBody>,
4211                Response = http::Response<
4212                    <T as tonic::client::GrpcService<tonic::body::BoxBody>>::ResponseBody,
4213                >,
4214            >,
4215            <T as tonic::codegen::Service<
4216                http::Request<tonic::body::BoxBody>,
4217            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
4218        {
4219            HostedIcebergCatalogServiceClient::new(
4220                InterceptedService::new(inner, interceptor),
4221            )
4222        }
4223        /// Compress requests with the given encoding.
4224        ///
4225        /// This requires the server to support it otherwise it might respond with an
4226        /// error.
4227        #[must_use]
4228        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
4229            self.inner = self.inner.send_compressed(encoding);
4230            self
4231        }
4232        /// Enable decompressing responses.
4233        #[must_use]
4234        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
4235            self.inner = self.inner.accept_compressed(encoding);
4236            self
4237        }
4238        /// Limits the maximum size of a decoded message.
4239        ///
4240        /// Default: `4MB`
4241        #[must_use]
4242        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
4243            self.inner = self.inner.max_decoding_message_size(limit);
4244            self
4245        }
4246        /// Limits the maximum size of an encoded message.
4247        ///
4248        /// Default: `usize::MAX`
4249        #[must_use]
4250        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
4251            self.inner = self.inner.max_encoding_message_size(limit);
4252            self
4253        }
4254        pub async fn list_iceberg_tables(
4255            &mut self,
4256            request: impl tonic::IntoRequest<super::ListIcebergTablesRequest>,
4257        ) -> std::result::Result<
4258            tonic::Response<super::ListIcebergTablesResponse>,
4259            tonic::Status,
4260        > {
4261            self.inner
4262                .ready()
4263                .await
4264                .map_err(|e| {
4265                    tonic::Status::unknown(
4266                        format!("Service was not ready: {}", e.into()),
4267                    )
4268                })?;
4269            let codec = tonic::codec::ProstCodec::default();
4270            let path = http::uri::PathAndQuery::from_static(
4271                "/meta.HostedIcebergCatalogService/ListIcebergTables",
4272            );
4273            let mut req = request.into_request();
4274            req.extensions_mut()
4275                .insert(
4276                    GrpcMethod::new(
4277                        "meta.HostedIcebergCatalogService",
4278                        "ListIcebergTables",
4279                    ),
4280                );
4281            self.inner.unary(req, path, codec).await
4282        }
4283    }
4284}
4285/// Generated server implementations.
4286pub mod telemetry_info_service_server {
4287    #![allow(
4288        unused_variables,
4289        dead_code,
4290        missing_docs,
4291        clippy::wildcard_imports,
4292        clippy::let_unit_value,
4293    )]
4294    use tonic::codegen::*;
4295    /// Generated trait containing gRPC methods that should be implemented for use with TelemetryInfoServiceServer.
4296    #[async_trait]
4297    pub trait TelemetryInfoService: std::marker::Send + std::marker::Sync + 'static {
4298        /// Request telemetry info from meta node
4299        async fn get_telemetry_info(
4300            &self,
4301            request: tonic::Request<super::GetTelemetryInfoRequest>,
4302        ) -> std::result::Result<
4303            tonic::Response<super::TelemetryInfoResponse>,
4304            tonic::Status,
4305        >;
4306    }
4307    #[derive(Debug)]
4308    pub struct TelemetryInfoServiceServer<T> {
4309        inner: Arc<T>,
4310        accept_compression_encodings: EnabledCompressionEncodings,
4311        send_compression_encodings: EnabledCompressionEncodings,
4312        max_decoding_message_size: Option<usize>,
4313        max_encoding_message_size: Option<usize>,
4314    }
4315    impl<T> TelemetryInfoServiceServer<T> {
4316        pub fn new(inner: T) -> Self {
4317            Self::from_arc(Arc::new(inner))
4318        }
4319        pub fn from_arc(inner: Arc<T>) -> Self {
4320            Self {
4321                inner,
4322                accept_compression_encodings: Default::default(),
4323                send_compression_encodings: Default::default(),
4324                max_decoding_message_size: None,
4325                max_encoding_message_size: None,
4326            }
4327        }
4328        pub fn with_interceptor<F>(
4329            inner: T,
4330            interceptor: F,
4331        ) -> InterceptedService<Self, F>
4332        where
4333            F: tonic::service::Interceptor,
4334        {
4335            InterceptedService::new(Self::new(inner), interceptor)
4336        }
4337        /// Enable decompressing requests with the given encoding.
4338        #[must_use]
4339        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
4340            self.accept_compression_encodings.enable(encoding);
4341            self
4342        }
4343        /// Compress responses with the given encoding, if the client supports it.
4344        #[must_use]
4345        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
4346            self.send_compression_encodings.enable(encoding);
4347            self
4348        }
4349        /// Limits the maximum size of a decoded message.
4350        ///
4351        /// Default: `4MB`
4352        #[must_use]
4353        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
4354            self.max_decoding_message_size = Some(limit);
4355            self
4356        }
4357        /// Limits the maximum size of an encoded message.
4358        ///
4359        /// Default: `usize::MAX`
4360        #[must_use]
4361        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
4362            self.max_encoding_message_size = Some(limit);
4363            self
4364        }
4365    }
4366    impl<T, B> tonic::codegen::Service<http::Request<B>>
4367    for TelemetryInfoServiceServer<T>
4368    where
4369        T: TelemetryInfoService,
4370        B: Body + std::marker::Send + 'static,
4371        B::Error: Into<StdError> + std::marker::Send + 'static,
4372    {
4373        type Response = http::Response<tonic::body::BoxBody>;
4374        type Error = std::convert::Infallible;
4375        type Future = BoxFuture<Self::Response, Self::Error>;
4376        fn poll_ready(
4377            &mut self,
4378            _cx: &mut Context<'_>,
4379        ) -> Poll<std::result::Result<(), Self::Error>> {
4380            Poll::Ready(Ok(()))
4381        }
4382        fn call(&mut self, req: http::Request<B>) -> Self::Future {
4383            match req.uri().path() {
4384                "/meta.TelemetryInfoService/GetTelemetryInfo" => {
4385                    #[allow(non_camel_case_types)]
4386                    struct GetTelemetryInfoSvc<T: TelemetryInfoService>(pub Arc<T>);
4387                    impl<
4388                        T: TelemetryInfoService,
4389                    > tonic::server::UnaryService<super::GetTelemetryInfoRequest>
4390                    for GetTelemetryInfoSvc<T> {
4391                        type Response = super::TelemetryInfoResponse;
4392                        type Future = BoxFuture<
4393                            tonic::Response<Self::Response>,
4394                            tonic::Status,
4395                        >;
4396                        fn call(
4397                            &mut self,
4398                            request: tonic::Request<super::GetTelemetryInfoRequest>,
4399                        ) -> Self::Future {
4400                            let inner = Arc::clone(&self.0);
4401                            let fut = async move {
4402                                <T as TelemetryInfoService>::get_telemetry_info(
4403                                        &inner,
4404                                        request,
4405                                    )
4406                                    .await
4407                            };
4408                            Box::pin(fut)
4409                        }
4410                    }
4411                    let accept_compression_encodings = self.accept_compression_encodings;
4412                    let send_compression_encodings = self.send_compression_encodings;
4413                    let max_decoding_message_size = self.max_decoding_message_size;
4414                    let max_encoding_message_size = self.max_encoding_message_size;
4415                    let inner = self.inner.clone();
4416                    let fut = async move {
4417                        let method = GetTelemetryInfoSvc(inner);
4418                        let codec = tonic::codec::ProstCodec::default();
4419                        let mut grpc = tonic::server::Grpc::new(codec)
4420                            .apply_compression_config(
4421                                accept_compression_encodings,
4422                                send_compression_encodings,
4423                            )
4424                            .apply_max_message_size_config(
4425                                max_decoding_message_size,
4426                                max_encoding_message_size,
4427                            );
4428                        let res = grpc.unary(method, req).await;
4429                        Ok(res)
4430                    };
4431                    Box::pin(fut)
4432                }
4433                _ => {
4434                    Box::pin(async move {
4435                        let mut response = http::Response::new(empty_body());
4436                        let headers = response.headers_mut();
4437                        headers
4438                            .insert(
4439                                tonic::Status::GRPC_STATUS,
4440                                (tonic::Code::Unimplemented as i32).into(),
4441                            );
4442                        headers
4443                            .insert(
4444                                http::header::CONTENT_TYPE,
4445                                tonic::metadata::GRPC_CONTENT_TYPE,
4446                            );
4447                        Ok(response)
4448                    })
4449                }
4450            }
4451        }
4452    }
4453    impl<T> Clone for TelemetryInfoServiceServer<T> {
4454        fn clone(&self) -> Self {
4455            let inner = self.inner.clone();
4456            Self {
4457                inner,
4458                accept_compression_encodings: self.accept_compression_encodings,
4459                send_compression_encodings: self.send_compression_encodings,
4460                max_decoding_message_size: self.max_decoding_message_size,
4461                max_encoding_message_size: self.max_encoding_message_size,
4462            }
4463        }
4464    }
4465    /// Generated gRPC service name
4466    pub const SERVICE_NAME: &str = "meta.TelemetryInfoService";
4467    impl<T> tonic::server::NamedService for TelemetryInfoServiceServer<T> {
4468        const NAME: &'static str = SERVICE_NAME;
4469    }
4470}
4471/// Generated server implementations.
4472pub mod heartbeat_service_server {
4473    #![allow(
4474        unused_variables,
4475        dead_code,
4476        missing_docs,
4477        clippy::wildcard_imports,
4478        clippy::let_unit_value,
4479    )]
4480    use tonic::codegen::*;
4481    /// Generated trait containing gRPC methods that should be implemented for use with HeartbeatServiceServer.
4482    #[async_trait]
4483    pub trait HeartbeatService: std::marker::Send + std::marker::Sync + 'static {
4484        async fn heartbeat(
4485            &self,
4486            request: tonic::Request<super::HeartbeatRequest>,
4487        ) -> std::result::Result<
4488            tonic::Response<super::HeartbeatResponse>,
4489            tonic::Status,
4490        >;
4491    }
4492    #[derive(Debug)]
4493    pub struct HeartbeatServiceServer<T> {
4494        inner: Arc<T>,
4495        accept_compression_encodings: EnabledCompressionEncodings,
4496        send_compression_encodings: EnabledCompressionEncodings,
4497        max_decoding_message_size: Option<usize>,
4498        max_encoding_message_size: Option<usize>,
4499    }
4500    impl<T> HeartbeatServiceServer<T> {
4501        pub fn new(inner: T) -> Self {
4502            Self::from_arc(Arc::new(inner))
4503        }
4504        pub fn from_arc(inner: Arc<T>) -> Self {
4505            Self {
4506                inner,
4507                accept_compression_encodings: Default::default(),
4508                send_compression_encodings: Default::default(),
4509                max_decoding_message_size: None,
4510                max_encoding_message_size: None,
4511            }
4512        }
4513        pub fn with_interceptor<F>(
4514            inner: T,
4515            interceptor: F,
4516        ) -> InterceptedService<Self, F>
4517        where
4518            F: tonic::service::Interceptor,
4519        {
4520            InterceptedService::new(Self::new(inner), interceptor)
4521        }
4522        /// Enable decompressing requests with the given encoding.
4523        #[must_use]
4524        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
4525            self.accept_compression_encodings.enable(encoding);
4526            self
4527        }
4528        /// Compress responses with the given encoding, if the client supports it.
4529        #[must_use]
4530        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
4531            self.send_compression_encodings.enable(encoding);
4532            self
4533        }
4534        /// Limits the maximum size of a decoded message.
4535        ///
4536        /// Default: `4MB`
4537        #[must_use]
4538        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
4539            self.max_decoding_message_size = Some(limit);
4540            self
4541        }
4542        /// Limits the maximum size of an encoded message.
4543        ///
4544        /// Default: `usize::MAX`
4545        #[must_use]
4546        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
4547            self.max_encoding_message_size = Some(limit);
4548            self
4549        }
4550    }
4551    impl<T, B> tonic::codegen::Service<http::Request<B>> for HeartbeatServiceServer<T>
4552    where
4553        T: HeartbeatService,
4554        B: Body + std::marker::Send + 'static,
4555        B::Error: Into<StdError> + std::marker::Send + 'static,
4556    {
4557        type Response = http::Response<tonic::body::BoxBody>;
4558        type Error = std::convert::Infallible;
4559        type Future = BoxFuture<Self::Response, Self::Error>;
4560        fn poll_ready(
4561            &mut self,
4562            _cx: &mut Context<'_>,
4563        ) -> Poll<std::result::Result<(), Self::Error>> {
4564            Poll::Ready(Ok(()))
4565        }
4566        fn call(&mut self, req: http::Request<B>) -> Self::Future {
4567            match req.uri().path() {
4568                "/meta.HeartbeatService/Heartbeat" => {
4569                    #[allow(non_camel_case_types)]
4570                    struct HeartbeatSvc<T: HeartbeatService>(pub Arc<T>);
4571                    impl<
4572                        T: HeartbeatService,
4573                    > tonic::server::UnaryService<super::HeartbeatRequest>
4574                    for HeartbeatSvc<T> {
4575                        type Response = super::HeartbeatResponse;
4576                        type Future = BoxFuture<
4577                            tonic::Response<Self::Response>,
4578                            tonic::Status,
4579                        >;
4580                        fn call(
4581                            &mut self,
4582                            request: tonic::Request<super::HeartbeatRequest>,
4583                        ) -> Self::Future {
4584                            let inner = Arc::clone(&self.0);
4585                            let fut = async move {
4586                                <T as HeartbeatService>::heartbeat(&inner, request).await
4587                            };
4588                            Box::pin(fut)
4589                        }
4590                    }
4591                    let accept_compression_encodings = self.accept_compression_encodings;
4592                    let send_compression_encodings = self.send_compression_encodings;
4593                    let max_decoding_message_size = self.max_decoding_message_size;
4594                    let max_encoding_message_size = self.max_encoding_message_size;
4595                    let inner = self.inner.clone();
4596                    let fut = async move {
4597                        let method = HeartbeatSvc(inner);
4598                        let codec = tonic::codec::ProstCodec::default();
4599                        let mut grpc = tonic::server::Grpc::new(codec)
4600                            .apply_compression_config(
4601                                accept_compression_encodings,
4602                                send_compression_encodings,
4603                            )
4604                            .apply_max_message_size_config(
4605                                max_decoding_message_size,
4606                                max_encoding_message_size,
4607                            );
4608                        let res = grpc.unary(method, req).await;
4609                        Ok(res)
4610                    };
4611                    Box::pin(fut)
4612                }
4613                _ => {
4614                    Box::pin(async move {
4615                        let mut response = http::Response::new(empty_body());
4616                        let headers = response.headers_mut();
4617                        headers
4618                            .insert(
4619                                tonic::Status::GRPC_STATUS,
4620                                (tonic::Code::Unimplemented as i32).into(),
4621                            );
4622                        headers
4623                            .insert(
4624                                http::header::CONTENT_TYPE,
4625                                tonic::metadata::GRPC_CONTENT_TYPE,
4626                            );
4627                        Ok(response)
4628                    })
4629                }
4630            }
4631        }
4632    }
4633    impl<T> Clone for HeartbeatServiceServer<T> {
4634        fn clone(&self) -> Self {
4635            let inner = self.inner.clone();
4636            Self {
4637                inner,
4638                accept_compression_encodings: self.accept_compression_encodings,
4639                send_compression_encodings: self.send_compression_encodings,
4640                max_decoding_message_size: self.max_decoding_message_size,
4641                max_encoding_message_size: self.max_encoding_message_size,
4642            }
4643        }
4644    }
4645    /// Generated gRPC service name
4646    pub const SERVICE_NAME: &str = "meta.HeartbeatService";
4647    impl<T> tonic::server::NamedService for HeartbeatServiceServer<T> {
4648        const NAME: &'static str = SERVICE_NAME;
4649    }
4650}
4651/// Generated server implementations.
4652pub mod stream_manager_service_server {
4653    #![allow(
4654        unused_variables,
4655        dead_code,
4656        missing_docs,
4657        clippy::wildcard_imports,
4658        clippy::let_unit_value,
4659    )]
4660    use tonic::codegen::*;
4661    /// Generated trait containing gRPC methods that should be implemented for use with StreamManagerServiceServer.
4662    #[async_trait]
4663    pub trait StreamManagerService: std::marker::Send + std::marker::Sync + 'static {
4664        async fn flush(
4665            &self,
4666            request: tonic::Request<super::FlushRequest>,
4667        ) -> std::result::Result<tonic::Response<super::FlushResponse>, tonic::Status>;
4668        async fn pause(
4669            &self,
4670            request: tonic::Request<super::PauseRequest>,
4671        ) -> std::result::Result<tonic::Response<super::PauseResponse>, tonic::Status>;
4672        async fn resume(
4673            &self,
4674            request: tonic::Request<super::ResumeRequest>,
4675        ) -> std::result::Result<tonic::Response<super::ResumeResponse>, tonic::Status>;
4676        async fn refresh(
4677            &self,
4678            request: tonic::Request<super::RefreshRequest>,
4679        ) -> std::result::Result<tonic::Response<super::RefreshResponse>, tonic::Status>;
4680        async fn cancel_creating_jobs(
4681            &self,
4682            request: tonic::Request<super::CancelCreatingJobsRequest>,
4683        ) -> std::result::Result<
4684            tonic::Response<super::CancelCreatingJobsResponse>,
4685            tonic::Status,
4686        >;
4687        async fn list_table_fragments(
4688            &self,
4689            request: tonic::Request<super::ListTableFragmentsRequest>,
4690        ) -> std::result::Result<
4691            tonic::Response<super::ListTableFragmentsResponse>,
4692            tonic::Status,
4693        >;
4694        async fn list_streaming_job_states(
4695            &self,
4696            request: tonic::Request<super::ListStreamingJobStatesRequest>,
4697        ) -> std::result::Result<
4698            tonic::Response<super::ListStreamingJobStatesResponse>,
4699            tonic::Status,
4700        >;
4701        async fn list_fragment_distribution(
4702            &self,
4703            request: tonic::Request<super::ListFragmentDistributionRequest>,
4704        ) -> std::result::Result<
4705            tonic::Response<super::ListFragmentDistributionResponse>,
4706            tonic::Status,
4707        >;
4708        async fn list_creating_fragment_distribution(
4709            &self,
4710            request: tonic::Request<super::ListCreatingFragmentDistributionRequest>,
4711        ) -> std::result::Result<
4712            tonic::Response<super::ListCreatingFragmentDistributionResponse>,
4713            tonic::Status,
4714        >;
4715        async fn list_actor_states(
4716            &self,
4717            request: tonic::Request<super::ListActorStatesRequest>,
4718        ) -> std::result::Result<
4719            tonic::Response<super::ListActorStatesResponse>,
4720            tonic::Status,
4721        >;
4722        async fn list_actor_splits(
4723            &self,
4724            request: tonic::Request<super::ListActorSplitsRequest>,
4725        ) -> std::result::Result<
4726            tonic::Response<super::ListActorSplitsResponse>,
4727            tonic::Status,
4728        >;
4729        async fn list_object_dependencies(
4730            &self,
4731            request: tonic::Request<super::ListObjectDependenciesRequest>,
4732        ) -> std::result::Result<
4733            tonic::Response<super::ListObjectDependenciesResponse>,
4734            tonic::Status,
4735        >;
4736        async fn apply_throttle(
4737            &self,
4738            request: tonic::Request<super::ApplyThrottleRequest>,
4739        ) -> std::result::Result<
4740            tonic::Response<super::ApplyThrottleResponse>,
4741            tonic::Status,
4742        >;
4743        async fn recover(
4744            &self,
4745            request: tonic::Request<super::RecoverRequest>,
4746        ) -> std::result::Result<tonic::Response<super::RecoverResponse>, tonic::Status>;
4747        async fn list_rate_limits(
4748            &self,
4749            request: tonic::Request<super::ListRateLimitsRequest>,
4750        ) -> std::result::Result<
4751            tonic::Response<super::ListRateLimitsResponse>,
4752            tonic::Status,
4753        >;
4754        async fn alter_connector_props(
4755            &self,
4756            request: tonic::Request<super::AlterConnectorPropsRequest>,
4757        ) -> std::result::Result<
4758            tonic::Response<super::AlterConnectorPropsResponse>,
4759            tonic::Status,
4760        >;
4761        async fn get_fragment_by_id(
4762            &self,
4763            request: tonic::Request<super::GetFragmentByIdRequest>,
4764        ) -> std::result::Result<
4765            tonic::Response<super::GetFragmentByIdResponse>,
4766            tonic::Status,
4767        >;
4768        async fn get_fragment_vnodes(
4769            &self,
4770            request: tonic::Request<super::GetFragmentVnodesRequest>,
4771        ) -> std::result::Result<
4772            tonic::Response<super::GetFragmentVnodesResponse>,
4773            tonic::Status,
4774        >;
4775        async fn get_actor_vnodes(
4776            &self,
4777            request: tonic::Request<super::GetActorVnodesRequest>,
4778        ) -> std::result::Result<
4779            tonic::Response<super::GetActorVnodesResponse>,
4780            tonic::Status,
4781        >;
4782        async fn set_sync_log_store_aligned(
4783            &self,
4784            request: tonic::Request<super::SetSyncLogStoreAlignedRequest>,
4785        ) -> std::result::Result<
4786            tonic::Response<super::SetSyncLogStoreAlignedResponse>,
4787            tonic::Status,
4788        >;
4789        async fn list_cdc_progress(
4790            &self,
4791            request: tonic::Request<super::ListCdcProgressRequest>,
4792        ) -> std::result::Result<
4793            tonic::Response<super::ListCdcProgressResponse>,
4794            tonic::Status,
4795        >;
4796        async fn list_unmigrated_tables(
4797            &self,
4798            request: tonic::Request<super::ListUnmigratedTablesRequest>,
4799        ) -> std::result::Result<
4800            tonic::Response<super::ListUnmigratedTablesResponse>,
4801            tonic::Status,
4802        >;
4803    }
4804    #[derive(Debug)]
4805    pub struct StreamManagerServiceServer<T> {
4806        inner: Arc<T>,
4807        accept_compression_encodings: EnabledCompressionEncodings,
4808        send_compression_encodings: EnabledCompressionEncodings,
4809        max_decoding_message_size: Option<usize>,
4810        max_encoding_message_size: Option<usize>,
4811    }
4812    impl<T> StreamManagerServiceServer<T> {
4813        pub fn new(inner: T) -> Self {
4814            Self::from_arc(Arc::new(inner))
4815        }
4816        pub fn from_arc(inner: Arc<T>) -> Self {
4817            Self {
4818                inner,
4819                accept_compression_encodings: Default::default(),
4820                send_compression_encodings: Default::default(),
4821                max_decoding_message_size: None,
4822                max_encoding_message_size: None,
4823            }
4824        }
4825        pub fn with_interceptor<F>(
4826            inner: T,
4827            interceptor: F,
4828        ) -> InterceptedService<Self, F>
4829        where
4830            F: tonic::service::Interceptor,
4831        {
4832            InterceptedService::new(Self::new(inner), interceptor)
4833        }
4834        /// Enable decompressing requests with the given encoding.
4835        #[must_use]
4836        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
4837            self.accept_compression_encodings.enable(encoding);
4838            self
4839        }
4840        /// Compress responses with the given encoding, if the client supports it.
4841        #[must_use]
4842        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
4843            self.send_compression_encodings.enable(encoding);
4844            self
4845        }
4846        /// Limits the maximum size of a decoded message.
4847        ///
4848        /// Default: `4MB`
4849        #[must_use]
4850        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
4851            self.max_decoding_message_size = Some(limit);
4852            self
4853        }
4854        /// Limits the maximum size of an encoded message.
4855        ///
4856        /// Default: `usize::MAX`
4857        #[must_use]
4858        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
4859            self.max_encoding_message_size = Some(limit);
4860            self
4861        }
4862    }
4863    impl<T, B> tonic::codegen::Service<http::Request<B>>
4864    for StreamManagerServiceServer<T>
4865    where
4866        T: StreamManagerService,
4867        B: Body + std::marker::Send + 'static,
4868        B::Error: Into<StdError> + std::marker::Send + 'static,
4869    {
4870        type Response = http::Response<tonic::body::BoxBody>;
4871        type Error = std::convert::Infallible;
4872        type Future = BoxFuture<Self::Response, Self::Error>;
4873        fn poll_ready(
4874            &mut self,
4875            _cx: &mut Context<'_>,
4876        ) -> Poll<std::result::Result<(), Self::Error>> {
4877            Poll::Ready(Ok(()))
4878        }
4879        fn call(&mut self, req: http::Request<B>) -> Self::Future {
4880            match req.uri().path() {
4881                "/meta.StreamManagerService/Flush" => {
4882                    #[allow(non_camel_case_types)]
4883                    struct FlushSvc<T: StreamManagerService>(pub Arc<T>);
4884                    impl<
4885                        T: StreamManagerService,
4886                    > tonic::server::UnaryService<super::FlushRequest> for FlushSvc<T> {
4887                        type Response = super::FlushResponse;
4888                        type Future = BoxFuture<
4889                            tonic::Response<Self::Response>,
4890                            tonic::Status,
4891                        >;
4892                        fn call(
4893                            &mut self,
4894                            request: tonic::Request<super::FlushRequest>,
4895                        ) -> Self::Future {
4896                            let inner = Arc::clone(&self.0);
4897                            let fut = async move {
4898                                <T as StreamManagerService>::flush(&inner, request).await
4899                            };
4900                            Box::pin(fut)
4901                        }
4902                    }
4903                    let accept_compression_encodings = self.accept_compression_encodings;
4904                    let send_compression_encodings = self.send_compression_encodings;
4905                    let max_decoding_message_size = self.max_decoding_message_size;
4906                    let max_encoding_message_size = self.max_encoding_message_size;
4907                    let inner = self.inner.clone();
4908                    let fut = async move {
4909                        let method = FlushSvc(inner);
4910                        let codec = tonic::codec::ProstCodec::default();
4911                        let mut grpc = tonic::server::Grpc::new(codec)
4912                            .apply_compression_config(
4913                                accept_compression_encodings,
4914                                send_compression_encodings,
4915                            )
4916                            .apply_max_message_size_config(
4917                                max_decoding_message_size,
4918                                max_encoding_message_size,
4919                            );
4920                        let res = grpc.unary(method, req).await;
4921                        Ok(res)
4922                    };
4923                    Box::pin(fut)
4924                }
4925                "/meta.StreamManagerService/Pause" => {
4926                    #[allow(non_camel_case_types)]
4927                    struct PauseSvc<T: StreamManagerService>(pub Arc<T>);
4928                    impl<
4929                        T: StreamManagerService,
4930                    > tonic::server::UnaryService<super::PauseRequest> for PauseSvc<T> {
4931                        type Response = super::PauseResponse;
4932                        type Future = BoxFuture<
4933                            tonic::Response<Self::Response>,
4934                            tonic::Status,
4935                        >;
4936                        fn call(
4937                            &mut self,
4938                            request: tonic::Request<super::PauseRequest>,
4939                        ) -> Self::Future {
4940                            let inner = Arc::clone(&self.0);
4941                            let fut = async move {
4942                                <T as StreamManagerService>::pause(&inner, request).await
4943                            };
4944                            Box::pin(fut)
4945                        }
4946                    }
4947                    let accept_compression_encodings = self.accept_compression_encodings;
4948                    let send_compression_encodings = self.send_compression_encodings;
4949                    let max_decoding_message_size = self.max_decoding_message_size;
4950                    let max_encoding_message_size = self.max_encoding_message_size;
4951                    let inner = self.inner.clone();
4952                    let fut = async move {
4953                        let method = PauseSvc(inner);
4954                        let codec = tonic::codec::ProstCodec::default();
4955                        let mut grpc = tonic::server::Grpc::new(codec)
4956                            .apply_compression_config(
4957                                accept_compression_encodings,
4958                                send_compression_encodings,
4959                            )
4960                            .apply_max_message_size_config(
4961                                max_decoding_message_size,
4962                                max_encoding_message_size,
4963                            );
4964                        let res = grpc.unary(method, req).await;
4965                        Ok(res)
4966                    };
4967                    Box::pin(fut)
4968                }
4969                "/meta.StreamManagerService/Resume" => {
4970                    #[allow(non_camel_case_types)]
4971                    struct ResumeSvc<T: StreamManagerService>(pub Arc<T>);
4972                    impl<
4973                        T: StreamManagerService,
4974                    > tonic::server::UnaryService<super::ResumeRequest>
4975                    for ResumeSvc<T> {
4976                        type Response = super::ResumeResponse;
4977                        type Future = BoxFuture<
4978                            tonic::Response<Self::Response>,
4979                            tonic::Status,
4980                        >;
4981                        fn call(
4982                            &mut self,
4983                            request: tonic::Request<super::ResumeRequest>,
4984                        ) -> Self::Future {
4985                            let inner = Arc::clone(&self.0);
4986                            let fut = async move {
4987                                <T as StreamManagerService>::resume(&inner, request).await
4988                            };
4989                            Box::pin(fut)
4990                        }
4991                    }
4992                    let accept_compression_encodings = self.accept_compression_encodings;
4993                    let send_compression_encodings = self.send_compression_encodings;
4994                    let max_decoding_message_size = self.max_decoding_message_size;
4995                    let max_encoding_message_size = self.max_encoding_message_size;
4996                    let inner = self.inner.clone();
4997                    let fut = async move {
4998                        let method = ResumeSvc(inner);
4999                        let codec = tonic::codec::ProstCodec::default();
5000                        let mut grpc = tonic::server::Grpc::new(codec)
5001                            .apply_compression_config(
5002                                accept_compression_encodings,
5003                                send_compression_encodings,
5004                            )
5005                            .apply_max_message_size_config(
5006                                max_decoding_message_size,
5007                                max_encoding_message_size,
5008                            );
5009                        let res = grpc.unary(method, req).await;
5010                        Ok(res)
5011                    };
5012                    Box::pin(fut)
5013                }
5014                "/meta.StreamManagerService/Refresh" => {
5015                    #[allow(non_camel_case_types)]
5016                    struct RefreshSvc<T: StreamManagerService>(pub Arc<T>);
5017                    impl<
5018                        T: StreamManagerService,
5019                    > tonic::server::UnaryService<super::RefreshRequest>
5020                    for RefreshSvc<T> {
5021                        type Response = super::RefreshResponse;
5022                        type Future = BoxFuture<
5023                            tonic::Response<Self::Response>,
5024                            tonic::Status,
5025                        >;
5026                        fn call(
5027                            &mut self,
5028                            request: tonic::Request<super::RefreshRequest>,
5029                        ) -> Self::Future {
5030                            let inner = Arc::clone(&self.0);
5031                            let fut = async move {
5032                                <T as StreamManagerService>::refresh(&inner, request).await
5033                            };
5034                            Box::pin(fut)
5035                        }
5036                    }
5037                    let accept_compression_encodings = self.accept_compression_encodings;
5038                    let send_compression_encodings = self.send_compression_encodings;
5039                    let max_decoding_message_size = self.max_decoding_message_size;
5040                    let max_encoding_message_size = self.max_encoding_message_size;
5041                    let inner = self.inner.clone();
5042                    let fut = async move {
5043                        let method = RefreshSvc(inner);
5044                        let codec = tonic::codec::ProstCodec::default();
5045                        let mut grpc = tonic::server::Grpc::new(codec)
5046                            .apply_compression_config(
5047                                accept_compression_encodings,
5048                                send_compression_encodings,
5049                            )
5050                            .apply_max_message_size_config(
5051                                max_decoding_message_size,
5052                                max_encoding_message_size,
5053                            );
5054                        let res = grpc.unary(method, req).await;
5055                        Ok(res)
5056                    };
5057                    Box::pin(fut)
5058                }
5059                "/meta.StreamManagerService/CancelCreatingJobs" => {
5060                    #[allow(non_camel_case_types)]
5061                    struct CancelCreatingJobsSvc<T: StreamManagerService>(pub Arc<T>);
5062                    impl<
5063                        T: StreamManagerService,
5064                    > tonic::server::UnaryService<super::CancelCreatingJobsRequest>
5065                    for CancelCreatingJobsSvc<T> {
5066                        type Response = super::CancelCreatingJobsResponse;
5067                        type Future = BoxFuture<
5068                            tonic::Response<Self::Response>,
5069                            tonic::Status,
5070                        >;
5071                        fn call(
5072                            &mut self,
5073                            request: tonic::Request<super::CancelCreatingJobsRequest>,
5074                        ) -> Self::Future {
5075                            let inner = Arc::clone(&self.0);
5076                            let fut = async move {
5077                                <T as StreamManagerService>::cancel_creating_jobs(
5078                                        &inner,
5079                                        request,
5080                                    )
5081                                    .await
5082                            };
5083                            Box::pin(fut)
5084                        }
5085                    }
5086                    let accept_compression_encodings = self.accept_compression_encodings;
5087                    let send_compression_encodings = self.send_compression_encodings;
5088                    let max_decoding_message_size = self.max_decoding_message_size;
5089                    let max_encoding_message_size = self.max_encoding_message_size;
5090                    let inner = self.inner.clone();
5091                    let fut = async move {
5092                        let method = CancelCreatingJobsSvc(inner);
5093                        let codec = tonic::codec::ProstCodec::default();
5094                        let mut grpc = tonic::server::Grpc::new(codec)
5095                            .apply_compression_config(
5096                                accept_compression_encodings,
5097                                send_compression_encodings,
5098                            )
5099                            .apply_max_message_size_config(
5100                                max_decoding_message_size,
5101                                max_encoding_message_size,
5102                            );
5103                        let res = grpc.unary(method, req).await;
5104                        Ok(res)
5105                    };
5106                    Box::pin(fut)
5107                }
5108                "/meta.StreamManagerService/ListTableFragments" => {
5109                    #[allow(non_camel_case_types)]
5110                    struct ListTableFragmentsSvc<T: StreamManagerService>(pub Arc<T>);
5111                    impl<
5112                        T: StreamManagerService,
5113                    > tonic::server::UnaryService<super::ListTableFragmentsRequest>
5114                    for ListTableFragmentsSvc<T> {
5115                        type Response = super::ListTableFragmentsResponse;
5116                        type Future = BoxFuture<
5117                            tonic::Response<Self::Response>,
5118                            tonic::Status,
5119                        >;
5120                        fn call(
5121                            &mut self,
5122                            request: tonic::Request<super::ListTableFragmentsRequest>,
5123                        ) -> Self::Future {
5124                            let inner = Arc::clone(&self.0);
5125                            let fut = async move {
5126                                <T as StreamManagerService>::list_table_fragments(
5127                                        &inner,
5128                                        request,
5129                                    )
5130                                    .await
5131                            };
5132                            Box::pin(fut)
5133                        }
5134                    }
5135                    let accept_compression_encodings = self.accept_compression_encodings;
5136                    let send_compression_encodings = self.send_compression_encodings;
5137                    let max_decoding_message_size = self.max_decoding_message_size;
5138                    let max_encoding_message_size = self.max_encoding_message_size;
5139                    let inner = self.inner.clone();
5140                    let fut = async move {
5141                        let method = ListTableFragmentsSvc(inner);
5142                        let codec = tonic::codec::ProstCodec::default();
5143                        let mut grpc = tonic::server::Grpc::new(codec)
5144                            .apply_compression_config(
5145                                accept_compression_encodings,
5146                                send_compression_encodings,
5147                            )
5148                            .apply_max_message_size_config(
5149                                max_decoding_message_size,
5150                                max_encoding_message_size,
5151                            );
5152                        let res = grpc.unary(method, req).await;
5153                        Ok(res)
5154                    };
5155                    Box::pin(fut)
5156                }
5157                "/meta.StreamManagerService/ListStreamingJobStates" => {
5158                    #[allow(non_camel_case_types)]
5159                    struct ListStreamingJobStatesSvc<T: StreamManagerService>(
5160                        pub Arc<T>,
5161                    );
5162                    impl<
5163                        T: StreamManagerService,
5164                    > tonic::server::UnaryService<super::ListStreamingJobStatesRequest>
5165                    for ListStreamingJobStatesSvc<T> {
5166                        type Response = super::ListStreamingJobStatesResponse;
5167                        type Future = BoxFuture<
5168                            tonic::Response<Self::Response>,
5169                            tonic::Status,
5170                        >;
5171                        fn call(
5172                            &mut self,
5173                            request: tonic::Request<super::ListStreamingJobStatesRequest>,
5174                        ) -> Self::Future {
5175                            let inner = Arc::clone(&self.0);
5176                            let fut = async move {
5177                                <T as StreamManagerService>::list_streaming_job_states(
5178                                        &inner,
5179                                        request,
5180                                    )
5181                                    .await
5182                            };
5183                            Box::pin(fut)
5184                        }
5185                    }
5186                    let accept_compression_encodings = self.accept_compression_encodings;
5187                    let send_compression_encodings = self.send_compression_encodings;
5188                    let max_decoding_message_size = self.max_decoding_message_size;
5189                    let max_encoding_message_size = self.max_encoding_message_size;
5190                    let inner = self.inner.clone();
5191                    let fut = async move {
5192                        let method = ListStreamingJobStatesSvc(inner);
5193                        let codec = tonic::codec::ProstCodec::default();
5194                        let mut grpc = tonic::server::Grpc::new(codec)
5195                            .apply_compression_config(
5196                                accept_compression_encodings,
5197                                send_compression_encodings,
5198                            )
5199                            .apply_max_message_size_config(
5200                                max_decoding_message_size,
5201                                max_encoding_message_size,
5202                            );
5203                        let res = grpc.unary(method, req).await;
5204                        Ok(res)
5205                    };
5206                    Box::pin(fut)
5207                }
5208                "/meta.StreamManagerService/ListFragmentDistribution" => {
5209                    #[allow(non_camel_case_types)]
5210                    struct ListFragmentDistributionSvc<T: StreamManagerService>(
5211                        pub Arc<T>,
5212                    );
5213                    impl<
5214                        T: StreamManagerService,
5215                    > tonic::server::UnaryService<super::ListFragmentDistributionRequest>
5216                    for ListFragmentDistributionSvc<T> {
5217                        type Response = super::ListFragmentDistributionResponse;
5218                        type Future = BoxFuture<
5219                            tonic::Response<Self::Response>,
5220                            tonic::Status,
5221                        >;
5222                        fn call(
5223                            &mut self,
5224                            request: tonic::Request<
5225                                super::ListFragmentDistributionRequest,
5226                            >,
5227                        ) -> Self::Future {
5228                            let inner = Arc::clone(&self.0);
5229                            let fut = async move {
5230                                <T as StreamManagerService>::list_fragment_distribution(
5231                                        &inner,
5232                                        request,
5233                                    )
5234                                    .await
5235                            };
5236                            Box::pin(fut)
5237                        }
5238                    }
5239                    let accept_compression_encodings = self.accept_compression_encodings;
5240                    let send_compression_encodings = self.send_compression_encodings;
5241                    let max_decoding_message_size = self.max_decoding_message_size;
5242                    let max_encoding_message_size = self.max_encoding_message_size;
5243                    let inner = self.inner.clone();
5244                    let fut = async move {
5245                        let method = ListFragmentDistributionSvc(inner);
5246                        let codec = tonic::codec::ProstCodec::default();
5247                        let mut grpc = tonic::server::Grpc::new(codec)
5248                            .apply_compression_config(
5249                                accept_compression_encodings,
5250                                send_compression_encodings,
5251                            )
5252                            .apply_max_message_size_config(
5253                                max_decoding_message_size,
5254                                max_encoding_message_size,
5255                            );
5256                        let res = grpc.unary(method, req).await;
5257                        Ok(res)
5258                    };
5259                    Box::pin(fut)
5260                }
5261                "/meta.StreamManagerService/ListCreatingFragmentDistribution" => {
5262                    #[allow(non_camel_case_types)]
5263                    struct ListCreatingFragmentDistributionSvc<T: StreamManagerService>(
5264                        pub Arc<T>,
5265                    );
5266                    impl<
5267                        T: StreamManagerService,
5268                    > tonic::server::UnaryService<
5269                        super::ListCreatingFragmentDistributionRequest,
5270                    > for ListCreatingFragmentDistributionSvc<T> {
5271                        type Response = super::ListCreatingFragmentDistributionResponse;
5272                        type Future = BoxFuture<
5273                            tonic::Response<Self::Response>,
5274                            tonic::Status,
5275                        >;
5276                        fn call(
5277                            &mut self,
5278                            request: tonic::Request<
5279                                super::ListCreatingFragmentDistributionRequest,
5280                            >,
5281                        ) -> Self::Future {
5282                            let inner = Arc::clone(&self.0);
5283                            let fut = async move {
5284                                <T as StreamManagerService>::list_creating_fragment_distribution(
5285                                        &inner,
5286                                        request,
5287                                    )
5288                                    .await
5289                            };
5290                            Box::pin(fut)
5291                        }
5292                    }
5293                    let accept_compression_encodings = self.accept_compression_encodings;
5294                    let send_compression_encodings = self.send_compression_encodings;
5295                    let max_decoding_message_size = self.max_decoding_message_size;
5296                    let max_encoding_message_size = self.max_encoding_message_size;
5297                    let inner = self.inner.clone();
5298                    let fut = async move {
5299                        let method = ListCreatingFragmentDistributionSvc(inner);
5300                        let codec = tonic::codec::ProstCodec::default();
5301                        let mut grpc = tonic::server::Grpc::new(codec)
5302                            .apply_compression_config(
5303                                accept_compression_encodings,
5304                                send_compression_encodings,
5305                            )
5306                            .apply_max_message_size_config(
5307                                max_decoding_message_size,
5308                                max_encoding_message_size,
5309                            );
5310                        let res = grpc.unary(method, req).await;
5311                        Ok(res)
5312                    };
5313                    Box::pin(fut)
5314                }
5315                "/meta.StreamManagerService/ListActorStates" => {
5316                    #[allow(non_camel_case_types)]
5317                    struct ListActorStatesSvc<T: StreamManagerService>(pub Arc<T>);
5318                    impl<
5319                        T: StreamManagerService,
5320                    > tonic::server::UnaryService<super::ListActorStatesRequest>
5321                    for ListActorStatesSvc<T> {
5322                        type Response = super::ListActorStatesResponse;
5323                        type Future = BoxFuture<
5324                            tonic::Response<Self::Response>,
5325                            tonic::Status,
5326                        >;
5327                        fn call(
5328                            &mut self,
5329                            request: tonic::Request<super::ListActorStatesRequest>,
5330                        ) -> Self::Future {
5331                            let inner = Arc::clone(&self.0);
5332                            let fut = async move {
5333                                <T as StreamManagerService>::list_actor_states(
5334                                        &inner,
5335                                        request,
5336                                    )
5337                                    .await
5338                            };
5339                            Box::pin(fut)
5340                        }
5341                    }
5342                    let accept_compression_encodings = self.accept_compression_encodings;
5343                    let send_compression_encodings = self.send_compression_encodings;
5344                    let max_decoding_message_size = self.max_decoding_message_size;
5345                    let max_encoding_message_size = self.max_encoding_message_size;
5346                    let inner = self.inner.clone();
5347                    let fut = async move {
5348                        let method = ListActorStatesSvc(inner);
5349                        let codec = tonic::codec::ProstCodec::default();
5350                        let mut grpc = tonic::server::Grpc::new(codec)
5351                            .apply_compression_config(
5352                                accept_compression_encodings,
5353                                send_compression_encodings,
5354                            )
5355                            .apply_max_message_size_config(
5356                                max_decoding_message_size,
5357                                max_encoding_message_size,
5358                            );
5359                        let res = grpc.unary(method, req).await;
5360                        Ok(res)
5361                    };
5362                    Box::pin(fut)
5363                }
5364                "/meta.StreamManagerService/ListActorSplits" => {
5365                    #[allow(non_camel_case_types)]
5366                    struct ListActorSplitsSvc<T: StreamManagerService>(pub Arc<T>);
5367                    impl<
5368                        T: StreamManagerService,
5369                    > tonic::server::UnaryService<super::ListActorSplitsRequest>
5370                    for ListActorSplitsSvc<T> {
5371                        type Response = super::ListActorSplitsResponse;
5372                        type Future = BoxFuture<
5373                            tonic::Response<Self::Response>,
5374                            tonic::Status,
5375                        >;
5376                        fn call(
5377                            &mut self,
5378                            request: tonic::Request<super::ListActorSplitsRequest>,
5379                        ) -> Self::Future {
5380                            let inner = Arc::clone(&self.0);
5381                            let fut = async move {
5382                                <T as StreamManagerService>::list_actor_splits(
5383                                        &inner,
5384                                        request,
5385                                    )
5386                                    .await
5387                            };
5388                            Box::pin(fut)
5389                        }
5390                    }
5391                    let accept_compression_encodings = self.accept_compression_encodings;
5392                    let send_compression_encodings = self.send_compression_encodings;
5393                    let max_decoding_message_size = self.max_decoding_message_size;
5394                    let max_encoding_message_size = self.max_encoding_message_size;
5395                    let inner = self.inner.clone();
5396                    let fut = async move {
5397                        let method = ListActorSplitsSvc(inner);
5398                        let codec = tonic::codec::ProstCodec::default();
5399                        let mut grpc = tonic::server::Grpc::new(codec)
5400                            .apply_compression_config(
5401                                accept_compression_encodings,
5402                                send_compression_encodings,
5403                            )
5404                            .apply_max_message_size_config(
5405                                max_decoding_message_size,
5406                                max_encoding_message_size,
5407                            );
5408                        let res = grpc.unary(method, req).await;
5409                        Ok(res)
5410                    };
5411                    Box::pin(fut)
5412                }
5413                "/meta.StreamManagerService/ListObjectDependencies" => {
5414                    #[allow(non_camel_case_types)]
5415                    struct ListObjectDependenciesSvc<T: StreamManagerService>(
5416                        pub Arc<T>,
5417                    );
5418                    impl<
5419                        T: StreamManagerService,
5420                    > tonic::server::UnaryService<super::ListObjectDependenciesRequest>
5421                    for ListObjectDependenciesSvc<T> {
5422                        type Response = super::ListObjectDependenciesResponse;
5423                        type Future = BoxFuture<
5424                            tonic::Response<Self::Response>,
5425                            tonic::Status,
5426                        >;
5427                        fn call(
5428                            &mut self,
5429                            request: tonic::Request<super::ListObjectDependenciesRequest>,
5430                        ) -> Self::Future {
5431                            let inner = Arc::clone(&self.0);
5432                            let fut = async move {
5433                                <T as StreamManagerService>::list_object_dependencies(
5434                                        &inner,
5435                                        request,
5436                                    )
5437                                    .await
5438                            };
5439                            Box::pin(fut)
5440                        }
5441                    }
5442                    let accept_compression_encodings = self.accept_compression_encodings;
5443                    let send_compression_encodings = self.send_compression_encodings;
5444                    let max_decoding_message_size = self.max_decoding_message_size;
5445                    let max_encoding_message_size = self.max_encoding_message_size;
5446                    let inner = self.inner.clone();
5447                    let fut = async move {
5448                        let method = ListObjectDependenciesSvc(inner);
5449                        let codec = tonic::codec::ProstCodec::default();
5450                        let mut grpc = tonic::server::Grpc::new(codec)
5451                            .apply_compression_config(
5452                                accept_compression_encodings,
5453                                send_compression_encodings,
5454                            )
5455                            .apply_max_message_size_config(
5456                                max_decoding_message_size,
5457                                max_encoding_message_size,
5458                            );
5459                        let res = grpc.unary(method, req).await;
5460                        Ok(res)
5461                    };
5462                    Box::pin(fut)
5463                }
5464                "/meta.StreamManagerService/ApplyThrottle" => {
5465                    #[allow(non_camel_case_types)]
5466                    struct ApplyThrottleSvc<T: StreamManagerService>(pub Arc<T>);
5467                    impl<
5468                        T: StreamManagerService,
5469                    > tonic::server::UnaryService<super::ApplyThrottleRequest>
5470                    for ApplyThrottleSvc<T> {
5471                        type Response = super::ApplyThrottleResponse;
5472                        type Future = BoxFuture<
5473                            tonic::Response<Self::Response>,
5474                            tonic::Status,
5475                        >;
5476                        fn call(
5477                            &mut self,
5478                            request: tonic::Request<super::ApplyThrottleRequest>,
5479                        ) -> Self::Future {
5480                            let inner = Arc::clone(&self.0);
5481                            let fut = async move {
5482                                <T as StreamManagerService>::apply_throttle(&inner, request)
5483                                    .await
5484                            };
5485                            Box::pin(fut)
5486                        }
5487                    }
5488                    let accept_compression_encodings = self.accept_compression_encodings;
5489                    let send_compression_encodings = self.send_compression_encodings;
5490                    let max_decoding_message_size = self.max_decoding_message_size;
5491                    let max_encoding_message_size = self.max_encoding_message_size;
5492                    let inner = self.inner.clone();
5493                    let fut = async move {
5494                        let method = ApplyThrottleSvc(inner);
5495                        let codec = tonic::codec::ProstCodec::default();
5496                        let mut grpc = tonic::server::Grpc::new(codec)
5497                            .apply_compression_config(
5498                                accept_compression_encodings,
5499                                send_compression_encodings,
5500                            )
5501                            .apply_max_message_size_config(
5502                                max_decoding_message_size,
5503                                max_encoding_message_size,
5504                            );
5505                        let res = grpc.unary(method, req).await;
5506                        Ok(res)
5507                    };
5508                    Box::pin(fut)
5509                }
5510                "/meta.StreamManagerService/Recover" => {
5511                    #[allow(non_camel_case_types)]
5512                    struct RecoverSvc<T: StreamManagerService>(pub Arc<T>);
5513                    impl<
5514                        T: StreamManagerService,
5515                    > tonic::server::UnaryService<super::RecoverRequest>
5516                    for RecoverSvc<T> {
5517                        type Response = super::RecoverResponse;
5518                        type Future = BoxFuture<
5519                            tonic::Response<Self::Response>,
5520                            tonic::Status,
5521                        >;
5522                        fn call(
5523                            &mut self,
5524                            request: tonic::Request<super::RecoverRequest>,
5525                        ) -> Self::Future {
5526                            let inner = Arc::clone(&self.0);
5527                            let fut = async move {
5528                                <T as StreamManagerService>::recover(&inner, request).await
5529                            };
5530                            Box::pin(fut)
5531                        }
5532                    }
5533                    let accept_compression_encodings = self.accept_compression_encodings;
5534                    let send_compression_encodings = self.send_compression_encodings;
5535                    let max_decoding_message_size = self.max_decoding_message_size;
5536                    let max_encoding_message_size = self.max_encoding_message_size;
5537                    let inner = self.inner.clone();
5538                    let fut = async move {
5539                        let method = RecoverSvc(inner);
5540                        let codec = tonic::codec::ProstCodec::default();
5541                        let mut grpc = tonic::server::Grpc::new(codec)
5542                            .apply_compression_config(
5543                                accept_compression_encodings,
5544                                send_compression_encodings,
5545                            )
5546                            .apply_max_message_size_config(
5547                                max_decoding_message_size,
5548                                max_encoding_message_size,
5549                            );
5550                        let res = grpc.unary(method, req).await;
5551                        Ok(res)
5552                    };
5553                    Box::pin(fut)
5554                }
5555                "/meta.StreamManagerService/ListRateLimits" => {
5556                    #[allow(non_camel_case_types)]
5557                    struct ListRateLimitsSvc<T: StreamManagerService>(pub Arc<T>);
5558                    impl<
5559                        T: StreamManagerService,
5560                    > tonic::server::UnaryService<super::ListRateLimitsRequest>
5561                    for ListRateLimitsSvc<T> {
5562                        type Response = super::ListRateLimitsResponse;
5563                        type Future = BoxFuture<
5564                            tonic::Response<Self::Response>,
5565                            tonic::Status,
5566                        >;
5567                        fn call(
5568                            &mut self,
5569                            request: tonic::Request<super::ListRateLimitsRequest>,
5570                        ) -> Self::Future {
5571                            let inner = Arc::clone(&self.0);
5572                            let fut = async move {
5573                                <T as StreamManagerService>::list_rate_limits(
5574                                        &inner,
5575                                        request,
5576                                    )
5577                                    .await
5578                            };
5579                            Box::pin(fut)
5580                        }
5581                    }
5582                    let accept_compression_encodings = self.accept_compression_encodings;
5583                    let send_compression_encodings = self.send_compression_encodings;
5584                    let max_decoding_message_size = self.max_decoding_message_size;
5585                    let max_encoding_message_size = self.max_encoding_message_size;
5586                    let inner = self.inner.clone();
5587                    let fut = async move {
5588                        let method = ListRateLimitsSvc(inner);
5589                        let codec = tonic::codec::ProstCodec::default();
5590                        let mut grpc = tonic::server::Grpc::new(codec)
5591                            .apply_compression_config(
5592                                accept_compression_encodings,
5593                                send_compression_encodings,
5594                            )
5595                            .apply_max_message_size_config(
5596                                max_decoding_message_size,
5597                                max_encoding_message_size,
5598                            );
5599                        let res = grpc.unary(method, req).await;
5600                        Ok(res)
5601                    };
5602                    Box::pin(fut)
5603                }
5604                "/meta.StreamManagerService/AlterConnectorProps" => {
5605                    #[allow(non_camel_case_types)]
5606                    struct AlterConnectorPropsSvc<T: StreamManagerService>(pub Arc<T>);
5607                    impl<
5608                        T: StreamManagerService,
5609                    > tonic::server::UnaryService<super::AlterConnectorPropsRequest>
5610                    for AlterConnectorPropsSvc<T> {
5611                        type Response = super::AlterConnectorPropsResponse;
5612                        type Future = BoxFuture<
5613                            tonic::Response<Self::Response>,
5614                            tonic::Status,
5615                        >;
5616                        fn call(
5617                            &mut self,
5618                            request: tonic::Request<super::AlterConnectorPropsRequest>,
5619                        ) -> Self::Future {
5620                            let inner = Arc::clone(&self.0);
5621                            let fut = async move {
5622                                <T as StreamManagerService>::alter_connector_props(
5623                                        &inner,
5624                                        request,
5625                                    )
5626                                    .await
5627                            };
5628                            Box::pin(fut)
5629                        }
5630                    }
5631                    let accept_compression_encodings = self.accept_compression_encodings;
5632                    let send_compression_encodings = self.send_compression_encodings;
5633                    let max_decoding_message_size = self.max_decoding_message_size;
5634                    let max_encoding_message_size = self.max_encoding_message_size;
5635                    let inner = self.inner.clone();
5636                    let fut = async move {
5637                        let method = AlterConnectorPropsSvc(inner);
5638                        let codec = tonic::codec::ProstCodec::default();
5639                        let mut grpc = tonic::server::Grpc::new(codec)
5640                            .apply_compression_config(
5641                                accept_compression_encodings,
5642                                send_compression_encodings,
5643                            )
5644                            .apply_max_message_size_config(
5645                                max_decoding_message_size,
5646                                max_encoding_message_size,
5647                            );
5648                        let res = grpc.unary(method, req).await;
5649                        Ok(res)
5650                    };
5651                    Box::pin(fut)
5652                }
5653                "/meta.StreamManagerService/GetFragmentById" => {
5654                    #[allow(non_camel_case_types)]
5655                    struct GetFragmentByIdSvc<T: StreamManagerService>(pub Arc<T>);
5656                    impl<
5657                        T: StreamManagerService,
5658                    > tonic::server::UnaryService<super::GetFragmentByIdRequest>
5659                    for GetFragmentByIdSvc<T> {
5660                        type Response = super::GetFragmentByIdResponse;
5661                        type Future = BoxFuture<
5662                            tonic::Response<Self::Response>,
5663                            tonic::Status,
5664                        >;
5665                        fn call(
5666                            &mut self,
5667                            request: tonic::Request<super::GetFragmentByIdRequest>,
5668                        ) -> Self::Future {
5669                            let inner = Arc::clone(&self.0);
5670                            let fut = async move {
5671                                <T as StreamManagerService>::get_fragment_by_id(
5672                                        &inner,
5673                                        request,
5674                                    )
5675                                    .await
5676                            };
5677                            Box::pin(fut)
5678                        }
5679                    }
5680                    let accept_compression_encodings = self.accept_compression_encodings;
5681                    let send_compression_encodings = self.send_compression_encodings;
5682                    let max_decoding_message_size = self.max_decoding_message_size;
5683                    let max_encoding_message_size = self.max_encoding_message_size;
5684                    let inner = self.inner.clone();
5685                    let fut = async move {
5686                        let method = GetFragmentByIdSvc(inner);
5687                        let codec = tonic::codec::ProstCodec::default();
5688                        let mut grpc = tonic::server::Grpc::new(codec)
5689                            .apply_compression_config(
5690                                accept_compression_encodings,
5691                                send_compression_encodings,
5692                            )
5693                            .apply_max_message_size_config(
5694                                max_decoding_message_size,
5695                                max_encoding_message_size,
5696                            );
5697                        let res = grpc.unary(method, req).await;
5698                        Ok(res)
5699                    };
5700                    Box::pin(fut)
5701                }
5702                "/meta.StreamManagerService/GetFragmentVnodes" => {
5703                    #[allow(non_camel_case_types)]
5704                    struct GetFragmentVnodesSvc<T: StreamManagerService>(pub Arc<T>);
5705                    impl<
5706                        T: StreamManagerService,
5707                    > tonic::server::UnaryService<super::GetFragmentVnodesRequest>
5708                    for GetFragmentVnodesSvc<T> {
5709                        type Response = super::GetFragmentVnodesResponse;
5710                        type Future = BoxFuture<
5711                            tonic::Response<Self::Response>,
5712                            tonic::Status,
5713                        >;
5714                        fn call(
5715                            &mut self,
5716                            request: tonic::Request<super::GetFragmentVnodesRequest>,
5717                        ) -> Self::Future {
5718                            let inner = Arc::clone(&self.0);
5719                            let fut = async move {
5720                                <T as StreamManagerService>::get_fragment_vnodes(
5721                                        &inner,
5722                                        request,
5723                                    )
5724                                    .await
5725                            };
5726                            Box::pin(fut)
5727                        }
5728                    }
5729                    let accept_compression_encodings = self.accept_compression_encodings;
5730                    let send_compression_encodings = self.send_compression_encodings;
5731                    let max_decoding_message_size = self.max_decoding_message_size;
5732                    let max_encoding_message_size = self.max_encoding_message_size;
5733                    let inner = self.inner.clone();
5734                    let fut = async move {
5735                        let method = GetFragmentVnodesSvc(inner);
5736                        let codec = tonic::codec::ProstCodec::default();
5737                        let mut grpc = tonic::server::Grpc::new(codec)
5738                            .apply_compression_config(
5739                                accept_compression_encodings,
5740                                send_compression_encodings,
5741                            )
5742                            .apply_max_message_size_config(
5743                                max_decoding_message_size,
5744                                max_encoding_message_size,
5745                            );
5746                        let res = grpc.unary(method, req).await;
5747                        Ok(res)
5748                    };
5749                    Box::pin(fut)
5750                }
5751                "/meta.StreamManagerService/GetActorVnodes" => {
5752                    #[allow(non_camel_case_types)]
5753                    struct GetActorVnodesSvc<T: StreamManagerService>(pub Arc<T>);
5754                    impl<
5755                        T: StreamManagerService,
5756                    > tonic::server::UnaryService<super::GetActorVnodesRequest>
5757                    for GetActorVnodesSvc<T> {
5758                        type Response = super::GetActorVnodesResponse;
5759                        type Future = BoxFuture<
5760                            tonic::Response<Self::Response>,
5761                            tonic::Status,
5762                        >;
5763                        fn call(
5764                            &mut self,
5765                            request: tonic::Request<super::GetActorVnodesRequest>,
5766                        ) -> Self::Future {
5767                            let inner = Arc::clone(&self.0);
5768                            let fut = async move {
5769                                <T as StreamManagerService>::get_actor_vnodes(
5770                                        &inner,
5771                                        request,
5772                                    )
5773                                    .await
5774                            };
5775                            Box::pin(fut)
5776                        }
5777                    }
5778                    let accept_compression_encodings = self.accept_compression_encodings;
5779                    let send_compression_encodings = self.send_compression_encodings;
5780                    let max_decoding_message_size = self.max_decoding_message_size;
5781                    let max_encoding_message_size = self.max_encoding_message_size;
5782                    let inner = self.inner.clone();
5783                    let fut = async move {
5784                        let method = GetActorVnodesSvc(inner);
5785                        let codec = tonic::codec::ProstCodec::default();
5786                        let mut grpc = tonic::server::Grpc::new(codec)
5787                            .apply_compression_config(
5788                                accept_compression_encodings,
5789                                send_compression_encodings,
5790                            )
5791                            .apply_max_message_size_config(
5792                                max_decoding_message_size,
5793                                max_encoding_message_size,
5794                            );
5795                        let res = grpc.unary(method, req).await;
5796                        Ok(res)
5797                    };
5798                    Box::pin(fut)
5799                }
5800                "/meta.StreamManagerService/SetSyncLogStoreAligned" => {
5801                    #[allow(non_camel_case_types)]
5802                    struct SetSyncLogStoreAlignedSvc<T: StreamManagerService>(
5803                        pub Arc<T>,
5804                    );
5805                    impl<
5806                        T: StreamManagerService,
5807                    > tonic::server::UnaryService<super::SetSyncLogStoreAlignedRequest>
5808                    for SetSyncLogStoreAlignedSvc<T> {
5809                        type Response = super::SetSyncLogStoreAlignedResponse;
5810                        type Future = BoxFuture<
5811                            tonic::Response<Self::Response>,
5812                            tonic::Status,
5813                        >;
5814                        fn call(
5815                            &mut self,
5816                            request: tonic::Request<super::SetSyncLogStoreAlignedRequest>,
5817                        ) -> Self::Future {
5818                            let inner = Arc::clone(&self.0);
5819                            let fut = async move {
5820                                <T as StreamManagerService>::set_sync_log_store_aligned(
5821                                        &inner,
5822                                        request,
5823                                    )
5824                                    .await
5825                            };
5826                            Box::pin(fut)
5827                        }
5828                    }
5829                    let accept_compression_encodings = self.accept_compression_encodings;
5830                    let send_compression_encodings = self.send_compression_encodings;
5831                    let max_decoding_message_size = self.max_decoding_message_size;
5832                    let max_encoding_message_size = self.max_encoding_message_size;
5833                    let inner = self.inner.clone();
5834                    let fut = async move {
5835                        let method = SetSyncLogStoreAlignedSvc(inner);
5836                        let codec = tonic::codec::ProstCodec::default();
5837                        let mut grpc = tonic::server::Grpc::new(codec)
5838                            .apply_compression_config(
5839                                accept_compression_encodings,
5840                                send_compression_encodings,
5841                            )
5842                            .apply_max_message_size_config(
5843                                max_decoding_message_size,
5844                                max_encoding_message_size,
5845                            );
5846                        let res = grpc.unary(method, req).await;
5847                        Ok(res)
5848                    };
5849                    Box::pin(fut)
5850                }
5851                "/meta.StreamManagerService/ListCdcProgress" => {
5852                    #[allow(non_camel_case_types)]
5853                    struct ListCdcProgressSvc<T: StreamManagerService>(pub Arc<T>);
5854                    impl<
5855                        T: StreamManagerService,
5856                    > tonic::server::UnaryService<super::ListCdcProgressRequest>
5857                    for ListCdcProgressSvc<T> {
5858                        type Response = super::ListCdcProgressResponse;
5859                        type Future = BoxFuture<
5860                            tonic::Response<Self::Response>,
5861                            tonic::Status,
5862                        >;
5863                        fn call(
5864                            &mut self,
5865                            request: tonic::Request<super::ListCdcProgressRequest>,
5866                        ) -> Self::Future {
5867                            let inner = Arc::clone(&self.0);
5868                            let fut = async move {
5869                                <T as StreamManagerService>::list_cdc_progress(
5870                                        &inner,
5871                                        request,
5872                                    )
5873                                    .await
5874                            };
5875                            Box::pin(fut)
5876                        }
5877                    }
5878                    let accept_compression_encodings = self.accept_compression_encodings;
5879                    let send_compression_encodings = self.send_compression_encodings;
5880                    let max_decoding_message_size = self.max_decoding_message_size;
5881                    let max_encoding_message_size = self.max_encoding_message_size;
5882                    let inner = self.inner.clone();
5883                    let fut = async move {
5884                        let method = ListCdcProgressSvc(inner);
5885                        let codec = tonic::codec::ProstCodec::default();
5886                        let mut grpc = tonic::server::Grpc::new(codec)
5887                            .apply_compression_config(
5888                                accept_compression_encodings,
5889                                send_compression_encodings,
5890                            )
5891                            .apply_max_message_size_config(
5892                                max_decoding_message_size,
5893                                max_encoding_message_size,
5894                            );
5895                        let res = grpc.unary(method, req).await;
5896                        Ok(res)
5897                    };
5898                    Box::pin(fut)
5899                }
5900                "/meta.StreamManagerService/ListUnmigratedTables" => {
5901                    #[allow(non_camel_case_types)]
5902                    struct ListUnmigratedTablesSvc<T: StreamManagerService>(pub Arc<T>);
5903                    impl<
5904                        T: StreamManagerService,
5905                    > tonic::server::UnaryService<super::ListUnmigratedTablesRequest>
5906                    for ListUnmigratedTablesSvc<T> {
5907                        type Response = super::ListUnmigratedTablesResponse;
5908                        type Future = BoxFuture<
5909                            tonic::Response<Self::Response>,
5910                            tonic::Status,
5911                        >;
5912                        fn call(
5913                            &mut self,
5914                            request: tonic::Request<super::ListUnmigratedTablesRequest>,
5915                        ) -> Self::Future {
5916                            let inner = Arc::clone(&self.0);
5917                            let fut = async move {
5918                                <T as StreamManagerService>::list_unmigrated_tables(
5919                                        &inner,
5920                                        request,
5921                                    )
5922                                    .await
5923                            };
5924                            Box::pin(fut)
5925                        }
5926                    }
5927                    let accept_compression_encodings = self.accept_compression_encodings;
5928                    let send_compression_encodings = self.send_compression_encodings;
5929                    let max_decoding_message_size = self.max_decoding_message_size;
5930                    let max_encoding_message_size = self.max_encoding_message_size;
5931                    let inner = self.inner.clone();
5932                    let fut = async move {
5933                        let method = ListUnmigratedTablesSvc(inner);
5934                        let codec = tonic::codec::ProstCodec::default();
5935                        let mut grpc = tonic::server::Grpc::new(codec)
5936                            .apply_compression_config(
5937                                accept_compression_encodings,
5938                                send_compression_encodings,
5939                            )
5940                            .apply_max_message_size_config(
5941                                max_decoding_message_size,
5942                                max_encoding_message_size,
5943                            );
5944                        let res = grpc.unary(method, req).await;
5945                        Ok(res)
5946                    };
5947                    Box::pin(fut)
5948                }
5949                _ => {
5950                    Box::pin(async move {
5951                        let mut response = http::Response::new(empty_body());
5952                        let headers = response.headers_mut();
5953                        headers
5954                            .insert(
5955                                tonic::Status::GRPC_STATUS,
5956                                (tonic::Code::Unimplemented as i32).into(),
5957                            );
5958                        headers
5959                            .insert(
5960                                http::header::CONTENT_TYPE,
5961                                tonic::metadata::GRPC_CONTENT_TYPE,
5962                            );
5963                        Ok(response)
5964                    })
5965                }
5966            }
5967        }
5968    }
5969    impl<T> Clone for StreamManagerServiceServer<T> {
5970        fn clone(&self) -> Self {
5971            let inner = self.inner.clone();
5972            Self {
5973                inner,
5974                accept_compression_encodings: self.accept_compression_encodings,
5975                send_compression_encodings: self.send_compression_encodings,
5976                max_decoding_message_size: self.max_decoding_message_size,
5977                max_encoding_message_size: self.max_encoding_message_size,
5978            }
5979        }
5980    }
5981    /// Generated gRPC service name
5982    pub const SERVICE_NAME: &str = "meta.StreamManagerService";
5983    impl<T> tonic::server::NamedService for StreamManagerServiceServer<T> {
5984        const NAME: &'static str = SERVICE_NAME;
5985    }
5986}
5987/// Generated server implementations.
5988pub mod cluster_service_server {
5989    #![allow(
5990        unused_variables,
5991        dead_code,
5992        missing_docs,
5993        clippy::wildcard_imports,
5994        clippy::let_unit_value,
5995    )]
5996    use tonic::codegen::*;
5997    /// Generated trait containing gRPC methods that should be implemented for use with ClusterServiceServer.
5998    #[async_trait]
5999    pub trait ClusterService: std::marker::Send + std::marker::Sync + 'static {
6000        async fn add_worker_node(
6001            &self,
6002            request: tonic::Request<super::AddWorkerNodeRequest>,
6003        ) -> std::result::Result<
6004            tonic::Response<super::AddWorkerNodeResponse>,
6005            tonic::Status,
6006        >;
6007        async fn activate_worker_node(
6008            &self,
6009            request: tonic::Request<super::ActivateWorkerNodeRequest>,
6010        ) -> std::result::Result<
6011            tonic::Response<super::ActivateWorkerNodeResponse>,
6012            tonic::Status,
6013        >;
6014        async fn delete_worker_node(
6015            &self,
6016            request: tonic::Request<super::DeleteWorkerNodeRequest>,
6017        ) -> std::result::Result<
6018            tonic::Response<super::DeleteWorkerNodeResponse>,
6019            tonic::Status,
6020        >;
6021        async fn update_worker_node_schedulability(
6022            &self,
6023            request: tonic::Request<super::UpdateWorkerNodeSchedulabilityRequest>,
6024        ) -> std::result::Result<
6025            tonic::Response<super::UpdateWorkerNodeSchedulabilityResponse>,
6026            tonic::Status,
6027        >;
6028        async fn list_all_nodes(
6029            &self,
6030            request: tonic::Request<super::ListAllNodesRequest>,
6031        ) -> std::result::Result<
6032            tonic::Response<super::ListAllNodesResponse>,
6033            tonic::Status,
6034        >;
6035        async fn get_cluster_recovery_status(
6036            &self,
6037            request: tonic::Request<super::GetClusterRecoveryStatusRequest>,
6038        ) -> std::result::Result<
6039            tonic::Response<super::GetClusterRecoveryStatusResponse>,
6040            tonic::Status,
6041        >;
6042        async fn get_meta_store_info(
6043            &self,
6044            request: tonic::Request<super::GetMetaStoreInfoRequest>,
6045        ) -> std::result::Result<
6046            tonic::Response<super::GetMetaStoreInfoResponse>,
6047            tonic::Status,
6048        >;
6049    }
6050    #[derive(Debug)]
6051    pub struct ClusterServiceServer<T> {
6052        inner: Arc<T>,
6053        accept_compression_encodings: EnabledCompressionEncodings,
6054        send_compression_encodings: EnabledCompressionEncodings,
6055        max_decoding_message_size: Option<usize>,
6056        max_encoding_message_size: Option<usize>,
6057    }
6058    impl<T> ClusterServiceServer<T> {
6059        pub fn new(inner: T) -> Self {
6060            Self::from_arc(Arc::new(inner))
6061        }
6062        pub fn from_arc(inner: Arc<T>) -> Self {
6063            Self {
6064                inner,
6065                accept_compression_encodings: Default::default(),
6066                send_compression_encodings: Default::default(),
6067                max_decoding_message_size: None,
6068                max_encoding_message_size: None,
6069            }
6070        }
6071        pub fn with_interceptor<F>(
6072            inner: T,
6073            interceptor: F,
6074        ) -> InterceptedService<Self, F>
6075        where
6076            F: tonic::service::Interceptor,
6077        {
6078            InterceptedService::new(Self::new(inner), interceptor)
6079        }
6080        /// Enable decompressing requests with the given encoding.
6081        #[must_use]
6082        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
6083            self.accept_compression_encodings.enable(encoding);
6084            self
6085        }
6086        /// Compress responses with the given encoding, if the client supports it.
6087        #[must_use]
6088        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
6089            self.send_compression_encodings.enable(encoding);
6090            self
6091        }
6092        /// Limits the maximum size of a decoded message.
6093        ///
6094        /// Default: `4MB`
6095        #[must_use]
6096        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
6097            self.max_decoding_message_size = Some(limit);
6098            self
6099        }
6100        /// Limits the maximum size of an encoded message.
6101        ///
6102        /// Default: `usize::MAX`
6103        #[must_use]
6104        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
6105            self.max_encoding_message_size = Some(limit);
6106            self
6107        }
6108    }
6109    impl<T, B> tonic::codegen::Service<http::Request<B>> for ClusterServiceServer<T>
6110    where
6111        T: ClusterService,
6112        B: Body + std::marker::Send + 'static,
6113        B::Error: Into<StdError> + std::marker::Send + 'static,
6114    {
6115        type Response = http::Response<tonic::body::BoxBody>;
6116        type Error = std::convert::Infallible;
6117        type Future = BoxFuture<Self::Response, Self::Error>;
6118        fn poll_ready(
6119            &mut self,
6120            _cx: &mut Context<'_>,
6121        ) -> Poll<std::result::Result<(), Self::Error>> {
6122            Poll::Ready(Ok(()))
6123        }
6124        fn call(&mut self, req: http::Request<B>) -> Self::Future {
6125            match req.uri().path() {
6126                "/meta.ClusterService/AddWorkerNode" => {
6127                    #[allow(non_camel_case_types)]
6128                    struct AddWorkerNodeSvc<T: ClusterService>(pub Arc<T>);
6129                    impl<
6130                        T: ClusterService,
6131                    > tonic::server::UnaryService<super::AddWorkerNodeRequest>
6132                    for AddWorkerNodeSvc<T> {
6133                        type Response = super::AddWorkerNodeResponse;
6134                        type Future = BoxFuture<
6135                            tonic::Response<Self::Response>,
6136                            tonic::Status,
6137                        >;
6138                        fn call(
6139                            &mut self,
6140                            request: tonic::Request<super::AddWorkerNodeRequest>,
6141                        ) -> Self::Future {
6142                            let inner = Arc::clone(&self.0);
6143                            let fut = async move {
6144                                <T as ClusterService>::add_worker_node(&inner, request)
6145                                    .await
6146                            };
6147                            Box::pin(fut)
6148                        }
6149                    }
6150                    let accept_compression_encodings = self.accept_compression_encodings;
6151                    let send_compression_encodings = self.send_compression_encodings;
6152                    let max_decoding_message_size = self.max_decoding_message_size;
6153                    let max_encoding_message_size = self.max_encoding_message_size;
6154                    let inner = self.inner.clone();
6155                    let fut = async move {
6156                        let method = AddWorkerNodeSvc(inner);
6157                        let codec = tonic::codec::ProstCodec::default();
6158                        let mut grpc = tonic::server::Grpc::new(codec)
6159                            .apply_compression_config(
6160                                accept_compression_encodings,
6161                                send_compression_encodings,
6162                            )
6163                            .apply_max_message_size_config(
6164                                max_decoding_message_size,
6165                                max_encoding_message_size,
6166                            );
6167                        let res = grpc.unary(method, req).await;
6168                        Ok(res)
6169                    };
6170                    Box::pin(fut)
6171                }
6172                "/meta.ClusterService/ActivateWorkerNode" => {
6173                    #[allow(non_camel_case_types)]
6174                    struct ActivateWorkerNodeSvc<T: ClusterService>(pub Arc<T>);
6175                    impl<
6176                        T: ClusterService,
6177                    > tonic::server::UnaryService<super::ActivateWorkerNodeRequest>
6178                    for ActivateWorkerNodeSvc<T> {
6179                        type Response = super::ActivateWorkerNodeResponse;
6180                        type Future = BoxFuture<
6181                            tonic::Response<Self::Response>,
6182                            tonic::Status,
6183                        >;
6184                        fn call(
6185                            &mut self,
6186                            request: tonic::Request<super::ActivateWorkerNodeRequest>,
6187                        ) -> Self::Future {
6188                            let inner = Arc::clone(&self.0);
6189                            let fut = async move {
6190                                <T as ClusterService>::activate_worker_node(&inner, request)
6191                                    .await
6192                            };
6193                            Box::pin(fut)
6194                        }
6195                    }
6196                    let accept_compression_encodings = self.accept_compression_encodings;
6197                    let send_compression_encodings = self.send_compression_encodings;
6198                    let max_decoding_message_size = self.max_decoding_message_size;
6199                    let max_encoding_message_size = self.max_encoding_message_size;
6200                    let inner = self.inner.clone();
6201                    let fut = async move {
6202                        let method = ActivateWorkerNodeSvc(inner);
6203                        let codec = tonic::codec::ProstCodec::default();
6204                        let mut grpc = tonic::server::Grpc::new(codec)
6205                            .apply_compression_config(
6206                                accept_compression_encodings,
6207                                send_compression_encodings,
6208                            )
6209                            .apply_max_message_size_config(
6210                                max_decoding_message_size,
6211                                max_encoding_message_size,
6212                            );
6213                        let res = grpc.unary(method, req).await;
6214                        Ok(res)
6215                    };
6216                    Box::pin(fut)
6217                }
6218                "/meta.ClusterService/DeleteWorkerNode" => {
6219                    #[allow(non_camel_case_types)]
6220                    struct DeleteWorkerNodeSvc<T: ClusterService>(pub Arc<T>);
6221                    impl<
6222                        T: ClusterService,
6223                    > tonic::server::UnaryService<super::DeleteWorkerNodeRequest>
6224                    for DeleteWorkerNodeSvc<T> {
6225                        type Response = super::DeleteWorkerNodeResponse;
6226                        type Future = BoxFuture<
6227                            tonic::Response<Self::Response>,
6228                            tonic::Status,
6229                        >;
6230                        fn call(
6231                            &mut self,
6232                            request: tonic::Request<super::DeleteWorkerNodeRequest>,
6233                        ) -> Self::Future {
6234                            let inner = Arc::clone(&self.0);
6235                            let fut = async move {
6236                                <T as ClusterService>::delete_worker_node(&inner, request)
6237                                    .await
6238                            };
6239                            Box::pin(fut)
6240                        }
6241                    }
6242                    let accept_compression_encodings = self.accept_compression_encodings;
6243                    let send_compression_encodings = self.send_compression_encodings;
6244                    let max_decoding_message_size = self.max_decoding_message_size;
6245                    let max_encoding_message_size = self.max_encoding_message_size;
6246                    let inner = self.inner.clone();
6247                    let fut = async move {
6248                        let method = DeleteWorkerNodeSvc(inner);
6249                        let codec = tonic::codec::ProstCodec::default();
6250                        let mut grpc = tonic::server::Grpc::new(codec)
6251                            .apply_compression_config(
6252                                accept_compression_encodings,
6253                                send_compression_encodings,
6254                            )
6255                            .apply_max_message_size_config(
6256                                max_decoding_message_size,
6257                                max_encoding_message_size,
6258                            );
6259                        let res = grpc.unary(method, req).await;
6260                        Ok(res)
6261                    };
6262                    Box::pin(fut)
6263                }
6264                "/meta.ClusterService/UpdateWorkerNodeSchedulability" => {
6265                    #[allow(non_camel_case_types)]
6266                    struct UpdateWorkerNodeSchedulabilitySvc<T: ClusterService>(
6267                        pub Arc<T>,
6268                    );
6269                    impl<
6270                        T: ClusterService,
6271                    > tonic::server::UnaryService<
6272                        super::UpdateWorkerNodeSchedulabilityRequest,
6273                    > for UpdateWorkerNodeSchedulabilitySvc<T> {
6274                        type Response = super::UpdateWorkerNodeSchedulabilityResponse;
6275                        type Future = BoxFuture<
6276                            tonic::Response<Self::Response>,
6277                            tonic::Status,
6278                        >;
6279                        fn call(
6280                            &mut self,
6281                            request: tonic::Request<
6282                                super::UpdateWorkerNodeSchedulabilityRequest,
6283                            >,
6284                        ) -> Self::Future {
6285                            let inner = Arc::clone(&self.0);
6286                            let fut = async move {
6287                                <T as ClusterService>::update_worker_node_schedulability(
6288                                        &inner,
6289                                        request,
6290                                    )
6291                                    .await
6292                            };
6293                            Box::pin(fut)
6294                        }
6295                    }
6296                    let accept_compression_encodings = self.accept_compression_encodings;
6297                    let send_compression_encodings = self.send_compression_encodings;
6298                    let max_decoding_message_size = self.max_decoding_message_size;
6299                    let max_encoding_message_size = self.max_encoding_message_size;
6300                    let inner = self.inner.clone();
6301                    let fut = async move {
6302                        let method = UpdateWorkerNodeSchedulabilitySvc(inner);
6303                        let codec = tonic::codec::ProstCodec::default();
6304                        let mut grpc = tonic::server::Grpc::new(codec)
6305                            .apply_compression_config(
6306                                accept_compression_encodings,
6307                                send_compression_encodings,
6308                            )
6309                            .apply_max_message_size_config(
6310                                max_decoding_message_size,
6311                                max_encoding_message_size,
6312                            );
6313                        let res = grpc.unary(method, req).await;
6314                        Ok(res)
6315                    };
6316                    Box::pin(fut)
6317                }
6318                "/meta.ClusterService/ListAllNodes" => {
6319                    #[allow(non_camel_case_types)]
6320                    struct ListAllNodesSvc<T: ClusterService>(pub Arc<T>);
6321                    impl<
6322                        T: ClusterService,
6323                    > tonic::server::UnaryService<super::ListAllNodesRequest>
6324                    for ListAllNodesSvc<T> {
6325                        type Response = super::ListAllNodesResponse;
6326                        type Future = BoxFuture<
6327                            tonic::Response<Self::Response>,
6328                            tonic::Status,
6329                        >;
6330                        fn call(
6331                            &mut self,
6332                            request: tonic::Request<super::ListAllNodesRequest>,
6333                        ) -> Self::Future {
6334                            let inner = Arc::clone(&self.0);
6335                            let fut = async move {
6336                                <T as ClusterService>::list_all_nodes(&inner, request).await
6337                            };
6338                            Box::pin(fut)
6339                        }
6340                    }
6341                    let accept_compression_encodings = self.accept_compression_encodings;
6342                    let send_compression_encodings = self.send_compression_encodings;
6343                    let max_decoding_message_size = self.max_decoding_message_size;
6344                    let max_encoding_message_size = self.max_encoding_message_size;
6345                    let inner = self.inner.clone();
6346                    let fut = async move {
6347                        let method = ListAllNodesSvc(inner);
6348                        let codec = tonic::codec::ProstCodec::default();
6349                        let mut grpc = tonic::server::Grpc::new(codec)
6350                            .apply_compression_config(
6351                                accept_compression_encodings,
6352                                send_compression_encodings,
6353                            )
6354                            .apply_max_message_size_config(
6355                                max_decoding_message_size,
6356                                max_encoding_message_size,
6357                            );
6358                        let res = grpc.unary(method, req).await;
6359                        Ok(res)
6360                    };
6361                    Box::pin(fut)
6362                }
6363                "/meta.ClusterService/GetClusterRecoveryStatus" => {
6364                    #[allow(non_camel_case_types)]
6365                    struct GetClusterRecoveryStatusSvc<T: ClusterService>(pub Arc<T>);
6366                    impl<
6367                        T: ClusterService,
6368                    > tonic::server::UnaryService<super::GetClusterRecoveryStatusRequest>
6369                    for GetClusterRecoveryStatusSvc<T> {
6370                        type Response = super::GetClusterRecoveryStatusResponse;
6371                        type Future = BoxFuture<
6372                            tonic::Response<Self::Response>,
6373                            tonic::Status,
6374                        >;
6375                        fn call(
6376                            &mut self,
6377                            request: tonic::Request<
6378                                super::GetClusterRecoveryStatusRequest,
6379                            >,
6380                        ) -> Self::Future {
6381                            let inner = Arc::clone(&self.0);
6382                            let fut = async move {
6383                                <T as ClusterService>::get_cluster_recovery_status(
6384                                        &inner,
6385                                        request,
6386                                    )
6387                                    .await
6388                            };
6389                            Box::pin(fut)
6390                        }
6391                    }
6392                    let accept_compression_encodings = self.accept_compression_encodings;
6393                    let send_compression_encodings = self.send_compression_encodings;
6394                    let max_decoding_message_size = self.max_decoding_message_size;
6395                    let max_encoding_message_size = self.max_encoding_message_size;
6396                    let inner = self.inner.clone();
6397                    let fut = async move {
6398                        let method = GetClusterRecoveryStatusSvc(inner);
6399                        let codec = tonic::codec::ProstCodec::default();
6400                        let mut grpc = tonic::server::Grpc::new(codec)
6401                            .apply_compression_config(
6402                                accept_compression_encodings,
6403                                send_compression_encodings,
6404                            )
6405                            .apply_max_message_size_config(
6406                                max_decoding_message_size,
6407                                max_encoding_message_size,
6408                            );
6409                        let res = grpc.unary(method, req).await;
6410                        Ok(res)
6411                    };
6412                    Box::pin(fut)
6413                }
6414                "/meta.ClusterService/GetMetaStoreInfo" => {
6415                    #[allow(non_camel_case_types)]
6416                    struct GetMetaStoreInfoSvc<T: ClusterService>(pub Arc<T>);
6417                    impl<
6418                        T: ClusterService,
6419                    > tonic::server::UnaryService<super::GetMetaStoreInfoRequest>
6420                    for GetMetaStoreInfoSvc<T> {
6421                        type Response = super::GetMetaStoreInfoResponse;
6422                        type Future = BoxFuture<
6423                            tonic::Response<Self::Response>,
6424                            tonic::Status,
6425                        >;
6426                        fn call(
6427                            &mut self,
6428                            request: tonic::Request<super::GetMetaStoreInfoRequest>,
6429                        ) -> Self::Future {
6430                            let inner = Arc::clone(&self.0);
6431                            let fut = async move {
6432                                <T as ClusterService>::get_meta_store_info(&inner, request)
6433                                    .await
6434                            };
6435                            Box::pin(fut)
6436                        }
6437                    }
6438                    let accept_compression_encodings = self.accept_compression_encodings;
6439                    let send_compression_encodings = self.send_compression_encodings;
6440                    let max_decoding_message_size = self.max_decoding_message_size;
6441                    let max_encoding_message_size = self.max_encoding_message_size;
6442                    let inner = self.inner.clone();
6443                    let fut = async move {
6444                        let method = GetMetaStoreInfoSvc(inner);
6445                        let codec = tonic::codec::ProstCodec::default();
6446                        let mut grpc = tonic::server::Grpc::new(codec)
6447                            .apply_compression_config(
6448                                accept_compression_encodings,
6449                                send_compression_encodings,
6450                            )
6451                            .apply_max_message_size_config(
6452                                max_decoding_message_size,
6453                                max_encoding_message_size,
6454                            );
6455                        let res = grpc.unary(method, req).await;
6456                        Ok(res)
6457                    };
6458                    Box::pin(fut)
6459                }
6460                _ => {
6461                    Box::pin(async move {
6462                        let mut response = http::Response::new(empty_body());
6463                        let headers = response.headers_mut();
6464                        headers
6465                            .insert(
6466                                tonic::Status::GRPC_STATUS,
6467                                (tonic::Code::Unimplemented as i32).into(),
6468                            );
6469                        headers
6470                            .insert(
6471                                http::header::CONTENT_TYPE,
6472                                tonic::metadata::GRPC_CONTENT_TYPE,
6473                            );
6474                        Ok(response)
6475                    })
6476                }
6477            }
6478        }
6479    }
6480    impl<T> Clone for ClusterServiceServer<T> {
6481        fn clone(&self) -> Self {
6482            let inner = self.inner.clone();
6483            Self {
6484                inner,
6485                accept_compression_encodings: self.accept_compression_encodings,
6486                send_compression_encodings: self.send_compression_encodings,
6487                max_decoding_message_size: self.max_decoding_message_size,
6488                max_encoding_message_size: self.max_encoding_message_size,
6489            }
6490        }
6491    }
6492    /// Generated gRPC service name
6493    pub const SERVICE_NAME: &str = "meta.ClusterService";
6494    impl<T> tonic::server::NamedService for ClusterServiceServer<T> {
6495        const NAME: &'static str = SERVICE_NAME;
6496    }
6497}
6498/// Generated server implementations.
6499pub mod notification_service_server {
6500    #![allow(
6501        unused_variables,
6502        dead_code,
6503        missing_docs,
6504        clippy::wildcard_imports,
6505        clippy::let_unit_value,
6506    )]
6507    use tonic::codegen::*;
6508    /// Generated trait containing gRPC methods that should be implemented for use with NotificationServiceServer.
6509    #[async_trait]
6510    pub trait NotificationService: std::marker::Send + std::marker::Sync + 'static {
6511        /// Server streaming response type for the Subscribe method.
6512        type SubscribeStream: tonic::codegen::tokio_stream::Stream<
6513                Item = std::result::Result<super::SubscribeResponse, tonic::Status>,
6514            >
6515            + std::marker::Send
6516            + 'static;
6517        async fn subscribe(
6518            &self,
6519            request: tonic::Request<super::SubscribeRequest>,
6520        ) -> std::result::Result<tonic::Response<Self::SubscribeStream>, tonic::Status>;
6521    }
6522    #[derive(Debug)]
6523    pub struct NotificationServiceServer<T> {
6524        inner: Arc<T>,
6525        accept_compression_encodings: EnabledCompressionEncodings,
6526        send_compression_encodings: EnabledCompressionEncodings,
6527        max_decoding_message_size: Option<usize>,
6528        max_encoding_message_size: Option<usize>,
6529    }
6530    impl<T> NotificationServiceServer<T> {
6531        pub fn new(inner: T) -> Self {
6532            Self::from_arc(Arc::new(inner))
6533        }
6534        pub fn from_arc(inner: Arc<T>) -> Self {
6535            Self {
6536                inner,
6537                accept_compression_encodings: Default::default(),
6538                send_compression_encodings: Default::default(),
6539                max_decoding_message_size: None,
6540                max_encoding_message_size: None,
6541            }
6542        }
6543        pub fn with_interceptor<F>(
6544            inner: T,
6545            interceptor: F,
6546        ) -> InterceptedService<Self, F>
6547        where
6548            F: tonic::service::Interceptor,
6549        {
6550            InterceptedService::new(Self::new(inner), interceptor)
6551        }
6552        /// Enable decompressing requests with the given encoding.
6553        #[must_use]
6554        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
6555            self.accept_compression_encodings.enable(encoding);
6556            self
6557        }
6558        /// Compress responses with the given encoding, if the client supports it.
6559        #[must_use]
6560        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
6561            self.send_compression_encodings.enable(encoding);
6562            self
6563        }
6564        /// Limits the maximum size of a decoded message.
6565        ///
6566        /// Default: `4MB`
6567        #[must_use]
6568        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
6569            self.max_decoding_message_size = Some(limit);
6570            self
6571        }
6572        /// Limits the maximum size of an encoded message.
6573        ///
6574        /// Default: `usize::MAX`
6575        #[must_use]
6576        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
6577            self.max_encoding_message_size = Some(limit);
6578            self
6579        }
6580    }
6581    impl<T, B> tonic::codegen::Service<http::Request<B>> for NotificationServiceServer<T>
6582    where
6583        T: NotificationService,
6584        B: Body + std::marker::Send + 'static,
6585        B::Error: Into<StdError> + std::marker::Send + 'static,
6586    {
6587        type Response = http::Response<tonic::body::BoxBody>;
6588        type Error = std::convert::Infallible;
6589        type Future = BoxFuture<Self::Response, Self::Error>;
6590        fn poll_ready(
6591            &mut self,
6592            _cx: &mut Context<'_>,
6593        ) -> Poll<std::result::Result<(), Self::Error>> {
6594            Poll::Ready(Ok(()))
6595        }
6596        fn call(&mut self, req: http::Request<B>) -> Self::Future {
6597            match req.uri().path() {
6598                "/meta.NotificationService/Subscribe" => {
6599                    #[allow(non_camel_case_types)]
6600                    struct SubscribeSvc<T: NotificationService>(pub Arc<T>);
6601                    impl<
6602                        T: NotificationService,
6603                    > tonic::server::ServerStreamingService<super::SubscribeRequest>
6604                    for SubscribeSvc<T> {
6605                        type Response = super::SubscribeResponse;
6606                        type ResponseStream = T::SubscribeStream;
6607                        type Future = BoxFuture<
6608                            tonic::Response<Self::ResponseStream>,
6609                            tonic::Status,
6610                        >;
6611                        fn call(
6612                            &mut self,
6613                            request: tonic::Request<super::SubscribeRequest>,
6614                        ) -> Self::Future {
6615                            let inner = Arc::clone(&self.0);
6616                            let fut = async move {
6617                                <T as NotificationService>::subscribe(&inner, request).await
6618                            };
6619                            Box::pin(fut)
6620                        }
6621                    }
6622                    let accept_compression_encodings = self.accept_compression_encodings;
6623                    let send_compression_encodings = self.send_compression_encodings;
6624                    let max_decoding_message_size = self.max_decoding_message_size;
6625                    let max_encoding_message_size = self.max_encoding_message_size;
6626                    let inner = self.inner.clone();
6627                    let fut = async move {
6628                        let method = SubscribeSvc(inner);
6629                        let codec = tonic::codec::ProstCodec::default();
6630                        let mut grpc = tonic::server::Grpc::new(codec)
6631                            .apply_compression_config(
6632                                accept_compression_encodings,
6633                                send_compression_encodings,
6634                            )
6635                            .apply_max_message_size_config(
6636                                max_decoding_message_size,
6637                                max_encoding_message_size,
6638                            );
6639                        let res = grpc.server_streaming(method, req).await;
6640                        Ok(res)
6641                    };
6642                    Box::pin(fut)
6643                }
6644                _ => {
6645                    Box::pin(async move {
6646                        let mut response = http::Response::new(empty_body());
6647                        let headers = response.headers_mut();
6648                        headers
6649                            .insert(
6650                                tonic::Status::GRPC_STATUS,
6651                                (tonic::Code::Unimplemented as i32).into(),
6652                            );
6653                        headers
6654                            .insert(
6655                                http::header::CONTENT_TYPE,
6656                                tonic::metadata::GRPC_CONTENT_TYPE,
6657                            );
6658                        Ok(response)
6659                    })
6660                }
6661            }
6662        }
6663    }
6664    impl<T> Clone for NotificationServiceServer<T> {
6665        fn clone(&self) -> Self {
6666            let inner = self.inner.clone();
6667            Self {
6668                inner,
6669                accept_compression_encodings: self.accept_compression_encodings,
6670                send_compression_encodings: self.send_compression_encodings,
6671                max_decoding_message_size: self.max_decoding_message_size,
6672                max_encoding_message_size: self.max_encoding_message_size,
6673            }
6674        }
6675    }
6676    /// Generated gRPC service name
6677    pub const SERVICE_NAME: &str = "meta.NotificationService";
6678    impl<T> tonic::server::NamedService for NotificationServiceServer<T> {
6679        const NAME: &'static str = SERVICE_NAME;
6680    }
6681}
6682/// Generated server implementations.
6683pub mod scale_service_server {
6684    #![allow(
6685        unused_variables,
6686        dead_code,
6687        missing_docs,
6688        clippy::wildcard_imports,
6689        clippy::let_unit_value,
6690    )]
6691    use tonic::codegen::*;
6692    /// Generated trait containing gRPC methods that should be implemented for use with ScaleServiceServer.
6693    #[async_trait]
6694    pub trait ScaleService: std::marker::Send + std::marker::Sync + 'static {
6695        async fn get_cluster_info(
6696            &self,
6697            request: tonic::Request<super::GetClusterInfoRequest>,
6698        ) -> std::result::Result<
6699            tonic::Response<super::GetClusterInfoResponse>,
6700            tonic::Status,
6701        >;
6702        async fn reschedule(
6703            &self,
6704            request: tonic::Request<super::RescheduleRequest>,
6705        ) -> std::result::Result<
6706            tonic::Response<super::RescheduleResponse>,
6707            tonic::Status,
6708        >;
6709        async fn update_streaming_job_node_labels(
6710            &self,
6711            request: tonic::Request<super::UpdateStreamingJobNodeLabelsRequest>,
6712        ) -> std::result::Result<
6713            tonic::Response<super::UpdateStreamingJobNodeLabelsResponse>,
6714            tonic::Status,
6715        >;
6716        async fn get_serverless_streaming_jobs_status(
6717            &self,
6718            request: tonic::Request<super::GetServerlessStreamingJobsStatusRequest>,
6719        ) -> std::result::Result<
6720            tonic::Response<super::GetServerlessStreamingJobsStatusResponse>,
6721            tonic::Status,
6722        >;
6723    }
6724    /// This is used by `risectl`
6725    #[derive(Debug)]
6726    pub struct ScaleServiceServer<T> {
6727        inner: Arc<T>,
6728        accept_compression_encodings: EnabledCompressionEncodings,
6729        send_compression_encodings: EnabledCompressionEncodings,
6730        max_decoding_message_size: Option<usize>,
6731        max_encoding_message_size: Option<usize>,
6732    }
6733    impl<T> ScaleServiceServer<T> {
6734        pub fn new(inner: T) -> Self {
6735            Self::from_arc(Arc::new(inner))
6736        }
6737        pub fn from_arc(inner: Arc<T>) -> Self {
6738            Self {
6739                inner,
6740                accept_compression_encodings: Default::default(),
6741                send_compression_encodings: Default::default(),
6742                max_decoding_message_size: None,
6743                max_encoding_message_size: None,
6744            }
6745        }
6746        pub fn with_interceptor<F>(
6747            inner: T,
6748            interceptor: F,
6749        ) -> InterceptedService<Self, F>
6750        where
6751            F: tonic::service::Interceptor,
6752        {
6753            InterceptedService::new(Self::new(inner), interceptor)
6754        }
6755        /// Enable decompressing requests with the given encoding.
6756        #[must_use]
6757        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
6758            self.accept_compression_encodings.enable(encoding);
6759            self
6760        }
6761        /// Compress responses with the given encoding, if the client supports it.
6762        #[must_use]
6763        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
6764            self.send_compression_encodings.enable(encoding);
6765            self
6766        }
6767        /// Limits the maximum size of a decoded message.
6768        ///
6769        /// Default: `4MB`
6770        #[must_use]
6771        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
6772            self.max_decoding_message_size = Some(limit);
6773            self
6774        }
6775        /// Limits the maximum size of an encoded message.
6776        ///
6777        /// Default: `usize::MAX`
6778        #[must_use]
6779        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
6780            self.max_encoding_message_size = Some(limit);
6781            self
6782        }
6783    }
6784    impl<T, B> tonic::codegen::Service<http::Request<B>> for ScaleServiceServer<T>
6785    where
6786        T: ScaleService,
6787        B: Body + std::marker::Send + 'static,
6788        B::Error: Into<StdError> + std::marker::Send + 'static,
6789    {
6790        type Response = http::Response<tonic::body::BoxBody>;
6791        type Error = std::convert::Infallible;
6792        type Future = BoxFuture<Self::Response, Self::Error>;
6793        fn poll_ready(
6794            &mut self,
6795            _cx: &mut Context<'_>,
6796        ) -> Poll<std::result::Result<(), Self::Error>> {
6797            Poll::Ready(Ok(()))
6798        }
6799        fn call(&mut self, req: http::Request<B>) -> Self::Future {
6800            match req.uri().path() {
6801                "/meta.ScaleService/GetClusterInfo" => {
6802                    #[allow(non_camel_case_types)]
6803                    struct GetClusterInfoSvc<T: ScaleService>(pub Arc<T>);
6804                    impl<
6805                        T: ScaleService,
6806                    > tonic::server::UnaryService<super::GetClusterInfoRequest>
6807                    for GetClusterInfoSvc<T> {
6808                        type Response = super::GetClusterInfoResponse;
6809                        type Future = BoxFuture<
6810                            tonic::Response<Self::Response>,
6811                            tonic::Status,
6812                        >;
6813                        fn call(
6814                            &mut self,
6815                            request: tonic::Request<super::GetClusterInfoRequest>,
6816                        ) -> Self::Future {
6817                            let inner = Arc::clone(&self.0);
6818                            let fut = async move {
6819                                <T as ScaleService>::get_cluster_info(&inner, request).await
6820                            };
6821                            Box::pin(fut)
6822                        }
6823                    }
6824                    let accept_compression_encodings = self.accept_compression_encodings;
6825                    let send_compression_encodings = self.send_compression_encodings;
6826                    let max_decoding_message_size = self.max_decoding_message_size;
6827                    let max_encoding_message_size = self.max_encoding_message_size;
6828                    let inner = self.inner.clone();
6829                    let fut = async move {
6830                        let method = GetClusterInfoSvc(inner);
6831                        let codec = tonic::codec::ProstCodec::default();
6832                        let mut grpc = tonic::server::Grpc::new(codec)
6833                            .apply_compression_config(
6834                                accept_compression_encodings,
6835                                send_compression_encodings,
6836                            )
6837                            .apply_max_message_size_config(
6838                                max_decoding_message_size,
6839                                max_encoding_message_size,
6840                            );
6841                        let res = grpc.unary(method, req).await;
6842                        Ok(res)
6843                    };
6844                    Box::pin(fut)
6845                }
6846                "/meta.ScaleService/Reschedule" => {
6847                    #[allow(non_camel_case_types)]
6848                    struct RescheduleSvc<T: ScaleService>(pub Arc<T>);
6849                    impl<
6850                        T: ScaleService,
6851                    > tonic::server::UnaryService<super::RescheduleRequest>
6852                    for RescheduleSvc<T> {
6853                        type Response = super::RescheduleResponse;
6854                        type Future = BoxFuture<
6855                            tonic::Response<Self::Response>,
6856                            tonic::Status,
6857                        >;
6858                        fn call(
6859                            &mut self,
6860                            request: tonic::Request<super::RescheduleRequest>,
6861                        ) -> Self::Future {
6862                            let inner = Arc::clone(&self.0);
6863                            let fut = async move {
6864                                <T as ScaleService>::reschedule(&inner, request).await
6865                            };
6866                            Box::pin(fut)
6867                        }
6868                    }
6869                    let accept_compression_encodings = self.accept_compression_encodings;
6870                    let send_compression_encodings = self.send_compression_encodings;
6871                    let max_decoding_message_size = self.max_decoding_message_size;
6872                    let max_encoding_message_size = self.max_encoding_message_size;
6873                    let inner = self.inner.clone();
6874                    let fut = async move {
6875                        let method = RescheduleSvc(inner);
6876                        let codec = tonic::codec::ProstCodec::default();
6877                        let mut grpc = tonic::server::Grpc::new(codec)
6878                            .apply_compression_config(
6879                                accept_compression_encodings,
6880                                send_compression_encodings,
6881                            )
6882                            .apply_max_message_size_config(
6883                                max_decoding_message_size,
6884                                max_encoding_message_size,
6885                            );
6886                        let res = grpc.unary(method, req).await;
6887                        Ok(res)
6888                    };
6889                    Box::pin(fut)
6890                }
6891                "/meta.ScaleService/UpdateStreamingJobNodeLabels" => {
6892                    #[allow(non_camel_case_types)]
6893                    struct UpdateStreamingJobNodeLabelsSvc<T: ScaleService>(pub Arc<T>);
6894                    impl<
6895                        T: ScaleService,
6896                    > tonic::server::UnaryService<
6897                        super::UpdateStreamingJobNodeLabelsRequest,
6898                    > for UpdateStreamingJobNodeLabelsSvc<T> {
6899                        type Response = super::UpdateStreamingJobNodeLabelsResponse;
6900                        type Future = BoxFuture<
6901                            tonic::Response<Self::Response>,
6902                            tonic::Status,
6903                        >;
6904                        fn call(
6905                            &mut self,
6906                            request: tonic::Request<
6907                                super::UpdateStreamingJobNodeLabelsRequest,
6908                            >,
6909                        ) -> Self::Future {
6910                            let inner = Arc::clone(&self.0);
6911                            let fut = async move {
6912                                <T as ScaleService>::update_streaming_job_node_labels(
6913                                        &inner,
6914                                        request,
6915                                    )
6916                                    .await
6917                            };
6918                            Box::pin(fut)
6919                        }
6920                    }
6921                    let accept_compression_encodings = self.accept_compression_encodings;
6922                    let send_compression_encodings = self.send_compression_encodings;
6923                    let max_decoding_message_size = self.max_decoding_message_size;
6924                    let max_encoding_message_size = self.max_encoding_message_size;
6925                    let inner = self.inner.clone();
6926                    let fut = async move {
6927                        let method = UpdateStreamingJobNodeLabelsSvc(inner);
6928                        let codec = tonic::codec::ProstCodec::default();
6929                        let mut grpc = tonic::server::Grpc::new(codec)
6930                            .apply_compression_config(
6931                                accept_compression_encodings,
6932                                send_compression_encodings,
6933                            )
6934                            .apply_max_message_size_config(
6935                                max_decoding_message_size,
6936                                max_encoding_message_size,
6937                            );
6938                        let res = grpc.unary(method, req).await;
6939                        Ok(res)
6940                    };
6941                    Box::pin(fut)
6942                }
6943                "/meta.ScaleService/GetServerlessStreamingJobsStatus" => {
6944                    #[allow(non_camel_case_types)]
6945                    struct GetServerlessStreamingJobsStatusSvc<T: ScaleService>(
6946                        pub Arc<T>,
6947                    );
6948                    impl<
6949                        T: ScaleService,
6950                    > tonic::server::UnaryService<
6951                        super::GetServerlessStreamingJobsStatusRequest,
6952                    > for GetServerlessStreamingJobsStatusSvc<T> {
6953                        type Response = super::GetServerlessStreamingJobsStatusResponse;
6954                        type Future = BoxFuture<
6955                            tonic::Response<Self::Response>,
6956                            tonic::Status,
6957                        >;
6958                        fn call(
6959                            &mut self,
6960                            request: tonic::Request<
6961                                super::GetServerlessStreamingJobsStatusRequest,
6962                            >,
6963                        ) -> Self::Future {
6964                            let inner = Arc::clone(&self.0);
6965                            let fut = async move {
6966                                <T as ScaleService>::get_serverless_streaming_jobs_status(
6967                                        &inner,
6968                                        request,
6969                                    )
6970                                    .await
6971                            };
6972                            Box::pin(fut)
6973                        }
6974                    }
6975                    let accept_compression_encodings = self.accept_compression_encodings;
6976                    let send_compression_encodings = self.send_compression_encodings;
6977                    let max_decoding_message_size = self.max_decoding_message_size;
6978                    let max_encoding_message_size = self.max_encoding_message_size;
6979                    let inner = self.inner.clone();
6980                    let fut = async move {
6981                        let method = GetServerlessStreamingJobsStatusSvc(inner);
6982                        let codec = tonic::codec::ProstCodec::default();
6983                        let mut grpc = tonic::server::Grpc::new(codec)
6984                            .apply_compression_config(
6985                                accept_compression_encodings,
6986                                send_compression_encodings,
6987                            )
6988                            .apply_max_message_size_config(
6989                                max_decoding_message_size,
6990                                max_encoding_message_size,
6991                            );
6992                        let res = grpc.unary(method, req).await;
6993                        Ok(res)
6994                    };
6995                    Box::pin(fut)
6996                }
6997                _ => {
6998                    Box::pin(async move {
6999                        let mut response = http::Response::new(empty_body());
7000                        let headers = response.headers_mut();
7001                        headers
7002                            .insert(
7003                                tonic::Status::GRPC_STATUS,
7004                                (tonic::Code::Unimplemented as i32).into(),
7005                            );
7006                        headers
7007                            .insert(
7008                                http::header::CONTENT_TYPE,
7009                                tonic::metadata::GRPC_CONTENT_TYPE,
7010                            );
7011                        Ok(response)
7012                    })
7013                }
7014            }
7015        }
7016    }
7017    impl<T> Clone for ScaleServiceServer<T> {
7018        fn clone(&self) -> Self {
7019            let inner = self.inner.clone();
7020            Self {
7021                inner,
7022                accept_compression_encodings: self.accept_compression_encodings,
7023                send_compression_encodings: self.send_compression_encodings,
7024                max_decoding_message_size: self.max_decoding_message_size,
7025                max_encoding_message_size: self.max_encoding_message_size,
7026            }
7027        }
7028    }
7029    /// Generated gRPC service name
7030    pub const SERVICE_NAME: &str = "meta.ScaleService";
7031    impl<T> tonic::server::NamedService for ScaleServiceServer<T> {
7032        const NAME: &'static str = SERVICE_NAME;
7033    }
7034}
7035/// Generated server implementations.
7036pub mod meta_member_service_server {
7037    #![allow(
7038        unused_variables,
7039        dead_code,
7040        missing_docs,
7041        clippy::wildcard_imports,
7042        clippy::let_unit_value,
7043    )]
7044    use tonic::codegen::*;
7045    /// Generated trait containing gRPC methods that should be implemented for use with MetaMemberServiceServer.
7046    #[async_trait]
7047    pub trait MetaMemberService: std::marker::Send + std::marker::Sync + 'static {
7048        async fn members(
7049            &self,
7050            request: tonic::Request<super::MembersRequest>,
7051        ) -> std::result::Result<tonic::Response<super::MembersResponse>, tonic::Status>;
7052    }
7053    #[derive(Debug)]
7054    pub struct MetaMemberServiceServer<T> {
7055        inner: Arc<T>,
7056        accept_compression_encodings: EnabledCompressionEncodings,
7057        send_compression_encodings: EnabledCompressionEncodings,
7058        max_decoding_message_size: Option<usize>,
7059        max_encoding_message_size: Option<usize>,
7060    }
7061    impl<T> MetaMemberServiceServer<T> {
7062        pub fn new(inner: T) -> Self {
7063            Self::from_arc(Arc::new(inner))
7064        }
7065        pub fn from_arc(inner: Arc<T>) -> Self {
7066            Self {
7067                inner,
7068                accept_compression_encodings: Default::default(),
7069                send_compression_encodings: Default::default(),
7070                max_decoding_message_size: None,
7071                max_encoding_message_size: None,
7072            }
7073        }
7074        pub fn with_interceptor<F>(
7075            inner: T,
7076            interceptor: F,
7077        ) -> InterceptedService<Self, F>
7078        where
7079            F: tonic::service::Interceptor,
7080        {
7081            InterceptedService::new(Self::new(inner), interceptor)
7082        }
7083        /// Enable decompressing requests with the given encoding.
7084        #[must_use]
7085        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
7086            self.accept_compression_encodings.enable(encoding);
7087            self
7088        }
7089        /// Compress responses with the given encoding, if the client supports it.
7090        #[must_use]
7091        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
7092            self.send_compression_encodings.enable(encoding);
7093            self
7094        }
7095        /// Limits the maximum size of a decoded message.
7096        ///
7097        /// Default: `4MB`
7098        #[must_use]
7099        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
7100            self.max_decoding_message_size = Some(limit);
7101            self
7102        }
7103        /// Limits the maximum size of an encoded message.
7104        ///
7105        /// Default: `usize::MAX`
7106        #[must_use]
7107        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
7108            self.max_encoding_message_size = Some(limit);
7109            self
7110        }
7111    }
7112    impl<T, B> tonic::codegen::Service<http::Request<B>> for MetaMemberServiceServer<T>
7113    where
7114        T: MetaMemberService,
7115        B: Body + std::marker::Send + 'static,
7116        B::Error: Into<StdError> + std::marker::Send + 'static,
7117    {
7118        type Response = http::Response<tonic::body::BoxBody>;
7119        type Error = std::convert::Infallible;
7120        type Future = BoxFuture<Self::Response, Self::Error>;
7121        fn poll_ready(
7122            &mut self,
7123            _cx: &mut Context<'_>,
7124        ) -> Poll<std::result::Result<(), Self::Error>> {
7125            Poll::Ready(Ok(()))
7126        }
7127        fn call(&mut self, req: http::Request<B>) -> Self::Future {
7128            match req.uri().path() {
7129                "/meta.MetaMemberService/Members" => {
7130                    #[allow(non_camel_case_types)]
7131                    struct MembersSvc<T: MetaMemberService>(pub Arc<T>);
7132                    impl<
7133                        T: MetaMemberService,
7134                    > tonic::server::UnaryService<super::MembersRequest>
7135                    for MembersSvc<T> {
7136                        type Response = super::MembersResponse;
7137                        type Future = BoxFuture<
7138                            tonic::Response<Self::Response>,
7139                            tonic::Status,
7140                        >;
7141                        fn call(
7142                            &mut self,
7143                            request: tonic::Request<super::MembersRequest>,
7144                        ) -> Self::Future {
7145                            let inner = Arc::clone(&self.0);
7146                            let fut = async move {
7147                                <T as MetaMemberService>::members(&inner, request).await
7148                            };
7149                            Box::pin(fut)
7150                        }
7151                    }
7152                    let accept_compression_encodings = self.accept_compression_encodings;
7153                    let send_compression_encodings = self.send_compression_encodings;
7154                    let max_decoding_message_size = self.max_decoding_message_size;
7155                    let max_encoding_message_size = self.max_encoding_message_size;
7156                    let inner = self.inner.clone();
7157                    let fut = async move {
7158                        let method = MembersSvc(inner);
7159                        let codec = tonic::codec::ProstCodec::default();
7160                        let mut grpc = tonic::server::Grpc::new(codec)
7161                            .apply_compression_config(
7162                                accept_compression_encodings,
7163                                send_compression_encodings,
7164                            )
7165                            .apply_max_message_size_config(
7166                                max_decoding_message_size,
7167                                max_encoding_message_size,
7168                            );
7169                        let res = grpc.unary(method, req).await;
7170                        Ok(res)
7171                    };
7172                    Box::pin(fut)
7173                }
7174                _ => {
7175                    Box::pin(async move {
7176                        let mut response = http::Response::new(empty_body());
7177                        let headers = response.headers_mut();
7178                        headers
7179                            .insert(
7180                                tonic::Status::GRPC_STATUS,
7181                                (tonic::Code::Unimplemented as i32).into(),
7182                            );
7183                        headers
7184                            .insert(
7185                                http::header::CONTENT_TYPE,
7186                                tonic::metadata::GRPC_CONTENT_TYPE,
7187                            );
7188                        Ok(response)
7189                    })
7190                }
7191            }
7192        }
7193    }
7194    impl<T> Clone for MetaMemberServiceServer<T> {
7195        fn clone(&self) -> Self {
7196            let inner = self.inner.clone();
7197            Self {
7198                inner,
7199                accept_compression_encodings: self.accept_compression_encodings,
7200                send_compression_encodings: self.send_compression_encodings,
7201                max_decoding_message_size: self.max_decoding_message_size,
7202                max_encoding_message_size: self.max_encoding_message_size,
7203            }
7204        }
7205    }
7206    /// Generated gRPC service name
7207    pub const SERVICE_NAME: &str = "meta.MetaMemberService";
7208    impl<T> tonic::server::NamedService for MetaMemberServiceServer<T> {
7209        const NAME: &'static str = SERVICE_NAME;
7210    }
7211}
7212/// Generated server implementations.
7213pub mod system_params_service_server {
7214    #![allow(
7215        unused_variables,
7216        dead_code,
7217        missing_docs,
7218        clippy::wildcard_imports,
7219        clippy::let_unit_value,
7220    )]
7221    use tonic::codegen::*;
7222    /// Generated trait containing gRPC methods that should be implemented for use with SystemParamsServiceServer.
7223    #[async_trait]
7224    pub trait SystemParamsService: std::marker::Send + std::marker::Sync + 'static {
7225        async fn get_system_params(
7226            &self,
7227            request: tonic::Request<super::GetSystemParamsRequest>,
7228        ) -> std::result::Result<
7229            tonic::Response<super::GetSystemParamsResponse>,
7230            tonic::Status,
7231        >;
7232        async fn set_system_param(
7233            &self,
7234            request: tonic::Request<super::SetSystemParamRequest>,
7235        ) -> std::result::Result<
7236            tonic::Response<super::SetSystemParamResponse>,
7237            tonic::Status,
7238        >;
7239    }
7240    #[derive(Debug)]
7241    pub struct SystemParamsServiceServer<T> {
7242        inner: Arc<T>,
7243        accept_compression_encodings: EnabledCompressionEncodings,
7244        send_compression_encodings: EnabledCompressionEncodings,
7245        max_decoding_message_size: Option<usize>,
7246        max_encoding_message_size: Option<usize>,
7247    }
7248    impl<T> SystemParamsServiceServer<T> {
7249        pub fn new(inner: T) -> Self {
7250            Self::from_arc(Arc::new(inner))
7251        }
7252        pub fn from_arc(inner: Arc<T>) -> Self {
7253            Self {
7254                inner,
7255                accept_compression_encodings: Default::default(),
7256                send_compression_encodings: Default::default(),
7257                max_decoding_message_size: None,
7258                max_encoding_message_size: None,
7259            }
7260        }
7261        pub fn with_interceptor<F>(
7262            inner: T,
7263            interceptor: F,
7264        ) -> InterceptedService<Self, F>
7265        where
7266            F: tonic::service::Interceptor,
7267        {
7268            InterceptedService::new(Self::new(inner), interceptor)
7269        }
7270        /// Enable decompressing requests with the given encoding.
7271        #[must_use]
7272        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
7273            self.accept_compression_encodings.enable(encoding);
7274            self
7275        }
7276        /// Compress responses with the given encoding, if the client supports it.
7277        #[must_use]
7278        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
7279            self.send_compression_encodings.enable(encoding);
7280            self
7281        }
7282        /// Limits the maximum size of a decoded message.
7283        ///
7284        /// Default: `4MB`
7285        #[must_use]
7286        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
7287            self.max_decoding_message_size = Some(limit);
7288            self
7289        }
7290        /// Limits the maximum size of an encoded message.
7291        ///
7292        /// Default: `usize::MAX`
7293        #[must_use]
7294        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
7295            self.max_encoding_message_size = Some(limit);
7296            self
7297        }
7298    }
7299    impl<T, B> tonic::codegen::Service<http::Request<B>> for SystemParamsServiceServer<T>
7300    where
7301        T: SystemParamsService,
7302        B: Body + std::marker::Send + 'static,
7303        B::Error: Into<StdError> + std::marker::Send + 'static,
7304    {
7305        type Response = http::Response<tonic::body::BoxBody>;
7306        type Error = std::convert::Infallible;
7307        type Future = BoxFuture<Self::Response, Self::Error>;
7308        fn poll_ready(
7309            &mut self,
7310            _cx: &mut Context<'_>,
7311        ) -> Poll<std::result::Result<(), Self::Error>> {
7312            Poll::Ready(Ok(()))
7313        }
7314        fn call(&mut self, req: http::Request<B>) -> Self::Future {
7315            match req.uri().path() {
7316                "/meta.SystemParamsService/GetSystemParams" => {
7317                    #[allow(non_camel_case_types)]
7318                    struct GetSystemParamsSvc<T: SystemParamsService>(pub Arc<T>);
7319                    impl<
7320                        T: SystemParamsService,
7321                    > tonic::server::UnaryService<super::GetSystemParamsRequest>
7322                    for GetSystemParamsSvc<T> {
7323                        type Response = super::GetSystemParamsResponse;
7324                        type Future = BoxFuture<
7325                            tonic::Response<Self::Response>,
7326                            tonic::Status,
7327                        >;
7328                        fn call(
7329                            &mut self,
7330                            request: tonic::Request<super::GetSystemParamsRequest>,
7331                        ) -> Self::Future {
7332                            let inner = Arc::clone(&self.0);
7333                            let fut = async move {
7334                                <T as SystemParamsService>::get_system_params(
7335                                        &inner,
7336                                        request,
7337                                    )
7338                                    .await
7339                            };
7340                            Box::pin(fut)
7341                        }
7342                    }
7343                    let accept_compression_encodings = self.accept_compression_encodings;
7344                    let send_compression_encodings = self.send_compression_encodings;
7345                    let max_decoding_message_size = self.max_decoding_message_size;
7346                    let max_encoding_message_size = self.max_encoding_message_size;
7347                    let inner = self.inner.clone();
7348                    let fut = async move {
7349                        let method = GetSystemParamsSvc(inner);
7350                        let codec = tonic::codec::ProstCodec::default();
7351                        let mut grpc = tonic::server::Grpc::new(codec)
7352                            .apply_compression_config(
7353                                accept_compression_encodings,
7354                                send_compression_encodings,
7355                            )
7356                            .apply_max_message_size_config(
7357                                max_decoding_message_size,
7358                                max_encoding_message_size,
7359                            );
7360                        let res = grpc.unary(method, req).await;
7361                        Ok(res)
7362                    };
7363                    Box::pin(fut)
7364                }
7365                "/meta.SystemParamsService/SetSystemParam" => {
7366                    #[allow(non_camel_case_types)]
7367                    struct SetSystemParamSvc<T: SystemParamsService>(pub Arc<T>);
7368                    impl<
7369                        T: SystemParamsService,
7370                    > tonic::server::UnaryService<super::SetSystemParamRequest>
7371                    for SetSystemParamSvc<T> {
7372                        type Response = super::SetSystemParamResponse;
7373                        type Future = BoxFuture<
7374                            tonic::Response<Self::Response>,
7375                            tonic::Status,
7376                        >;
7377                        fn call(
7378                            &mut self,
7379                            request: tonic::Request<super::SetSystemParamRequest>,
7380                        ) -> Self::Future {
7381                            let inner = Arc::clone(&self.0);
7382                            let fut = async move {
7383                                <T as SystemParamsService>::set_system_param(
7384                                        &inner,
7385                                        request,
7386                                    )
7387                                    .await
7388                            };
7389                            Box::pin(fut)
7390                        }
7391                    }
7392                    let accept_compression_encodings = self.accept_compression_encodings;
7393                    let send_compression_encodings = self.send_compression_encodings;
7394                    let max_decoding_message_size = self.max_decoding_message_size;
7395                    let max_encoding_message_size = self.max_encoding_message_size;
7396                    let inner = self.inner.clone();
7397                    let fut = async move {
7398                        let method = SetSystemParamSvc(inner);
7399                        let codec = tonic::codec::ProstCodec::default();
7400                        let mut grpc = tonic::server::Grpc::new(codec)
7401                            .apply_compression_config(
7402                                accept_compression_encodings,
7403                                send_compression_encodings,
7404                            )
7405                            .apply_max_message_size_config(
7406                                max_decoding_message_size,
7407                                max_encoding_message_size,
7408                            );
7409                        let res = grpc.unary(method, req).await;
7410                        Ok(res)
7411                    };
7412                    Box::pin(fut)
7413                }
7414                _ => {
7415                    Box::pin(async move {
7416                        let mut response = http::Response::new(empty_body());
7417                        let headers = response.headers_mut();
7418                        headers
7419                            .insert(
7420                                tonic::Status::GRPC_STATUS,
7421                                (tonic::Code::Unimplemented as i32).into(),
7422                            );
7423                        headers
7424                            .insert(
7425                                http::header::CONTENT_TYPE,
7426                                tonic::metadata::GRPC_CONTENT_TYPE,
7427                            );
7428                        Ok(response)
7429                    })
7430                }
7431            }
7432        }
7433    }
7434    impl<T> Clone for SystemParamsServiceServer<T> {
7435        fn clone(&self) -> Self {
7436            let inner = self.inner.clone();
7437            Self {
7438                inner,
7439                accept_compression_encodings: self.accept_compression_encodings,
7440                send_compression_encodings: self.send_compression_encodings,
7441                max_decoding_message_size: self.max_decoding_message_size,
7442                max_encoding_message_size: self.max_encoding_message_size,
7443            }
7444        }
7445    }
7446    /// Generated gRPC service name
7447    pub const SERVICE_NAME: &str = "meta.SystemParamsService";
7448    impl<T> tonic::server::NamedService for SystemParamsServiceServer<T> {
7449        const NAME: &'static str = SERVICE_NAME;
7450    }
7451}
7452/// Generated server implementations.
7453pub mod session_param_service_server {
7454    #![allow(
7455        unused_variables,
7456        dead_code,
7457        missing_docs,
7458        clippy::wildcard_imports,
7459        clippy::let_unit_value,
7460    )]
7461    use tonic::codegen::*;
7462    /// Generated trait containing gRPC methods that should be implemented for use with SessionParamServiceServer.
7463    #[async_trait]
7464    pub trait SessionParamService: std::marker::Send + std::marker::Sync + 'static {
7465        async fn get_session_params(
7466            &self,
7467            request: tonic::Request<super::GetSessionParamsRequest>,
7468        ) -> std::result::Result<
7469            tonic::Response<super::GetSessionParamsResponse>,
7470            tonic::Status,
7471        >;
7472        async fn set_session_param(
7473            &self,
7474            request: tonic::Request<super::SetSessionParamRequest>,
7475        ) -> std::result::Result<
7476            tonic::Response<super::SetSessionParamResponse>,
7477            tonic::Status,
7478        >;
7479    }
7480    /// Used for alter system wide default parameters
7481    #[derive(Debug)]
7482    pub struct SessionParamServiceServer<T> {
7483        inner: Arc<T>,
7484        accept_compression_encodings: EnabledCompressionEncodings,
7485        send_compression_encodings: EnabledCompressionEncodings,
7486        max_decoding_message_size: Option<usize>,
7487        max_encoding_message_size: Option<usize>,
7488    }
7489    impl<T> SessionParamServiceServer<T> {
7490        pub fn new(inner: T) -> Self {
7491            Self::from_arc(Arc::new(inner))
7492        }
7493        pub fn from_arc(inner: Arc<T>) -> Self {
7494            Self {
7495                inner,
7496                accept_compression_encodings: Default::default(),
7497                send_compression_encodings: Default::default(),
7498                max_decoding_message_size: None,
7499                max_encoding_message_size: None,
7500            }
7501        }
7502        pub fn with_interceptor<F>(
7503            inner: T,
7504            interceptor: F,
7505        ) -> InterceptedService<Self, F>
7506        where
7507            F: tonic::service::Interceptor,
7508        {
7509            InterceptedService::new(Self::new(inner), interceptor)
7510        }
7511        /// Enable decompressing requests with the given encoding.
7512        #[must_use]
7513        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
7514            self.accept_compression_encodings.enable(encoding);
7515            self
7516        }
7517        /// Compress responses with the given encoding, if the client supports it.
7518        #[must_use]
7519        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
7520            self.send_compression_encodings.enable(encoding);
7521            self
7522        }
7523        /// Limits the maximum size of a decoded message.
7524        ///
7525        /// Default: `4MB`
7526        #[must_use]
7527        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
7528            self.max_decoding_message_size = Some(limit);
7529            self
7530        }
7531        /// Limits the maximum size of an encoded message.
7532        ///
7533        /// Default: `usize::MAX`
7534        #[must_use]
7535        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
7536            self.max_encoding_message_size = Some(limit);
7537            self
7538        }
7539    }
7540    impl<T, B> tonic::codegen::Service<http::Request<B>> for SessionParamServiceServer<T>
7541    where
7542        T: SessionParamService,
7543        B: Body + std::marker::Send + 'static,
7544        B::Error: Into<StdError> + std::marker::Send + 'static,
7545    {
7546        type Response = http::Response<tonic::body::BoxBody>;
7547        type Error = std::convert::Infallible;
7548        type Future = BoxFuture<Self::Response, Self::Error>;
7549        fn poll_ready(
7550            &mut self,
7551            _cx: &mut Context<'_>,
7552        ) -> Poll<std::result::Result<(), Self::Error>> {
7553            Poll::Ready(Ok(()))
7554        }
7555        fn call(&mut self, req: http::Request<B>) -> Self::Future {
7556            match req.uri().path() {
7557                "/meta.SessionParamService/GetSessionParams" => {
7558                    #[allow(non_camel_case_types)]
7559                    struct GetSessionParamsSvc<T: SessionParamService>(pub Arc<T>);
7560                    impl<
7561                        T: SessionParamService,
7562                    > tonic::server::UnaryService<super::GetSessionParamsRequest>
7563                    for GetSessionParamsSvc<T> {
7564                        type Response = super::GetSessionParamsResponse;
7565                        type Future = BoxFuture<
7566                            tonic::Response<Self::Response>,
7567                            tonic::Status,
7568                        >;
7569                        fn call(
7570                            &mut self,
7571                            request: tonic::Request<super::GetSessionParamsRequest>,
7572                        ) -> Self::Future {
7573                            let inner = Arc::clone(&self.0);
7574                            let fut = async move {
7575                                <T as SessionParamService>::get_session_params(
7576                                        &inner,
7577                                        request,
7578                                    )
7579                                    .await
7580                            };
7581                            Box::pin(fut)
7582                        }
7583                    }
7584                    let accept_compression_encodings = self.accept_compression_encodings;
7585                    let send_compression_encodings = self.send_compression_encodings;
7586                    let max_decoding_message_size = self.max_decoding_message_size;
7587                    let max_encoding_message_size = self.max_encoding_message_size;
7588                    let inner = self.inner.clone();
7589                    let fut = async move {
7590                        let method = GetSessionParamsSvc(inner);
7591                        let codec = tonic::codec::ProstCodec::default();
7592                        let mut grpc = tonic::server::Grpc::new(codec)
7593                            .apply_compression_config(
7594                                accept_compression_encodings,
7595                                send_compression_encodings,
7596                            )
7597                            .apply_max_message_size_config(
7598                                max_decoding_message_size,
7599                                max_encoding_message_size,
7600                            );
7601                        let res = grpc.unary(method, req).await;
7602                        Ok(res)
7603                    };
7604                    Box::pin(fut)
7605                }
7606                "/meta.SessionParamService/SetSessionParam" => {
7607                    #[allow(non_camel_case_types)]
7608                    struct SetSessionParamSvc<T: SessionParamService>(pub Arc<T>);
7609                    impl<
7610                        T: SessionParamService,
7611                    > tonic::server::UnaryService<super::SetSessionParamRequest>
7612                    for SetSessionParamSvc<T> {
7613                        type Response = super::SetSessionParamResponse;
7614                        type Future = BoxFuture<
7615                            tonic::Response<Self::Response>,
7616                            tonic::Status,
7617                        >;
7618                        fn call(
7619                            &mut self,
7620                            request: tonic::Request<super::SetSessionParamRequest>,
7621                        ) -> Self::Future {
7622                            let inner = Arc::clone(&self.0);
7623                            let fut = async move {
7624                                <T as SessionParamService>::set_session_param(
7625                                        &inner,
7626                                        request,
7627                                    )
7628                                    .await
7629                            };
7630                            Box::pin(fut)
7631                        }
7632                    }
7633                    let accept_compression_encodings = self.accept_compression_encodings;
7634                    let send_compression_encodings = self.send_compression_encodings;
7635                    let max_decoding_message_size = self.max_decoding_message_size;
7636                    let max_encoding_message_size = self.max_encoding_message_size;
7637                    let inner = self.inner.clone();
7638                    let fut = async move {
7639                        let method = SetSessionParamSvc(inner);
7640                        let codec = tonic::codec::ProstCodec::default();
7641                        let mut grpc = tonic::server::Grpc::new(codec)
7642                            .apply_compression_config(
7643                                accept_compression_encodings,
7644                                send_compression_encodings,
7645                            )
7646                            .apply_max_message_size_config(
7647                                max_decoding_message_size,
7648                                max_encoding_message_size,
7649                            );
7650                        let res = grpc.unary(method, req).await;
7651                        Ok(res)
7652                    };
7653                    Box::pin(fut)
7654                }
7655                _ => {
7656                    Box::pin(async move {
7657                        let mut response = http::Response::new(empty_body());
7658                        let headers = response.headers_mut();
7659                        headers
7660                            .insert(
7661                                tonic::Status::GRPC_STATUS,
7662                                (tonic::Code::Unimplemented as i32).into(),
7663                            );
7664                        headers
7665                            .insert(
7666                                http::header::CONTENT_TYPE,
7667                                tonic::metadata::GRPC_CONTENT_TYPE,
7668                            );
7669                        Ok(response)
7670                    })
7671                }
7672            }
7673        }
7674    }
7675    impl<T> Clone for SessionParamServiceServer<T> {
7676        fn clone(&self) -> Self {
7677            let inner = self.inner.clone();
7678            Self {
7679                inner,
7680                accept_compression_encodings: self.accept_compression_encodings,
7681                send_compression_encodings: self.send_compression_encodings,
7682                max_decoding_message_size: self.max_decoding_message_size,
7683                max_encoding_message_size: self.max_encoding_message_size,
7684            }
7685        }
7686    }
7687    /// Generated gRPC service name
7688    pub const SERVICE_NAME: &str = "meta.SessionParamService";
7689    impl<T> tonic::server::NamedService for SessionParamServiceServer<T> {
7690        const NAME: &'static str = SERVICE_NAME;
7691    }
7692}
7693/// Generated server implementations.
7694pub mod serving_service_server {
7695    #![allow(
7696        unused_variables,
7697        dead_code,
7698        missing_docs,
7699        clippy::wildcard_imports,
7700        clippy::let_unit_value,
7701    )]
7702    use tonic::codegen::*;
7703    /// Generated trait containing gRPC methods that should be implemented for use with ServingServiceServer.
7704    #[async_trait]
7705    pub trait ServingService: std::marker::Send + std::marker::Sync + 'static {
7706        async fn get_serving_vnode_mappings(
7707            &self,
7708            request: tonic::Request<super::GetServingVnodeMappingsRequest>,
7709        ) -> std::result::Result<
7710            tonic::Response<super::GetServingVnodeMappingsResponse>,
7711            tonic::Status,
7712        >;
7713    }
7714    #[derive(Debug)]
7715    pub struct ServingServiceServer<T> {
7716        inner: Arc<T>,
7717        accept_compression_encodings: EnabledCompressionEncodings,
7718        send_compression_encodings: EnabledCompressionEncodings,
7719        max_decoding_message_size: Option<usize>,
7720        max_encoding_message_size: Option<usize>,
7721    }
7722    impl<T> ServingServiceServer<T> {
7723        pub fn new(inner: T) -> Self {
7724            Self::from_arc(Arc::new(inner))
7725        }
7726        pub fn from_arc(inner: Arc<T>) -> Self {
7727            Self {
7728                inner,
7729                accept_compression_encodings: Default::default(),
7730                send_compression_encodings: Default::default(),
7731                max_decoding_message_size: None,
7732                max_encoding_message_size: None,
7733            }
7734        }
7735        pub fn with_interceptor<F>(
7736            inner: T,
7737            interceptor: F,
7738        ) -> InterceptedService<Self, F>
7739        where
7740            F: tonic::service::Interceptor,
7741        {
7742            InterceptedService::new(Self::new(inner), interceptor)
7743        }
7744        /// Enable decompressing requests with the given encoding.
7745        #[must_use]
7746        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
7747            self.accept_compression_encodings.enable(encoding);
7748            self
7749        }
7750        /// Compress responses with the given encoding, if the client supports it.
7751        #[must_use]
7752        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
7753            self.send_compression_encodings.enable(encoding);
7754            self
7755        }
7756        /// Limits the maximum size of a decoded message.
7757        ///
7758        /// Default: `4MB`
7759        #[must_use]
7760        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
7761            self.max_decoding_message_size = Some(limit);
7762            self
7763        }
7764        /// Limits the maximum size of an encoded message.
7765        ///
7766        /// Default: `usize::MAX`
7767        #[must_use]
7768        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
7769            self.max_encoding_message_size = Some(limit);
7770            self
7771        }
7772    }
7773    impl<T, B> tonic::codegen::Service<http::Request<B>> for ServingServiceServer<T>
7774    where
7775        T: ServingService,
7776        B: Body + std::marker::Send + 'static,
7777        B::Error: Into<StdError> + std::marker::Send + 'static,
7778    {
7779        type Response = http::Response<tonic::body::BoxBody>;
7780        type Error = std::convert::Infallible;
7781        type Future = BoxFuture<Self::Response, Self::Error>;
7782        fn poll_ready(
7783            &mut self,
7784            _cx: &mut Context<'_>,
7785        ) -> Poll<std::result::Result<(), Self::Error>> {
7786            Poll::Ready(Ok(()))
7787        }
7788        fn call(&mut self, req: http::Request<B>) -> Self::Future {
7789            match req.uri().path() {
7790                "/meta.ServingService/GetServingVnodeMappings" => {
7791                    #[allow(non_camel_case_types)]
7792                    struct GetServingVnodeMappingsSvc<T: ServingService>(pub Arc<T>);
7793                    impl<
7794                        T: ServingService,
7795                    > tonic::server::UnaryService<super::GetServingVnodeMappingsRequest>
7796                    for GetServingVnodeMappingsSvc<T> {
7797                        type Response = super::GetServingVnodeMappingsResponse;
7798                        type Future = BoxFuture<
7799                            tonic::Response<Self::Response>,
7800                            tonic::Status,
7801                        >;
7802                        fn call(
7803                            &mut self,
7804                            request: tonic::Request<
7805                                super::GetServingVnodeMappingsRequest,
7806                            >,
7807                        ) -> Self::Future {
7808                            let inner = Arc::clone(&self.0);
7809                            let fut = async move {
7810                                <T as ServingService>::get_serving_vnode_mappings(
7811                                        &inner,
7812                                        request,
7813                                    )
7814                                    .await
7815                            };
7816                            Box::pin(fut)
7817                        }
7818                    }
7819                    let accept_compression_encodings = self.accept_compression_encodings;
7820                    let send_compression_encodings = self.send_compression_encodings;
7821                    let max_decoding_message_size = self.max_decoding_message_size;
7822                    let max_encoding_message_size = self.max_encoding_message_size;
7823                    let inner = self.inner.clone();
7824                    let fut = async move {
7825                        let method = GetServingVnodeMappingsSvc(inner);
7826                        let codec = tonic::codec::ProstCodec::default();
7827                        let mut grpc = tonic::server::Grpc::new(codec)
7828                            .apply_compression_config(
7829                                accept_compression_encodings,
7830                                send_compression_encodings,
7831                            )
7832                            .apply_max_message_size_config(
7833                                max_decoding_message_size,
7834                                max_encoding_message_size,
7835                            );
7836                        let res = grpc.unary(method, req).await;
7837                        Ok(res)
7838                    };
7839                    Box::pin(fut)
7840                }
7841                _ => {
7842                    Box::pin(async move {
7843                        let mut response = http::Response::new(empty_body());
7844                        let headers = response.headers_mut();
7845                        headers
7846                            .insert(
7847                                tonic::Status::GRPC_STATUS,
7848                                (tonic::Code::Unimplemented as i32).into(),
7849                            );
7850                        headers
7851                            .insert(
7852                                http::header::CONTENT_TYPE,
7853                                tonic::metadata::GRPC_CONTENT_TYPE,
7854                            );
7855                        Ok(response)
7856                    })
7857                }
7858            }
7859        }
7860    }
7861    impl<T> Clone for ServingServiceServer<T> {
7862        fn clone(&self) -> Self {
7863            let inner = self.inner.clone();
7864            Self {
7865                inner,
7866                accept_compression_encodings: self.accept_compression_encodings,
7867                send_compression_encodings: self.send_compression_encodings,
7868                max_decoding_message_size: self.max_decoding_message_size,
7869                max_encoding_message_size: self.max_encoding_message_size,
7870            }
7871        }
7872    }
7873    /// Generated gRPC service name
7874    pub const SERVICE_NAME: &str = "meta.ServingService";
7875    impl<T> tonic::server::NamedService for ServingServiceServer<T> {
7876        const NAME: &'static str = SERVICE_NAME;
7877    }
7878}
7879/// Generated server implementations.
7880pub mod event_log_service_server {
7881    #![allow(
7882        unused_variables,
7883        dead_code,
7884        missing_docs,
7885        clippy::wildcard_imports,
7886        clippy::let_unit_value,
7887    )]
7888    use tonic::codegen::*;
7889    /// Generated trait containing gRPC methods that should be implemented for use with EventLogServiceServer.
7890    #[async_trait]
7891    pub trait EventLogService: std::marker::Send + std::marker::Sync + 'static {
7892        async fn list_event_log(
7893            &self,
7894            request: tonic::Request<super::ListEventLogRequest>,
7895        ) -> std::result::Result<
7896            tonic::Response<super::ListEventLogResponse>,
7897            tonic::Status,
7898        >;
7899        async fn add_event_log(
7900            &self,
7901            request: tonic::Request<super::AddEventLogRequest>,
7902        ) -> std::result::Result<
7903            tonic::Response<super::AddEventLogResponse>,
7904            tonic::Status,
7905        >;
7906    }
7907    #[derive(Debug)]
7908    pub struct EventLogServiceServer<T> {
7909        inner: Arc<T>,
7910        accept_compression_encodings: EnabledCompressionEncodings,
7911        send_compression_encodings: EnabledCompressionEncodings,
7912        max_decoding_message_size: Option<usize>,
7913        max_encoding_message_size: Option<usize>,
7914    }
7915    impl<T> EventLogServiceServer<T> {
7916        pub fn new(inner: T) -> Self {
7917            Self::from_arc(Arc::new(inner))
7918        }
7919        pub fn from_arc(inner: Arc<T>) -> Self {
7920            Self {
7921                inner,
7922                accept_compression_encodings: Default::default(),
7923                send_compression_encodings: Default::default(),
7924                max_decoding_message_size: None,
7925                max_encoding_message_size: None,
7926            }
7927        }
7928        pub fn with_interceptor<F>(
7929            inner: T,
7930            interceptor: F,
7931        ) -> InterceptedService<Self, F>
7932        where
7933            F: tonic::service::Interceptor,
7934        {
7935            InterceptedService::new(Self::new(inner), interceptor)
7936        }
7937        /// Enable decompressing requests with the given encoding.
7938        #[must_use]
7939        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
7940            self.accept_compression_encodings.enable(encoding);
7941            self
7942        }
7943        /// Compress responses with the given encoding, if the client supports it.
7944        #[must_use]
7945        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
7946            self.send_compression_encodings.enable(encoding);
7947            self
7948        }
7949        /// Limits the maximum size of a decoded message.
7950        ///
7951        /// Default: `4MB`
7952        #[must_use]
7953        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
7954            self.max_decoding_message_size = Some(limit);
7955            self
7956        }
7957        /// Limits the maximum size of an encoded message.
7958        ///
7959        /// Default: `usize::MAX`
7960        #[must_use]
7961        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
7962            self.max_encoding_message_size = Some(limit);
7963            self
7964        }
7965    }
7966    impl<T, B> tonic::codegen::Service<http::Request<B>> for EventLogServiceServer<T>
7967    where
7968        T: EventLogService,
7969        B: Body + std::marker::Send + 'static,
7970        B::Error: Into<StdError> + std::marker::Send + 'static,
7971    {
7972        type Response = http::Response<tonic::body::BoxBody>;
7973        type Error = std::convert::Infallible;
7974        type Future = BoxFuture<Self::Response, Self::Error>;
7975        fn poll_ready(
7976            &mut self,
7977            _cx: &mut Context<'_>,
7978        ) -> Poll<std::result::Result<(), Self::Error>> {
7979            Poll::Ready(Ok(()))
7980        }
7981        fn call(&mut self, req: http::Request<B>) -> Self::Future {
7982            match req.uri().path() {
7983                "/meta.EventLogService/ListEventLog" => {
7984                    #[allow(non_camel_case_types)]
7985                    struct ListEventLogSvc<T: EventLogService>(pub Arc<T>);
7986                    impl<
7987                        T: EventLogService,
7988                    > tonic::server::UnaryService<super::ListEventLogRequest>
7989                    for ListEventLogSvc<T> {
7990                        type Response = super::ListEventLogResponse;
7991                        type Future = BoxFuture<
7992                            tonic::Response<Self::Response>,
7993                            tonic::Status,
7994                        >;
7995                        fn call(
7996                            &mut self,
7997                            request: tonic::Request<super::ListEventLogRequest>,
7998                        ) -> Self::Future {
7999                            let inner = Arc::clone(&self.0);
8000                            let fut = async move {
8001                                <T as EventLogService>::list_event_log(&inner, request)
8002                                    .await
8003                            };
8004                            Box::pin(fut)
8005                        }
8006                    }
8007                    let accept_compression_encodings = self.accept_compression_encodings;
8008                    let send_compression_encodings = self.send_compression_encodings;
8009                    let max_decoding_message_size = self.max_decoding_message_size;
8010                    let max_encoding_message_size = self.max_encoding_message_size;
8011                    let inner = self.inner.clone();
8012                    let fut = async move {
8013                        let method = ListEventLogSvc(inner);
8014                        let codec = tonic::codec::ProstCodec::default();
8015                        let mut grpc = tonic::server::Grpc::new(codec)
8016                            .apply_compression_config(
8017                                accept_compression_encodings,
8018                                send_compression_encodings,
8019                            )
8020                            .apply_max_message_size_config(
8021                                max_decoding_message_size,
8022                                max_encoding_message_size,
8023                            );
8024                        let res = grpc.unary(method, req).await;
8025                        Ok(res)
8026                    };
8027                    Box::pin(fut)
8028                }
8029                "/meta.EventLogService/AddEventLog" => {
8030                    #[allow(non_camel_case_types)]
8031                    struct AddEventLogSvc<T: EventLogService>(pub Arc<T>);
8032                    impl<
8033                        T: EventLogService,
8034                    > tonic::server::UnaryService<super::AddEventLogRequest>
8035                    for AddEventLogSvc<T> {
8036                        type Response = super::AddEventLogResponse;
8037                        type Future = BoxFuture<
8038                            tonic::Response<Self::Response>,
8039                            tonic::Status,
8040                        >;
8041                        fn call(
8042                            &mut self,
8043                            request: tonic::Request<super::AddEventLogRequest>,
8044                        ) -> Self::Future {
8045                            let inner = Arc::clone(&self.0);
8046                            let fut = async move {
8047                                <T as EventLogService>::add_event_log(&inner, request).await
8048                            };
8049                            Box::pin(fut)
8050                        }
8051                    }
8052                    let accept_compression_encodings = self.accept_compression_encodings;
8053                    let send_compression_encodings = self.send_compression_encodings;
8054                    let max_decoding_message_size = self.max_decoding_message_size;
8055                    let max_encoding_message_size = self.max_encoding_message_size;
8056                    let inner = self.inner.clone();
8057                    let fut = async move {
8058                        let method = AddEventLogSvc(inner);
8059                        let codec = tonic::codec::ProstCodec::default();
8060                        let mut grpc = tonic::server::Grpc::new(codec)
8061                            .apply_compression_config(
8062                                accept_compression_encodings,
8063                                send_compression_encodings,
8064                            )
8065                            .apply_max_message_size_config(
8066                                max_decoding_message_size,
8067                                max_encoding_message_size,
8068                            );
8069                        let res = grpc.unary(method, req).await;
8070                        Ok(res)
8071                    };
8072                    Box::pin(fut)
8073                }
8074                _ => {
8075                    Box::pin(async move {
8076                        let mut response = http::Response::new(empty_body());
8077                        let headers = response.headers_mut();
8078                        headers
8079                            .insert(
8080                                tonic::Status::GRPC_STATUS,
8081                                (tonic::Code::Unimplemented as i32).into(),
8082                            );
8083                        headers
8084                            .insert(
8085                                http::header::CONTENT_TYPE,
8086                                tonic::metadata::GRPC_CONTENT_TYPE,
8087                            );
8088                        Ok(response)
8089                    })
8090                }
8091            }
8092        }
8093    }
8094    impl<T> Clone for EventLogServiceServer<T> {
8095        fn clone(&self) -> Self {
8096            let inner = self.inner.clone();
8097            Self {
8098                inner,
8099                accept_compression_encodings: self.accept_compression_encodings,
8100                send_compression_encodings: self.send_compression_encodings,
8101                max_decoding_message_size: self.max_decoding_message_size,
8102                max_encoding_message_size: self.max_encoding_message_size,
8103            }
8104        }
8105    }
8106    /// Generated gRPC service name
8107    pub const SERVICE_NAME: &str = "meta.EventLogService";
8108    impl<T> tonic::server::NamedService for EventLogServiceServer<T> {
8109        const NAME: &'static str = SERVICE_NAME;
8110    }
8111}
8112/// Generated server implementations.
8113pub mod cluster_limit_service_server {
8114    #![allow(
8115        unused_variables,
8116        dead_code,
8117        missing_docs,
8118        clippy::wildcard_imports,
8119        clippy::let_unit_value,
8120    )]
8121    use tonic::codegen::*;
8122    /// Generated trait containing gRPC methods that should be implemented for use with ClusterLimitServiceServer.
8123    #[async_trait]
8124    pub trait ClusterLimitService: std::marker::Send + std::marker::Sync + 'static {
8125        async fn get_cluster_limits(
8126            &self,
8127            request: tonic::Request<super::GetClusterLimitsRequest>,
8128        ) -> std::result::Result<
8129            tonic::Response<super::GetClusterLimitsResponse>,
8130            tonic::Status,
8131        >;
8132    }
8133    #[derive(Debug)]
8134    pub struct ClusterLimitServiceServer<T> {
8135        inner: Arc<T>,
8136        accept_compression_encodings: EnabledCompressionEncodings,
8137        send_compression_encodings: EnabledCompressionEncodings,
8138        max_decoding_message_size: Option<usize>,
8139        max_encoding_message_size: Option<usize>,
8140    }
8141    impl<T> ClusterLimitServiceServer<T> {
8142        pub fn new(inner: T) -> Self {
8143            Self::from_arc(Arc::new(inner))
8144        }
8145        pub fn from_arc(inner: Arc<T>) -> Self {
8146            Self {
8147                inner,
8148                accept_compression_encodings: Default::default(),
8149                send_compression_encodings: Default::default(),
8150                max_decoding_message_size: None,
8151                max_encoding_message_size: None,
8152            }
8153        }
8154        pub fn with_interceptor<F>(
8155            inner: T,
8156            interceptor: F,
8157        ) -> InterceptedService<Self, F>
8158        where
8159            F: tonic::service::Interceptor,
8160        {
8161            InterceptedService::new(Self::new(inner), interceptor)
8162        }
8163        /// Enable decompressing requests with the given encoding.
8164        #[must_use]
8165        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
8166            self.accept_compression_encodings.enable(encoding);
8167            self
8168        }
8169        /// Compress responses with the given encoding, if the client supports it.
8170        #[must_use]
8171        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
8172            self.send_compression_encodings.enable(encoding);
8173            self
8174        }
8175        /// Limits the maximum size of a decoded message.
8176        ///
8177        /// Default: `4MB`
8178        #[must_use]
8179        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
8180            self.max_decoding_message_size = Some(limit);
8181            self
8182        }
8183        /// Limits the maximum size of an encoded message.
8184        ///
8185        /// Default: `usize::MAX`
8186        #[must_use]
8187        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
8188            self.max_encoding_message_size = Some(limit);
8189            self
8190        }
8191    }
8192    impl<T, B> tonic::codegen::Service<http::Request<B>> for ClusterLimitServiceServer<T>
8193    where
8194        T: ClusterLimitService,
8195        B: Body + std::marker::Send + 'static,
8196        B::Error: Into<StdError> + std::marker::Send + 'static,
8197    {
8198        type Response = http::Response<tonic::body::BoxBody>;
8199        type Error = std::convert::Infallible;
8200        type Future = BoxFuture<Self::Response, Self::Error>;
8201        fn poll_ready(
8202            &mut self,
8203            _cx: &mut Context<'_>,
8204        ) -> Poll<std::result::Result<(), Self::Error>> {
8205            Poll::Ready(Ok(()))
8206        }
8207        fn call(&mut self, req: http::Request<B>) -> Self::Future {
8208            match req.uri().path() {
8209                "/meta.ClusterLimitService/GetClusterLimits" => {
8210                    #[allow(non_camel_case_types)]
8211                    struct GetClusterLimitsSvc<T: ClusterLimitService>(pub Arc<T>);
8212                    impl<
8213                        T: ClusterLimitService,
8214                    > tonic::server::UnaryService<super::GetClusterLimitsRequest>
8215                    for GetClusterLimitsSvc<T> {
8216                        type Response = super::GetClusterLimitsResponse;
8217                        type Future = BoxFuture<
8218                            tonic::Response<Self::Response>,
8219                            tonic::Status,
8220                        >;
8221                        fn call(
8222                            &mut self,
8223                            request: tonic::Request<super::GetClusterLimitsRequest>,
8224                        ) -> Self::Future {
8225                            let inner = Arc::clone(&self.0);
8226                            let fut = async move {
8227                                <T as ClusterLimitService>::get_cluster_limits(
8228                                        &inner,
8229                                        request,
8230                                    )
8231                                    .await
8232                            };
8233                            Box::pin(fut)
8234                        }
8235                    }
8236                    let accept_compression_encodings = self.accept_compression_encodings;
8237                    let send_compression_encodings = self.send_compression_encodings;
8238                    let max_decoding_message_size = self.max_decoding_message_size;
8239                    let max_encoding_message_size = self.max_encoding_message_size;
8240                    let inner = self.inner.clone();
8241                    let fut = async move {
8242                        let method = GetClusterLimitsSvc(inner);
8243                        let codec = tonic::codec::ProstCodec::default();
8244                        let mut grpc = tonic::server::Grpc::new(codec)
8245                            .apply_compression_config(
8246                                accept_compression_encodings,
8247                                send_compression_encodings,
8248                            )
8249                            .apply_max_message_size_config(
8250                                max_decoding_message_size,
8251                                max_encoding_message_size,
8252                            );
8253                        let res = grpc.unary(method, req).await;
8254                        Ok(res)
8255                    };
8256                    Box::pin(fut)
8257                }
8258                _ => {
8259                    Box::pin(async move {
8260                        let mut response = http::Response::new(empty_body());
8261                        let headers = response.headers_mut();
8262                        headers
8263                            .insert(
8264                                tonic::Status::GRPC_STATUS,
8265                                (tonic::Code::Unimplemented as i32).into(),
8266                            );
8267                        headers
8268                            .insert(
8269                                http::header::CONTENT_TYPE,
8270                                tonic::metadata::GRPC_CONTENT_TYPE,
8271                            );
8272                        Ok(response)
8273                    })
8274                }
8275            }
8276        }
8277    }
8278    impl<T> Clone for ClusterLimitServiceServer<T> {
8279        fn clone(&self) -> Self {
8280            let inner = self.inner.clone();
8281            Self {
8282                inner,
8283                accept_compression_encodings: self.accept_compression_encodings,
8284                send_compression_encodings: self.send_compression_encodings,
8285                max_decoding_message_size: self.max_decoding_message_size,
8286                max_encoding_message_size: self.max_encoding_message_size,
8287            }
8288        }
8289    }
8290    /// Generated gRPC service name
8291    pub const SERVICE_NAME: &str = "meta.ClusterLimitService";
8292    impl<T> tonic::server::NamedService for ClusterLimitServiceServer<T> {
8293        const NAME: &'static str = SERVICE_NAME;
8294    }
8295}
8296/// Generated server implementations.
8297pub mod hosted_iceberg_catalog_service_server {
8298    #![allow(
8299        unused_variables,
8300        dead_code,
8301        missing_docs,
8302        clippy::wildcard_imports,
8303        clippy::let_unit_value,
8304    )]
8305    use tonic::codegen::*;
8306    /// Generated trait containing gRPC methods that should be implemented for use with HostedIcebergCatalogServiceServer.
8307    #[async_trait]
8308    pub trait HostedIcebergCatalogService: std::marker::Send + std::marker::Sync + 'static {
8309        async fn list_iceberg_tables(
8310            &self,
8311            request: tonic::Request<super::ListIcebergTablesRequest>,
8312        ) -> std::result::Result<
8313            tonic::Response<super::ListIcebergTablesResponse>,
8314            tonic::Status,
8315        >;
8316    }
8317    #[derive(Debug)]
8318    pub struct HostedIcebergCatalogServiceServer<T> {
8319        inner: Arc<T>,
8320        accept_compression_encodings: EnabledCompressionEncodings,
8321        send_compression_encodings: EnabledCompressionEncodings,
8322        max_decoding_message_size: Option<usize>,
8323        max_encoding_message_size: Option<usize>,
8324    }
8325    impl<T> HostedIcebergCatalogServiceServer<T> {
8326        pub fn new(inner: T) -> Self {
8327            Self::from_arc(Arc::new(inner))
8328        }
8329        pub fn from_arc(inner: Arc<T>) -> Self {
8330            Self {
8331                inner,
8332                accept_compression_encodings: Default::default(),
8333                send_compression_encodings: Default::default(),
8334                max_decoding_message_size: None,
8335                max_encoding_message_size: None,
8336            }
8337        }
8338        pub fn with_interceptor<F>(
8339            inner: T,
8340            interceptor: F,
8341        ) -> InterceptedService<Self, F>
8342        where
8343            F: tonic::service::Interceptor,
8344        {
8345            InterceptedService::new(Self::new(inner), interceptor)
8346        }
8347        /// Enable decompressing requests with the given encoding.
8348        #[must_use]
8349        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
8350            self.accept_compression_encodings.enable(encoding);
8351            self
8352        }
8353        /// Compress responses with the given encoding, if the client supports it.
8354        #[must_use]
8355        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
8356            self.send_compression_encodings.enable(encoding);
8357            self
8358        }
8359        /// Limits the maximum size of a decoded message.
8360        ///
8361        /// Default: `4MB`
8362        #[must_use]
8363        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
8364            self.max_decoding_message_size = Some(limit);
8365            self
8366        }
8367        /// Limits the maximum size of an encoded message.
8368        ///
8369        /// Default: `usize::MAX`
8370        #[must_use]
8371        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
8372            self.max_encoding_message_size = Some(limit);
8373            self
8374        }
8375    }
8376    impl<T, B> tonic::codegen::Service<http::Request<B>>
8377    for HostedIcebergCatalogServiceServer<T>
8378    where
8379        T: HostedIcebergCatalogService,
8380        B: Body + std::marker::Send + 'static,
8381        B::Error: Into<StdError> + std::marker::Send + 'static,
8382    {
8383        type Response = http::Response<tonic::body::BoxBody>;
8384        type Error = std::convert::Infallible;
8385        type Future = BoxFuture<Self::Response, Self::Error>;
8386        fn poll_ready(
8387            &mut self,
8388            _cx: &mut Context<'_>,
8389        ) -> Poll<std::result::Result<(), Self::Error>> {
8390            Poll::Ready(Ok(()))
8391        }
8392        fn call(&mut self, req: http::Request<B>) -> Self::Future {
8393            match req.uri().path() {
8394                "/meta.HostedIcebergCatalogService/ListIcebergTables" => {
8395                    #[allow(non_camel_case_types)]
8396                    struct ListIcebergTablesSvc<T: HostedIcebergCatalogService>(
8397                        pub Arc<T>,
8398                    );
8399                    impl<
8400                        T: HostedIcebergCatalogService,
8401                    > tonic::server::UnaryService<super::ListIcebergTablesRequest>
8402                    for ListIcebergTablesSvc<T> {
8403                        type Response = super::ListIcebergTablesResponse;
8404                        type Future = BoxFuture<
8405                            tonic::Response<Self::Response>,
8406                            tonic::Status,
8407                        >;
8408                        fn call(
8409                            &mut self,
8410                            request: tonic::Request<super::ListIcebergTablesRequest>,
8411                        ) -> Self::Future {
8412                            let inner = Arc::clone(&self.0);
8413                            let fut = async move {
8414                                <T as HostedIcebergCatalogService>::list_iceberg_tables(
8415                                        &inner,
8416                                        request,
8417                                    )
8418                                    .await
8419                            };
8420                            Box::pin(fut)
8421                        }
8422                    }
8423                    let accept_compression_encodings = self.accept_compression_encodings;
8424                    let send_compression_encodings = self.send_compression_encodings;
8425                    let max_decoding_message_size = self.max_decoding_message_size;
8426                    let max_encoding_message_size = self.max_encoding_message_size;
8427                    let inner = self.inner.clone();
8428                    let fut = async move {
8429                        let method = ListIcebergTablesSvc(inner);
8430                        let codec = tonic::codec::ProstCodec::default();
8431                        let mut grpc = tonic::server::Grpc::new(codec)
8432                            .apply_compression_config(
8433                                accept_compression_encodings,
8434                                send_compression_encodings,
8435                            )
8436                            .apply_max_message_size_config(
8437                                max_decoding_message_size,
8438                                max_encoding_message_size,
8439                            );
8440                        let res = grpc.unary(method, req).await;
8441                        Ok(res)
8442                    };
8443                    Box::pin(fut)
8444                }
8445                _ => {
8446                    Box::pin(async move {
8447                        let mut response = http::Response::new(empty_body());
8448                        let headers = response.headers_mut();
8449                        headers
8450                            .insert(
8451                                tonic::Status::GRPC_STATUS,
8452                                (tonic::Code::Unimplemented as i32).into(),
8453                            );
8454                        headers
8455                            .insert(
8456                                http::header::CONTENT_TYPE,
8457                                tonic::metadata::GRPC_CONTENT_TYPE,
8458                            );
8459                        Ok(response)
8460                    })
8461                }
8462            }
8463        }
8464    }
8465    impl<T> Clone for HostedIcebergCatalogServiceServer<T> {
8466        fn clone(&self) -> Self {
8467            let inner = self.inner.clone();
8468            Self {
8469                inner,
8470                accept_compression_encodings: self.accept_compression_encodings,
8471                send_compression_encodings: self.send_compression_encodings,
8472                max_decoding_message_size: self.max_decoding_message_size,
8473                max_encoding_message_size: self.max_encoding_message_size,
8474            }
8475        }
8476    }
8477    /// Generated gRPC service name
8478    pub const SERVICE_NAME: &str = "meta.HostedIcebergCatalogService";
8479    impl<T> tonic::server::NamedService for HostedIcebergCatalogServiceServer<T> {
8480        const NAME: &'static str = SERVICE_NAME;
8481    }
8482}