risingwave_pb/
meta.rs

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