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