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