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