Skip to main content

talos_api_rs/api/generated/
machine.rs

1// SPDX-License-Identifier: MIT OR Apache-2.0
2// DO NOT EDIT
3// This file is @generated by prost-build.
4/// rpc applyConfiguration
5/// ApplyConfiguration describes a request to assert a new configuration upon a
6/// node.
7#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
8pub struct ApplyConfigurationRequest {
9    #[prost(bytes = "vec", tag = "1")]
10    pub data: ::prost::alloc::vec::Vec<u8>,
11    #[prost(enumeration = "apply_configuration_request::Mode", tag = "4")]
12    pub mode: i32,
13    #[prost(bool, tag = "5")]
14    pub dry_run: bool,
15    #[prost(message, optional, tag = "6")]
16    pub try_mode_timeout: ::core::option::Option<::prost_types::Duration>,
17}
18/// Nested message and enum types in `ApplyConfigurationRequest`.
19pub mod apply_configuration_request {
20    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
21    #[repr(i32)]
22    pub enum Mode {
23        Reboot = 0,
24        Auto = 1,
25        NoReboot = 2,
26        Staged = 3,
27        Try = 4,
28    }
29    impl Mode {
30        /// String value of the enum field names used in the ProtoBuf definition.
31        ///
32        /// The values are not transformed in any way and thus are considered stable
33        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
34        pub fn as_str_name(&self) -> &'static str {
35            match self {
36                Self::Reboot => "REBOOT",
37                Self::Auto => "AUTO",
38                Self::NoReboot => "NO_REBOOT",
39                Self::Staged => "STAGED",
40                Self::Try => "TRY",
41            }
42        }
43        /// Creates an enum from field names used in the ProtoBuf definition.
44        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
45            match value {
46                "REBOOT" => Some(Self::Reboot),
47                "AUTO" => Some(Self::Auto),
48                "NO_REBOOT" => Some(Self::NoReboot),
49                "STAGED" => Some(Self::Staged),
50                "TRY" => Some(Self::Try),
51                _ => None,
52            }
53        }
54    }
55}
56/// ApplyConfigurationResponse describes the response to a configuration request.
57#[derive(Clone, PartialEq, ::prost::Message)]
58pub struct ApplyConfiguration {
59    #[prost(message, optional, tag = "1")]
60    pub metadata: ::core::option::Option<super::common::Metadata>,
61    /// Configuration validation warnings.
62    #[prost(string, repeated, tag = "2")]
63    pub warnings: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
64    /// States which mode was actually chosen.
65    #[prost(enumeration = "apply_configuration_request::Mode", tag = "3")]
66    pub mode: i32,
67    /// Human-readable message explaining the result of the apply configuration call.
68    #[prost(string, tag = "4")]
69    pub mode_details: ::prost::alloc::string::String,
70}
71#[derive(Clone, PartialEq, ::prost::Message)]
72pub struct ApplyConfigurationResponse {
73    #[prost(message, repeated, tag = "1")]
74    pub messages: ::prost::alloc::vec::Vec<ApplyConfiguration>,
75}
76/// rpc reboot
77#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
78pub struct RebootRequest {
79    #[prost(enumeration = "reboot_request::Mode", tag = "1")]
80    pub mode: i32,
81}
82/// Nested message and enum types in `RebootRequest`.
83pub mod reboot_request {
84    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
85    #[repr(i32)]
86    pub enum Mode {
87        Default = 0,
88        Powercycle = 1,
89        Force = 2,
90    }
91    impl Mode {
92        /// String value of the enum field names used in the ProtoBuf definition.
93        ///
94        /// The values are not transformed in any way and thus are considered stable
95        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
96        pub fn as_str_name(&self) -> &'static str {
97            match self {
98                Self::Default => "DEFAULT",
99                Self::Powercycle => "POWERCYCLE",
100                Self::Force => "FORCE",
101            }
102        }
103        /// Creates an enum from field names used in the ProtoBuf definition.
104        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
105            match value {
106                "DEFAULT" => Some(Self::Default),
107                "POWERCYCLE" => Some(Self::Powercycle),
108                "FORCE" => Some(Self::Force),
109                _ => None,
110            }
111        }
112    }
113}
114/// The reboot message containing the reboot status.
115#[derive(Clone, PartialEq, ::prost::Message)]
116pub struct Reboot {
117    #[prost(message, optional, tag = "1")]
118    pub metadata: ::core::option::Option<super::common::Metadata>,
119    #[prost(string, tag = "2")]
120    pub actor_id: ::prost::alloc::string::String,
121}
122#[derive(Clone, PartialEq, ::prost::Message)]
123pub struct RebootResponse {
124    #[prost(message, repeated, tag = "1")]
125    pub messages: ::prost::alloc::vec::Vec<Reboot>,
126}
127/// rpc Bootstrap
128#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
129pub struct BootstrapRequest {
130    /// Enable etcd recovery from the snapshot.
131    /// Snapshot should be uploaded before this call via EtcdRecover RPC.
132    #[prost(bool, tag = "1")]
133    pub recover_etcd: bool,
134    /// Skip hash check on the snapshot (etcd).
135    /// Enable this when recovering from data directory copy to skip integrity check.
136    #[prost(bool, tag = "2")]
137    pub recover_skip_hash_check: bool,
138}
139/// The bootstrap message containing the bootstrap status.
140#[derive(Clone, PartialEq, ::prost::Message)]
141pub struct Bootstrap {
142    #[prost(message, optional, tag = "1")]
143    pub metadata: ::core::option::Option<super::common::Metadata>,
144}
145#[derive(Clone, PartialEq, ::prost::Message)]
146pub struct BootstrapResponse {
147    #[prost(message, repeated, tag = "1")]
148    pub messages: ::prost::alloc::vec::Vec<Bootstrap>,
149}
150/// rpc events
151#[derive(Clone, PartialEq, ::prost::Message)]
152pub struct SequenceEvent {
153    #[prost(string, tag = "1")]
154    pub sequence: ::prost::alloc::string::String,
155    #[prost(enumeration = "sequence_event::Action", tag = "2")]
156    pub action: i32,
157    #[prost(message, optional, tag = "3")]
158    pub error: ::core::option::Option<super::common::Error>,
159}
160/// Nested message and enum types in `SequenceEvent`.
161pub mod sequence_event {
162    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
163    #[repr(i32)]
164    pub enum Action {
165        Noop = 0,
166        Start = 1,
167        Stop = 2,
168    }
169    impl Action {
170        /// String value of the enum field names used in the ProtoBuf definition.
171        ///
172        /// The values are not transformed in any way and thus are considered stable
173        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
174        pub fn as_str_name(&self) -> &'static str {
175            match self {
176                Self::Noop => "NOOP",
177                Self::Start => "START",
178                Self::Stop => "STOP",
179            }
180        }
181        /// Creates an enum from field names used in the ProtoBuf definition.
182        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
183            match value {
184                "NOOP" => Some(Self::Noop),
185                "START" => Some(Self::Start),
186                "STOP" => Some(Self::Stop),
187                _ => None,
188            }
189        }
190    }
191}
192#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
193pub struct PhaseEvent {
194    #[prost(string, tag = "1")]
195    pub phase: ::prost::alloc::string::String,
196    #[prost(enumeration = "phase_event::Action", tag = "2")]
197    pub action: i32,
198}
199/// Nested message and enum types in `PhaseEvent`.
200pub mod phase_event {
201    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
202    #[repr(i32)]
203    pub enum Action {
204        Start = 0,
205        Stop = 1,
206    }
207    impl Action {
208        /// String value of the enum field names used in the ProtoBuf definition.
209        ///
210        /// The values are not transformed in any way and thus are considered stable
211        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
212        pub fn as_str_name(&self) -> &'static str {
213            match self {
214                Self::Start => "START",
215                Self::Stop => "STOP",
216            }
217        }
218        /// Creates an enum from field names used in the ProtoBuf definition.
219        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
220            match value {
221                "START" => Some(Self::Start),
222                "STOP" => Some(Self::Stop),
223                _ => None,
224            }
225        }
226    }
227}
228#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
229pub struct TaskEvent {
230    #[prost(string, tag = "1")]
231    pub task: ::prost::alloc::string::String,
232    #[prost(enumeration = "task_event::Action", tag = "2")]
233    pub action: i32,
234}
235/// Nested message and enum types in `TaskEvent`.
236pub mod task_event {
237    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
238    #[repr(i32)]
239    pub enum Action {
240        Start = 0,
241        Stop = 1,
242    }
243    impl Action {
244        /// String value of the enum field names used in the ProtoBuf definition.
245        ///
246        /// The values are not transformed in any way and thus are considered stable
247        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
248        pub fn as_str_name(&self) -> &'static str {
249            match self {
250                Self::Start => "START",
251                Self::Stop => "STOP",
252            }
253        }
254        /// Creates an enum from field names used in the ProtoBuf definition.
255        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
256            match value {
257                "START" => Some(Self::Start),
258                "STOP" => Some(Self::Stop),
259                _ => None,
260            }
261        }
262    }
263}
264#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
265pub struct ServiceStateEvent {
266    #[prost(string, tag = "1")]
267    pub service: ::prost::alloc::string::String,
268    #[prost(enumeration = "service_state_event::Action", tag = "2")]
269    pub action: i32,
270    #[prost(string, tag = "3")]
271    pub message: ::prost::alloc::string::String,
272    #[prost(message, optional, tag = "4")]
273    pub health: ::core::option::Option<ServiceHealth>,
274}
275/// Nested message and enum types in `ServiceStateEvent`.
276pub mod service_state_event {
277    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
278    #[repr(i32)]
279    pub enum Action {
280        Initialized = 0,
281        Preparing = 1,
282        Waiting = 2,
283        Running = 3,
284        Stopping = 4,
285        Finished = 5,
286        Failed = 6,
287        Skipped = 7,
288        Starting = 8,
289    }
290    impl Action {
291        /// String value of the enum field names used in the ProtoBuf definition.
292        ///
293        /// The values are not transformed in any way and thus are considered stable
294        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
295        pub fn as_str_name(&self) -> &'static str {
296            match self {
297                Self::Initialized => "INITIALIZED",
298                Self::Preparing => "PREPARING",
299                Self::Waiting => "WAITING",
300                Self::Running => "RUNNING",
301                Self::Stopping => "STOPPING",
302                Self::Finished => "FINISHED",
303                Self::Failed => "FAILED",
304                Self::Skipped => "SKIPPED",
305                Self::Starting => "STARTING",
306            }
307        }
308        /// Creates an enum from field names used in the ProtoBuf definition.
309        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
310            match value {
311                "INITIALIZED" => Some(Self::Initialized),
312                "PREPARING" => Some(Self::Preparing),
313                "WAITING" => Some(Self::Waiting),
314                "RUNNING" => Some(Self::Running),
315                "STOPPING" => Some(Self::Stopping),
316                "FINISHED" => Some(Self::Finished),
317                "FAILED" => Some(Self::Failed),
318                "SKIPPED" => Some(Self::Skipped),
319                "STARTING" => Some(Self::Starting),
320                _ => None,
321            }
322        }
323    }
324}
325#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
326pub struct RestartEvent {
327    #[prost(int64, tag = "1")]
328    pub cmd: i64,
329}
330/// ConfigLoadErrorEvent is reported when the config loading has failed.
331#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
332pub struct ConfigLoadErrorEvent {
333    #[prost(string, tag = "1")]
334    pub error: ::prost::alloc::string::String,
335}
336/// ConfigValidationErrorEvent is reported when config validation has failed.
337#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
338pub struct ConfigValidationErrorEvent {
339    #[prost(string, tag = "1")]
340    pub error: ::prost::alloc::string::String,
341}
342/// AddressEvent reports node endpoints aggregated from k8s.Endpoints and network.Hostname.
343#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
344pub struct AddressEvent {
345    #[prost(string, tag = "1")]
346    pub hostname: ::prost::alloc::string::String,
347    #[prost(string, repeated, tag = "2")]
348    pub addresses: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
349}
350/// MachineStatusEvent reports changes to the MachineStatus resource.
351#[derive(Clone, PartialEq, ::prost::Message)]
352pub struct MachineStatusEvent {
353    #[prost(enumeration = "machine_status_event::MachineStage", tag = "1")]
354    pub stage: i32,
355    #[prost(message, optional, tag = "2")]
356    pub status: ::core::option::Option<machine_status_event::MachineStatus>,
357}
358/// Nested message and enum types in `MachineStatusEvent`.
359pub mod machine_status_event {
360    #[derive(Clone, PartialEq, ::prost::Message)]
361    pub struct MachineStatus {
362        #[prost(bool, tag = "1")]
363        pub ready: bool,
364        #[prost(message, repeated, tag = "2")]
365        pub unmet_conditions: ::prost::alloc::vec::Vec<machine_status::UnmetCondition>,
366    }
367    /// Nested message and enum types in `MachineStatus`.
368    pub mod machine_status {
369        #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
370        pub struct UnmetCondition {
371            #[prost(string, tag = "1")]
372            pub name: ::prost::alloc::string::String,
373            #[prost(string, tag = "2")]
374            pub reason: ::prost::alloc::string::String,
375        }
376    }
377    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
378    #[repr(i32)]
379    pub enum MachineStage {
380        Unknown = 0,
381        Booting = 1,
382        Installing = 2,
383        Maintenance = 3,
384        Running = 4,
385        Rebooting = 5,
386        ShuttingDown = 6,
387        Resetting = 7,
388        Upgrading = 8,
389    }
390    impl MachineStage {
391        /// String value of the enum field names used in the ProtoBuf definition.
392        ///
393        /// The values are not transformed in any way and thus are considered stable
394        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
395        pub fn as_str_name(&self) -> &'static str {
396            match self {
397                Self::Unknown => "UNKNOWN",
398                Self::Booting => "BOOTING",
399                Self::Installing => "INSTALLING",
400                Self::Maintenance => "MAINTENANCE",
401                Self::Running => "RUNNING",
402                Self::Rebooting => "REBOOTING",
403                Self::ShuttingDown => "SHUTTING_DOWN",
404                Self::Resetting => "RESETTING",
405                Self::Upgrading => "UPGRADING",
406            }
407        }
408        /// Creates an enum from field names used in the ProtoBuf definition.
409        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
410            match value {
411                "UNKNOWN" => Some(Self::Unknown),
412                "BOOTING" => Some(Self::Booting),
413                "INSTALLING" => Some(Self::Installing),
414                "MAINTENANCE" => Some(Self::Maintenance),
415                "RUNNING" => Some(Self::Running),
416                "REBOOTING" => Some(Self::Rebooting),
417                "SHUTTING_DOWN" => Some(Self::ShuttingDown),
418                "RESETTING" => Some(Self::Resetting),
419                "UPGRADING" => Some(Self::Upgrading),
420                _ => None,
421            }
422        }
423    }
424}
425#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
426pub struct EventsRequest {
427    #[prost(int32, tag = "1")]
428    pub tail_events: i32,
429    #[prost(string, tag = "2")]
430    pub tail_id: ::prost::alloc::string::String,
431    #[prost(int32, tag = "3")]
432    pub tail_seconds: i32,
433    #[prost(string, tag = "4")]
434    pub with_actor_id: ::prost::alloc::string::String,
435}
436#[derive(Clone, PartialEq, ::prost::Message)]
437pub struct Event {
438    #[prost(message, optional, tag = "1")]
439    pub metadata: ::core::option::Option<super::common::Metadata>,
440    #[prost(message, optional, tag = "2")]
441    pub data: ::core::option::Option<::prost_types::Any>,
442    #[prost(string, tag = "3")]
443    pub id: ::prost::alloc::string::String,
444    #[prost(string, tag = "4")]
445    pub actor_id: ::prost::alloc::string::String,
446}
447/// rpc reset
448#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
449pub struct ResetPartitionSpec {
450    #[prost(string, tag = "1")]
451    pub label: ::prost::alloc::string::String,
452    #[prost(bool, tag = "2")]
453    pub wipe: bool,
454}
455#[derive(Clone, PartialEq, ::prost::Message)]
456pub struct ResetRequest {
457    /// Graceful indicates whether node should leave etcd before the upgrade, it also
458    /// enforces etcd checks before leaving.
459    #[prost(bool, tag = "1")]
460    pub graceful: bool,
461    /// Reboot indicates whether node should reboot or halt after resetting.
462    #[prost(bool, tag = "2")]
463    pub reboot: bool,
464    /// System_partitions_to_wipe lists specific system disk partitions to be reset (wiped).
465    /// If system_partitions_to_wipe is empty, all the partitions are erased.
466    #[prost(message, repeated, tag = "3")]
467    pub system_partitions_to_wipe: ::prost::alloc::vec::Vec<ResetPartitionSpec>,
468    /// UserDisksToWipe lists specific connected block devices to be reset (wiped).
469    #[prost(string, repeated, tag = "4")]
470    pub user_disks_to_wipe: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
471    /// WipeMode defines which devices should be wiped.
472    #[prost(enumeration = "reset_request::WipeMode", tag = "5")]
473    pub mode: i32,
474}
475/// Nested message and enum types in `ResetRequest`.
476pub mod reset_request {
477    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
478    #[repr(i32)]
479    pub enum WipeMode {
480        All = 0,
481        SystemDisk = 1,
482        UserDisks = 2,
483    }
484    impl WipeMode {
485        /// String value of the enum field names used in the ProtoBuf definition.
486        ///
487        /// The values are not transformed in any way and thus are considered stable
488        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
489        pub fn as_str_name(&self) -> &'static str {
490            match self {
491                Self::All => "ALL",
492                Self::SystemDisk => "SYSTEM_DISK",
493                Self::UserDisks => "USER_DISKS",
494            }
495        }
496        /// Creates an enum from field names used in the ProtoBuf definition.
497        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
498            match value {
499                "ALL" => Some(Self::All),
500                "SYSTEM_DISK" => Some(Self::SystemDisk),
501                "USER_DISKS" => Some(Self::UserDisks),
502                _ => None,
503            }
504        }
505    }
506}
507/// The reset message containing the restart status.
508#[derive(Clone, PartialEq, ::prost::Message)]
509pub struct Reset {
510    #[prost(message, optional, tag = "1")]
511    pub metadata: ::core::option::Option<super::common::Metadata>,
512    #[prost(string, tag = "2")]
513    pub actor_id: ::prost::alloc::string::String,
514}
515#[derive(Clone, PartialEq, ::prost::Message)]
516pub struct ResetResponse {
517    #[prost(message, repeated, tag = "1")]
518    pub messages: ::prost::alloc::vec::Vec<Reset>,
519}
520/// rpc shutdown
521/// The messages message containing the shutdown status.
522#[derive(Clone, PartialEq, ::prost::Message)]
523pub struct Shutdown {
524    #[prost(message, optional, tag = "1")]
525    pub metadata: ::core::option::Option<super::common::Metadata>,
526    #[prost(string, tag = "2")]
527    pub actor_id: ::prost::alloc::string::String,
528}
529#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
530pub struct ShutdownRequest {
531    /// Force indicates whether node should shutdown without first cordening and draining
532    #[prost(bool, tag = "1")]
533    pub force: bool,
534}
535#[derive(Clone, PartialEq, ::prost::Message)]
536pub struct ShutdownResponse {
537    #[prost(message, repeated, tag = "1")]
538    pub messages: ::prost::alloc::vec::Vec<Shutdown>,
539}
540/// rpc upgrade
541#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
542pub struct UpgradeRequest {
543    #[prost(string, tag = "1")]
544    pub image: ::prost::alloc::string::String,
545    #[prost(bool, tag = "2")]
546    pub preserve: bool,
547    #[prost(bool, tag = "3")]
548    pub stage: bool,
549    #[prost(bool, tag = "4")]
550    pub force: bool,
551    #[prost(enumeration = "upgrade_request::RebootMode", tag = "5")]
552    pub reboot_mode: i32,
553}
554/// Nested message and enum types in `UpgradeRequest`.
555pub mod upgrade_request {
556    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
557    #[repr(i32)]
558    pub enum RebootMode {
559        Default = 0,
560        Powercycle = 1,
561    }
562    impl RebootMode {
563        /// String value of the enum field names used in the ProtoBuf definition.
564        ///
565        /// The values are not transformed in any way and thus are considered stable
566        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
567        pub fn as_str_name(&self) -> &'static str {
568            match self {
569                Self::Default => "DEFAULT",
570                Self::Powercycle => "POWERCYCLE",
571            }
572        }
573        /// Creates an enum from field names used in the ProtoBuf definition.
574        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
575            match value {
576                "DEFAULT" => Some(Self::Default),
577                "POWERCYCLE" => Some(Self::Powercycle),
578                _ => None,
579            }
580        }
581    }
582}
583#[derive(Clone, PartialEq, ::prost::Message)]
584pub struct Upgrade {
585    #[prost(message, optional, tag = "1")]
586    pub metadata: ::core::option::Option<super::common::Metadata>,
587    #[prost(string, tag = "2")]
588    pub ack: ::prost::alloc::string::String,
589    #[prost(string, tag = "3")]
590    pub actor_id: ::prost::alloc::string::String,
591}
592#[derive(Clone, PartialEq, ::prost::Message)]
593pub struct UpgradeResponse {
594    #[prost(message, repeated, tag = "1")]
595    pub messages: ::prost::alloc::vec::Vec<Upgrade>,
596}
597/// rpc servicelist
598#[derive(Clone, PartialEq, ::prost::Message)]
599pub struct ServiceList {
600    #[prost(message, optional, tag = "1")]
601    pub metadata: ::core::option::Option<super::common::Metadata>,
602    #[prost(message, repeated, tag = "2")]
603    pub services: ::prost::alloc::vec::Vec<ServiceInfo>,
604}
605#[derive(Clone, PartialEq, ::prost::Message)]
606pub struct ServiceListResponse {
607    #[prost(message, repeated, tag = "1")]
608    pub messages: ::prost::alloc::vec::Vec<ServiceList>,
609}
610#[derive(Clone, PartialEq, ::prost::Message)]
611pub struct ServiceInfo {
612    #[prost(string, tag = "1")]
613    pub id: ::prost::alloc::string::String,
614    #[prost(string, tag = "2")]
615    pub state: ::prost::alloc::string::String,
616    #[prost(message, optional, tag = "3")]
617    pub events: ::core::option::Option<ServiceEvents>,
618    #[prost(message, optional, tag = "4")]
619    pub health: ::core::option::Option<ServiceHealth>,
620}
621#[derive(Clone, PartialEq, ::prost::Message)]
622pub struct ServiceEvents {
623    #[prost(message, repeated, tag = "1")]
624    pub events: ::prost::alloc::vec::Vec<ServiceEvent>,
625}
626#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
627pub struct ServiceEvent {
628    #[prost(string, tag = "1")]
629    pub msg: ::prost::alloc::string::String,
630    #[prost(string, tag = "2")]
631    pub state: ::prost::alloc::string::String,
632    #[prost(message, optional, tag = "3")]
633    pub ts: ::core::option::Option<::prost_types::Timestamp>,
634}
635#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
636pub struct ServiceHealth {
637    #[prost(bool, tag = "1")]
638    pub unknown: bool,
639    #[prost(bool, tag = "2")]
640    pub healthy: bool,
641    #[prost(string, tag = "3")]
642    pub last_message: ::prost::alloc::string::String,
643    #[prost(message, optional, tag = "4")]
644    pub last_change: ::core::option::Option<::prost_types::Timestamp>,
645}
646/// rpc servicestart
647#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
648pub struct ServiceStartRequest {
649    #[prost(string, tag = "1")]
650    pub id: ::prost::alloc::string::String,
651}
652#[derive(Clone, PartialEq, ::prost::Message)]
653pub struct ServiceStart {
654    #[prost(message, optional, tag = "1")]
655    pub metadata: ::core::option::Option<super::common::Metadata>,
656    #[prost(string, tag = "2")]
657    pub resp: ::prost::alloc::string::String,
658}
659#[derive(Clone, PartialEq, ::prost::Message)]
660pub struct ServiceStartResponse {
661    #[prost(message, repeated, tag = "1")]
662    pub messages: ::prost::alloc::vec::Vec<ServiceStart>,
663}
664#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
665pub struct ServiceStopRequest {
666    #[prost(string, tag = "1")]
667    pub id: ::prost::alloc::string::String,
668}
669#[derive(Clone, PartialEq, ::prost::Message)]
670pub struct ServiceStop {
671    #[prost(message, optional, tag = "1")]
672    pub metadata: ::core::option::Option<super::common::Metadata>,
673    #[prost(string, tag = "2")]
674    pub resp: ::prost::alloc::string::String,
675}
676#[derive(Clone, PartialEq, ::prost::Message)]
677pub struct ServiceStopResponse {
678    #[prost(message, repeated, tag = "1")]
679    pub messages: ::prost::alloc::vec::Vec<ServiceStop>,
680}
681#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
682pub struct ServiceRestartRequest {
683    #[prost(string, tag = "1")]
684    pub id: ::prost::alloc::string::String,
685}
686#[derive(Clone, PartialEq, ::prost::Message)]
687pub struct ServiceRestart {
688    #[prost(message, optional, tag = "1")]
689    pub metadata: ::core::option::Option<super::common::Metadata>,
690    #[prost(string, tag = "2")]
691    pub resp: ::prost::alloc::string::String,
692}
693#[derive(Clone, PartialEq, ::prost::Message)]
694pub struct ServiceRestartResponse {
695    #[prost(message, repeated, tag = "1")]
696    pub messages: ::prost::alloc::vec::Vec<ServiceRestart>,
697}
698/// CopyRequest describes a request to copy data out of Talos node
699///
700/// Copy produces .tar.gz archive which is streamed back to the caller
701#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
702pub struct CopyRequest {
703    /// Root path to start copying data out, it might be either a file or directory
704    #[prost(string, tag = "1")]
705    pub root_path: ::prost::alloc::string::String,
706}
707/// ListRequest describes a request to list the contents of a directory.
708#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
709pub struct ListRequest {
710    /// Root indicates the root directory for the list. If not indicated, '/' is
711    /// presumed.
712    #[prost(string, tag = "1")]
713    pub root: ::prost::alloc::string::String,
714    /// Recurse indicates that subdirectories should be recursed.
715    #[prost(bool, tag = "2")]
716    pub recurse: bool,
717    /// RecursionDepth indicates how many levels of subdirectories should be
718    /// recursed. The default (0) indicates that no limit should be enforced.
719    #[prost(int32, tag = "3")]
720    pub recursion_depth: i32,
721    /// Types indicates what file type should be returned. If not indicated,
722    /// all files will be returned.
723    #[prost(enumeration = "list_request::Type", repeated, tag = "4")]
724    pub types: ::prost::alloc::vec::Vec<i32>,
725    /// Report xattrs
726    #[prost(bool, tag = "5")]
727    pub report_xattrs: bool,
728}
729/// Nested message and enum types in `ListRequest`.
730pub mod list_request {
731    /// File type.
732    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
733    #[repr(i32)]
734    pub enum Type {
735        /// Regular file (not directory, symlink, etc).
736        Regular = 0,
737        /// Directory.
738        Directory = 1,
739        /// Symbolic link.
740        Symlink = 2,
741    }
742    impl Type {
743        /// String value of the enum field names used in the ProtoBuf definition.
744        ///
745        /// The values are not transformed in any way and thus are considered stable
746        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
747        pub fn as_str_name(&self) -> &'static str {
748            match self {
749                Self::Regular => "REGULAR",
750                Self::Directory => "DIRECTORY",
751                Self::Symlink => "SYMLINK",
752            }
753        }
754        /// Creates an enum from field names used in the ProtoBuf definition.
755        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
756            match value {
757                "REGULAR" => Some(Self::Regular),
758                "DIRECTORY" => Some(Self::Directory),
759                "SYMLINK" => Some(Self::Symlink),
760                _ => None,
761            }
762        }
763    }
764}
765/// DiskUsageRequest describes a request to list disk usage of directories and regular files
766#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
767pub struct DiskUsageRequest {
768    /// RecursionDepth indicates how many levels of subdirectories should be
769    /// recursed. The default (0) indicates that no limit should be enforced.
770    #[prost(int32, tag = "1")]
771    pub recursion_depth: i32,
772    /// All write sizes for all files, not just directories.
773    #[prost(bool, tag = "2")]
774    pub all: bool,
775    /// Threshold exclude entries smaller than SIZE if positive,
776    /// or entries greater than SIZE if negative.
777    #[prost(int64, tag = "3")]
778    pub threshold: i64,
779    /// DiskUsagePaths is the list of directories to calculate disk usage for.
780    #[prost(string, repeated, tag = "4")]
781    pub paths: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
782}
783/// FileInfo describes a file or directory's information
784#[derive(Clone, PartialEq, ::prost::Message)]
785pub struct FileInfo {
786    #[prost(message, optional, tag = "1")]
787    pub metadata: ::core::option::Option<super::common::Metadata>,
788    /// Name is the name (including prefixed path) of the file or directory
789    #[prost(string, tag = "2")]
790    pub name: ::prost::alloc::string::String,
791    /// Size indicates the number of bytes contained within the file
792    #[prost(int64, tag = "3")]
793    pub size: i64,
794    /// Mode is the bitmap of UNIX mode/permission flags of the file
795    #[prost(uint32, tag = "4")]
796    pub mode: u32,
797    /// Modified indicates the UNIX timestamp at which the file was last modified
798    #[prost(int64, tag = "5")]
799    pub modified: i64,
800    /// IsDir indicates that the file is a directory
801    #[prost(bool, tag = "6")]
802    pub is_dir: bool,
803    /// Error describes any error encountered while trying to read the file
804    /// information.
805    #[prost(string, tag = "7")]
806    pub error: ::prost::alloc::string::String,
807    /// Link is filled with symlink target
808    #[prost(string, tag = "8")]
809    pub link: ::prost::alloc::string::String,
810    /// RelativeName is the name of the file or directory relative to the RootPath
811    #[prost(string, tag = "9")]
812    pub relative_name: ::prost::alloc::string::String,
813    /// Owner uid
814    #[prost(uint32, tag = "10")]
815    pub uid: u32,
816    /// Owner gid
817    #[prost(uint32, tag = "11")]
818    pub gid: u32,
819    /// Extended attributes (if present and requested)
820    #[prost(message, repeated, tag = "12")]
821    pub xattrs: ::prost::alloc::vec::Vec<Xattr>,
822}
823#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
824pub struct Xattr {
825    #[prost(string, tag = "1")]
826    pub name: ::prost::alloc::string::String,
827    #[prost(bytes = "vec", tag = "2")]
828    pub data: ::prost::alloc::vec::Vec<u8>,
829}
830/// DiskUsageInfo describes a file or directory's information for du command
831#[derive(Clone, PartialEq, ::prost::Message)]
832pub struct DiskUsageInfo {
833    #[prost(message, optional, tag = "1")]
834    pub metadata: ::core::option::Option<super::common::Metadata>,
835    /// Name is the name (including prefixed path) of the file or directory
836    #[prost(string, tag = "2")]
837    pub name: ::prost::alloc::string::String,
838    /// Size indicates the number of bytes contained within the file
839    #[prost(int64, tag = "3")]
840    pub size: i64,
841    /// Error describes any error encountered while trying to read the file
842    /// information.
843    #[prost(string, tag = "4")]
844    pub error: ::prost::alloc::string::String,
845    /// RelativeName is the name of the file or directory relative to the RootPath
846    #[prost(string, tag = "5")]
847    pub relative_name: ::prost::alloc::string::String,
848}
849/// The messages message containing the requested df stats.
850#[derive(Clone, PartialEq, ::prost::Message)]
851pub struct Mounts {
852    #[prost(message, optional, tag = "1")]
853    pub metadata: ::core::option::Option<super::common::Metadata>,
854    #[prost(message, repeated, tag = "2")]
855    pub stats: ::prost::alloc::vec::Vec<MountStat>,
856}
857#[derive(Clone, PartialEq, ::prost::Message)]
858pub struct MountsResponse {
859    #[prost(message, repeated, tag = "1")]
860    pub messages: ::prost::alloc::vec::Vec<Mounts>,
861}
862/// The messages message containing the requested processes.
863#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
864pub struct MountStat {
865    #[prost(string, tag = "1")]
866    pub filesystem: ::prost::alloc::string::String,
867    #[prost(uint64, tag = "2")]
868    pub size: u64,
869    #[prost(uint64, tag = "3")]
870    pub available: u64,
871    #[prost(string, tag = "4")]
872    pub mounted_on: ::prost::alloc::string::String,
873}
874#[derive(Clone, PartialEq, ::prost::Message)]
875pub struct Version {
876    #[prost(message, optional, tag = "1")]
877    pub metadata: ::core::option::Option<super::common::Metadata>,
878    #[prost(message, optional, tag = "2")]
879    pub version: ::core::option::Option<VersionInfo>,
880    #[prost(message, optional, tag = "3")]
881    pub platform: ::core::option::Option<PlatformInfo>,
882    /// Features describe individual Talos features that can be switched on or off.
883    #[prost(message, optional, tag = "4")]
884    pub features: ::core::option::Option<FeaturesInfo>,
885}
886#[derive(Clone, PartialEq, ::prost::Message)]
887pub struct VersionResponse {
888    #[prost(message, repeated, tag = "1")]
889    pub messages: ::prost::alloc::vec::Vec<Version>,
890}
891#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
892pub struct VersionInfo {
893    #[prost(string, tag = "1")]
894    pub tag: ::prost::alloc::string::String,
895    #[prost(string, tag = "2")]
896    pub sha: ::prost::alloc::string::String,
897    #[prost(string, tag = "3")]
898    pub built: ::prost::alloc::string::String,
899    #[prost(string, tag = "4")]
900    pub go_version: ::prost::alloc::string::String,
901    #[prost(string, tag = "5")]
902    pub os: ::prost::alloc::string::String,
903    #[prost(string, tag = "6")]
904    pub arch: ::prost::alloc::string::String,
905}
906#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
907pub struct PlatformInfo {
908    #[prost(string, tag = "1")]
909    pub name: ::prost::alloc::string::String,
910    #[prost(string, tag = "2")]
911    pub mode: ::prost::alloc::string::String,
912}
913/// FeaturesInfo describes individual Talos features that can be switched on or off.
914#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
915pub struct FeaturesInfo {
916    /// RBAC is true if role-based access control is enabled.
917    #[prost(bool, tag = "1")]
918    pub rbac: bool,
919}
920/// rpc logs
921/// The request message containing the process name.
922#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
923pub struct LogsRequest {
924    #[prost(string, tag = "1")]
925    pub namespace: ::prost::alloc::string::String,
926    #[prost(string, tag = "2")]
927    pub id: ::prost::alloc::string::String,
928    /// driver might be default "containerd" or "cri"
929    #[prost(enumeration = "super::common::ContainerDriver", tag = "3")]
930    pub driver: i32,
931    #[prost(bool, tag = "4")]
932    pub follow: bool,
933    #[prost(int32, tag = "5")]
934    pub tail_lines: i32,
935}
936#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
937pub struct ReadRequest {
938    #[prost(string, tag = "1")]
939    pub path: ::prost::alloc::string::String,
940}
941/// LogsContainer describes all available registered log containers.
942#[derive(Clone, PartialEq, ::prost::Message)]
943pub struct LogsContainer {
944    #[prost(message, optional, tag = "1")]
945    pub metadata: ::core::option::Option<super::common::Metadata>,
946    #[prost(string, repeated, tag = "2")]
947    pub ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
948}
949#[derive(Clone, PartialEq, ::prost::Message)]
950pub struct LogsContainersResponse {
951    #[prost(message, repeated, tag = "1")]
952    pub messages: ::prost::alloc::vec::Vec<LogsContainer>,
953}
954/// rpc rollback
955#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
956pub struct RollbackRequest {}
957#[derive(Clone, PartialEq, ::prost::Message)]
958pub struct Rollback {
959    #[prost(message, optional, tag = "1")]
960    pub metadata: ::core::option::Option<super::common::Metadata>,
961}
962#[derive(Clone, PartialEq, ::prost::Message)]
963pub struct RollbackResponse {
964    #[prost(message, repeated, tag = "1")]
965    pub messages: ::prost::alloc::vec::Vec<Rollback>,
966}
967#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
968pub struct ContainersRequest {
969    #[prost(string, tag = "1")]
970    pub namespace: ::prost::alloc::string::String,
971    /// driver might be default "containerd" or "cri"
972    #[prost(enumeration = "super::common::ContainerDriver", tag = "2")]
973    pub driver: i32,
974}
975/// The messages message containing the requested containers.
976#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
977pub struct ContainerInfo {
978    #[prost(string, tag = "1")]
979    pub namespace: ::prost::alloc::string::String,
980    #[prost(string, tag = "2")]
981    pub id: ::prost::alloc::string::String,
982    #[prost(string, tag = "10")]
983    pub uid: ::prost::alloc::string::String,
984    #[prost(string, tag = "9")]
985    pub internal_id: ::prost::alloc::string::String,
986    #[prost(string, tag = "3")]
987    pub image: ::prost::alloc::string::String,
988    #[prost(uint32, tag = "4")]
989    pub pid: u32,
990    #[prost(string, tag = "5")]
991    pub status: ::prost::alloc::string::String,
992    #[prost(string, tag = "6")]
993    pub pod_id: ::prost::alloc::string::String,
994    #[prost(string, tag = "7")]
995    pub name: ::prost::alloc::string::String,
996    #[prost(string, tag = "8")]
997    pub network_namespace: ::prost::alloc::string::String,
998}
999/// The messages message containing the requested containers.
1000#[derive(Clone, PartialEq, ::prost::Message)]
1001pub struct Container {
1002    #[prost(message, optional, tag = "1")]
1003    pub metadata: ::core::option::Option<super::common::Metadata>,
1004    #[prost(message, repeated, tag = "2")]
1005    pub containers: ::prost::alloc::vec::Vec<ContainerInfo>,
1006}
1007#[derive(Clone, PartialEq, ::prost::Message)]
1008pub struct ContainersResponse {
1009    #[prost(message, repeated, tag = "1")]
1010    pub messages: ::prost::alloc::vec::Vec<Container>,
1011}
1012/// dmesg
1013#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1014pub struct DmesgRequest {
1015    #[prost(bool, tag = "1")]
1016    pub follow: bool,
1017    #[prost(bool, tag = "2")]
1018    pub tail: bool,
1019}
1020/// rpc processes
1021#[derive(Clone, PartialEq, ::prost::Message)]
1022pub struct ProcessesResponse {
1023    #[prost(message, repeated, tag = "1")]
1024    pub messages: ::prost::alloc::vec::Vec<Process>,
1025}
1026#[derive(Clone, PartialEq, ::prost::Message)]
1027pub struct Process {
1028    #[prost(message, optional, tag = "1")]
1029    pub metadata: ::core::option::Option<super::common::Metadata>,
1030    #[prost(message, repeated, tag = "2")]
1031    pub processes: ::prost::alloc::vec::Vec<ProcessInfo>,
1032}
1033#[derive(Clone, PartialEq, ::prost::Message)]
1034pub struct ProcessInfo {
1035    #[prost(int32, tag = "1")]
1036    pub pid: i32,
1037    #[prost(int32, tag = "2")]
1038    pub ppid: i32,
1039    #[prost(string, tag = "3")]
1040    pub state: ::prost::alloc::string::String,
1041    #[prost(int32, tag = "4")]
1042    pub threads: i32,
1043    #[prost(double, tag = "5")]
1044    pub cpu_time: f64,
1045    #[prost(uint64, tag = "6")]
1046    pub virtual_memory: u64,
1047    #[prost(uint64, tag = "7")]
1048    pub resident_memory: u64,
1049    #[prost(string, tag = "8")]
1050    pub command: ::prost::alloc::string::String,
1051    #[prost(string, tag = "9")]
1052    pub executable: ::prost::alloc::string::String,
1053    #[prost(string, tag = "10")]
1054    pub args: ::prost::alloc::string::String,
1055    #[prost(string, tag = "11")]
1056    pub label: ::prost::alloc::string::String,
1057}
1058/// rpc restart
1059/// The request message containing the process to restart.
1060#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1061pub struct RestartRequest {
1062    #[prost(string, tag = "1")]
1063    pub namespace: ::prost::alloc::string::String,
1064    #[prost(string, tag = "2")]
1065    pub id: ::prost::alloc::string::String,
1066    /// driver might be default "containerd" or "cri"
1067    #[prost(enumeration = "super::common::ContainerDriver", tag = "3")]
1068    pub driver: i32,
1069}
1070#[derive(Clone, PartialEq, ::prost::Message)]
1071pub struct Restart {
1072    #[prost(message, optional, tag = "1")]
1073    pub metadata: ::core::option::Option<super::common::Metadata>,
1074}
1075/// The messages message containing the restart status.
1076#[derive(Clone, PartialEq, ::prost::Message)]
1077pub struct RestartResponse {
1078    #[prost(message, repeated, tag = "1")]
1079    pub messages: ::prost::alloc::vec::Vec<Restart>,
1080}
1081/// The request message containing the containerd namespace.
1082#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1083pub struct StatsRequest {
1084    #[prost(string, tag = "1")]
1085    pub namespace: ::prost::alloc::string::String,
1086    /// driver might be default "containerd" or "cri"
1087    #[prost(enumeration = "super::common::ContainerDriver", tag = "2")]
1088    pub driver: i32,
1089}
1090/// The messages message containing the requested stats.
1091#[derive(Clone, PartialEq, ::prost::Message)]
1092pub struct Stats {
1093    #[prost(message, optional, tag = "1")]
1094    pub metadata: ::core::option::Option<super::common::Metadata>,
1095    #[prost(message, repeated, tag = "2")]
1096    pub stats: ::prost::alloc::vec::Vec<Stat>,
1097}
1098#[derive(Clone, PartialEq, ::prost::Message)]
1099pub struct StatsResponse {
1100    #[prost(message, repeated, tag = "1")]
1101    pub messages: ::prost::alloc::vec::Vec<Stats>,
1102}
1103/// The messages message containing the requested stat.
1104#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1105pub struct Stat {
1106    #[prost(string, tag = "1")]
1107    pub namespace: ::prost::alloc::string::String,
1108    #[prost(string, tag = "2")]
1109    pub id: ::prost::alloc::string::String,
1110    #[prost(uint64, tag = "4")]
1111    pub memory_usage: u64,
1112    #[prost(uint64, tag = "5")]
1113    pub cpu_usage: u64,
1114    #[prost(string, tag = "6")]
1115    pub pod_id: ::prost::alloc::string::String,
1116    #[prost(string, tag = "7")]
1117    pub name: ::prost::alloc::string::String,
1118}
1119#[derive(Clone, PartialEq, ::prost::Message)]
1120pub struct Memory {
1121    #[prost(message, optional, tag = "1")]
1122    pub metadata: ::core::option::Option<super::common::Metadata>,
1123    #[prost(message, optional, tag = "2")]
1124    pub meminfo: ::core::option::Option<MemInfo>,
1125}
1126#[derive(Clone, PartialEq, ::prost::Message)]
1127pub struct MemoryResponse {
1128    #[prost(message, repeated, tag = "1")]
1129    pub messages: ::prost::alloc::vec::Vec<Memory>,
1130}
1131#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1132pub struct MemInfo {
1133    #[prost(uint64, tag = "1")]
1134    pub memtotal: u64,
1135    #[prost(uint64, tag = "2")]
1136    pub memfree: u64,
1137    #[prost(uint64, tag = "3")]
1138    pub memavailable: u64,
1139    #[prost(uint64, tag = "4")]
1140    pub buffers: u64,
1141    #[prost(uint64, tag = "5")]
1142    pub cached: u64,
1143    #[prost(uint64, tag = "6")]
1144    pub swapcached: u64,
1145    #[prost(uint64, tag = "7")]
1146    pub active: u64,
1147    #[prost(uint64, tag = "8")]
1148    pub inactive: u64,
1149    #[prost(uint64, tag = "9")]
1150    pub activeanon: u64,
1151    #[prost(uint64, tag = "10")]
1152    pub inactiveanon: u64,
1153    #[prost(uint64, tag = "11")]
1154    pub activefile: u64,
1155    #[prost(uint64, tag = "12")]
1156    pub inactivefile: u64,
1157    #[prost(uint64, tag = "13")]
1158    pub unevictable: u64,
1159    #[prost(uint64, tag = "14")]
1160    pub mlocked: u64,
1161    #[prost(uint64, tag = "15")]
1162    pub swaptotal: u64,
1163    #[prost(uint64, tag = "16")]
1164    pub swapfree: u64,
1165    #[prost(uint64, tag = "17")]
1166    pub dirty: u64,
1167    #[prost(uint64, tag = "18")]
1168    pub writeback: u64,
1169    #[prost(uint64, tag = "19")]
1170    pub anonpages: u64,
1171    #[prost(uint64, tag = "20")]
1172    pub mapped: u64,
1173    #[prost(uint64, tag = "21")]
1174    pub shmem: u64,
1175    #[prost(uint64, tag = "22")]
1176    pub slab: u64,
1177    #[prost(uint64, tag = "23")]
1178    pub sreclaimable: u64,
1179    #[prost(uint64, tag = "24")]
1180    pub sunreclaim: u64,
1181    #[prost(uint64, tag = "25")]
1182    pub kernelstack: u64,
1183    #[prost(uint64, tag = "26")]
1184    pub pagetables: u64,
1185    #[prost(uint64, tag = "27")]
1186    pub nfsunstable: u64,
1187    #[prost(uint64, tag = "28")]
1188    pub bounce: u64,
1189    #[prost(uint64, tag = "29")]
1190    pub writebacktmp: u64,
1191    #[prost(uint64, tag = "30")]
1192    pub commitlimit: u64,
1193    #[prost(uint64, tag = "31")]
1194    pub committedas: u64,
1195    #[prost(uint64, tag = "32")]
1196    pub vmalloctotal: u64,
1197    #[prost(uint64, tag = "33")]
1198    pub vmallocused: u64,
1199    #[prost(uint64, tag = "34")]
1200    pub vmallocchunk: u64,
1201    #[prost(uint64, tag = "35")]
1202    pub hardwarecorrupted: u64,
1203    #[prost(uint64, tag = "36")]
1204    pub anonhugepages: u64,
1205    #[prost(uint64, tag = "37")]
1206    pub shmemhugepages: u64,
1207    #[prost(uint64, tag = "38")]
1208    pub shmempmdmapped: u64,
1209    #[prost(uint64, tag = "39")]
1210    pub cmatotal: u64,
1211    #[prost(uint64, tag = "40")]
1212    pub cmafree: u64,
1213    #[prost(uint64, tag = "41")]
1214    pub hugepagestotal: u64,
1215    #[prost(uint64, tag = "42")]
1216    pub hugepagesfree: u64,
1217    #[prost(uint64, tag = "43")]
1218    pub hugepagesrsvd: u64,
1219    #[prost(uint64, tag = "44")]
1220    pub hugepagessurp: u64,
1221    #[prost(uint64, tag = "45")]
1222    pub hugepagesize: u64,
1223    #[prost(uint64, tag = "46")]
1224    pub directmap4k: u64,
1225    #[prost(uint64, tag = "47")]
1226    pub directmap2m: u64,
1227    #[prost(uint64, tag = "48")]
1228    pub directmap1g: u64,
1229}
1230#[derive(Clone, PartialEq, ::prost::Message)]
1231pub struct HostnameResponse {
1232    #[prost(message, repeated, tag = "1")]
1233    pub messages: ::prost::alloc::vec::Vec<Hostname>,
1234}
1235#[derive(Clone, PartialEq, ::prost::Message)]
1236pub struct Hostname {
1237    #[prost(message, optional, tag = "1")]
1238    pub metadata: ::core::option::Option<super::common::Metadata>,
1239    #[prost(string, tag = "2")]
1240    pub hostname: ::prost::alloc::string::String,
1241}
1242#[derive(Clone, PartialEq, ::prost::Message)]
1243pub struct LoadAvgResponse {
1244    #[prost(message, repeated, tag = "1")]
1245    pub messages: ::prost::alloc::vec::Vec<LoadAvg>,
1246}
1247#[derive(Clone, PartialEq, ::prost::Message)]
1248pub struct LoadAvg {
1249    #[prost(message, optional, tag = "1")]
1250    pub metadata: ::core::option::Option<super::common::Metadata>,
1251    #[prost(double, tag = "2")]
1252    pub load1: f64,
1253    #[prost(double, tag = "3")]
1254    pub load5: f64,
1255    #[prost(double, tag = "4")]
1256    pub load15: f64,
1257}
1258#[derive(Clone, PartialEq, ::prost::Message)]
1259pub struct SystemStatResponse {
1260    #[prost(message, repeated, tag = "1")]
1261    pub messages: ::prost::alloc::vec::Vec<SystemStat>,
1262}
1263#[derive(Clone, PartialEq, ::prost::Message)]
1264pub struct SystemStat {
1265    #[prost(message, optional, tag = "1")]
1266    pub metadata: ::core::option::Option<super::common::Metadata>,
1267    #[prost(uint64, tag = "2")]
1268    pub boot_time: u64,
1269    #[prost(message, optional, tag = "3")]
1270    pub cpu_total: ::core::option::Option<CpuStat>,
1271    #[prost(message, repeated, tag = "4")]
1272    pub cpu: ::prost::alloc::vec::Vec<CpuStat>,
1273    #[prost(uint64, tag = "5")]
1274    pub irq_total: u64,
1275    #[prost(uint64, repeated, tag = "6")]
1276    pub irq: ::prost::alloc::vec::Vec<u64>,
1277    #[prost(uint64, tag = "7")]
1278    pub context_switches: u64,
1279    #[prost(uint64, tag = "8")]
1280    pub process_created: u64,
1281    #[prost(uint64, tag = "9")]
1282    pub process_running: u64,
1283    #[prost(uint64, tag = "10")]
1284    pub process_blocked: u64,
1285    #[prost(uint64, tag = "11")]
1286    pub soft_irq_total: u64,
1287    #[prost(message, optional, tag = "12")]
1288    pub soft_irq: ::core::option::Option<SoftIrqStat>,
1289}
1290#[derive(Clone, Copy, PartialEq, ::prost::Message)]
1291pub struct CpuStat {
1292    #[prost(double, tag = "1")]
1293    pub user: f64,
1294    #[prost(double, tag = "2")]
1295    pub nice: f64,
1296    #[prost(double, tag = "3")]
1297    pub system: f64,
1298    #[prost(double, tag = "4")]
1299    pub idle: f64,
1300    #[prost(double, tag = "5")]
1301    pub iowait: f64,
1302    #[prost(double, tag = "6")]
1303    pub irq: f64,
1304    #[prost(double, tag = "7")]
1305    pub soft_irq: f64,
1306    #[prost(double, tag = "8")]
1307    pub steal: f64,
1308    #[prost(double, tag = "9")]
1309    pub guest: f64,
1310    #[prost(double, tag = "10")]
1311    pub guest_nice: f64,
1312}
1313#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1314pub struct SoftIrqStat {
1315    #[prost(uint64, tag = "1")]
1316    pub hi: u64,
1317    #[prost(uint64, tag = "2")]
1318    pub timer: u64,
1319    #[prost(uint64, tag = "3")]
1320    pub net_tx: u64,
1321    #[prost(uint64, tag = "4")]
1322    pub net_rx: u64,
1323    #[prost(uint64, tag = "5")]
1324    pub block: u64,
1325    #[prost(uint64, tag = "6")]
1326    pub block_io_poll: u64,
1327    #[prost(uint64, tag = "7")]
1328    pub tasklet: u64,
1329    #[prost(uint64, tag = "8")]
1330    pub sched: u64,
1331    #[prost(uint64, tag = "9")]
1332    pub hrtimer: u64,
1333    #[prost(uint64, tag = "10")]
1334    pub rcu: u64,
1335}
1336#[derive(Clone, PartialEq, ::prost::Message)]
1337pub struct CpuFreqStatsResponse {
1338    #[prost(message, repeated, tag = "1")]
1339    pub messages: ::prost::alloc::vec::Vec<CpUsFreqStats>,
1340}
1341#[derive(Clone, PartialEq, ::prost::Message)]
1342pub struct CpUsFreqStats {
1343    #[prost(message, optional, tag = "1")]
1344    pub metadata: ::core::option::Option<super::common::Metadata>,
1345    #[prost(message, repeated, tag = "2")]
1346    pub cpu_freq_stats: ::prost::alloc::vec::Vec<CpuFreqStats>,
1347}
1348#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1349pub struct CpuFreqStats {
1350    #[prost(uint64, tag = "1")]
1351    pub current_frequency: u64,
1352    #[prost(uint64, tag = "2")]
1353    pub minimum_frequency: u64,
1354    #[prost(uint64, tag = "3")]
1355    pub maximum_frequency: u64,
1356    #[prost(string, tag = "4")]
1357    pub governor: ::prost::alloc::string::String,
1358}
1359#[derive(Clone, PartialEq, ::prost::Message)]
1360pub struct CpuInfoResponse {
1361    #[prost(message, repeated, tag = "1")]
1362    pub messages: ::prost::alloc::vec::Vec<CpUsInfo>,
1363}
1364#[derive(Clone, PartialEq, ::prost::Message)]
1365pub struct CpUsInfo {
1366    #[prost(message, optional, tag = "1")]
1367    pub metadata: ::core::option::Option<super::common::Metadata>,
1368    #[prost(message, repeated, tag = "2")]
1369    pub cpu_info: ::prost::alloc::vec::Vec<CpuInfo>,
1370}
1371#[derive(Clone, PartialEq, ::prost::Message)]
1372pub struct CpuInfo {
1373    #[prost(uint32, tag = "1")]
1374    pub processor: u32,
1375    #[prost(string, tag = "2")]
1376    pub vendor_id: ::prost::alloc::string::String,
1377    #[prost(string, tag = "3")]
1378    pub cpu_family: ::prost::alloc::string::String,
1379    #[prost(string, tag = "4")]
1380    pub model: ::prost::alloc::string::String,
1381    #[prost(string, tag = "5")]
1382    pub model_name: ::prost::alloc::string::String,
1383    #[prost(string, tag = "6")]
1384    pub stepping: ::prost::alloc::string::String,
1385    #[prost(string, tag = "7")]
1386    pub microcode: ::prost::alloc::string::String,
1387    #[prost(double, tag = "8")]
1388    pub cpu_mhz: f64,
1389    #[prost(string, tag = "9")]
1390    pub cache_size: ::prost::alloc::string::String,
1391    #[prost(string, tag = "10")]
1392    pub physical_id: ::prost::alloc::string::String,
1393    #[prost(uint32, tag = "11")]
1394    pub siblings: u32,
1395    #[prost(string, tag = "12")]
1396    pub core_id: ::prost::alloc::string::String,
1397    #[prost(uint32, tag = "13")]
1398    pub cpu_cores: u32,
1399    #[prost(string, tag = "14")]
1400    pub apic_id: ::prost::alloc::string::String,
1401    #[prost(string, tag = "15")]
1402    pub initial_apic_id: ::prost::alloc::string::String,
1403    #[prost(string, tag = "16")]
1404    pub fpu: ::prost::alloc::string::String,
1405    #[prost(string, tag = "17")]
1406    pub fpu_exception: ::prost::alloc::string::String,
1407    #[prost(uint32, tag = "18")]
1408    pub cpu_id_level: u32,
1409    #[prost(string, tag = "19")]
1410    pub wp: ::prost::alloc::string::String,
1411    #[prost(string, repeated, tag = "20")]
1412    pub flags: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1413    #[prost(string, repeated, tag = "21")]
1414    pub bugs: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1415    #[prost(double, tag = "22")]
1416    pub bogo_mips: f64,
1417    #[prost(uint32, tag = "23")]
1418    pub cl_flush_size: u32,
1419    #[prost(uint32, tag = "24")]
1420    pub cache_alignment: u32,
1421    #[prost(string, tag = "25")]
1422    pub address_sizes: ::prost::alloc::string::String,
1423    #[prost(string, tag = "26")]
1424    pub power_management: ::prost::alloc::string::String,
1425}
1426#[derive(Clone, PartialEq, ::prost::Message)]
1427pub struct NetworkDeviceStatsResponse {
1428    #[prost(message, repeated, tag = "1")]
1429    pub messages: ::prost::alloc::vec::Vec<NetworkDeviceStats>,
1430}
1431#[derive(Clone, PartialEq, ::prost::Message)]
1432pub struct NetworkDeviceStats {
1433    #[prost(message, optional, tag = "1")]
1434    pub metadata: ::core::option::Option<super::common::Metadata>,
1435    #[prost(message, optional, tag = "2")]
1436    pub total: ::core::option::Option<NetDev>,
1437    #[prost(message, repeated, tag = "3")]
1438    pub devices: ::prost::alloc::vec::Vec<NetDev>,
1439}
1440#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1441pub struct NetDev {
1442    #[prost(string, tag = "1")]
1443    pub name: ::prost::alloc::string::String,
1444    #[prost(uint64, tag = "2")]
1445    pub rx_bytes: u64,
1446    #[prost(uint64, tag = "3")]
1447    pub rx_packets: u64,
1448    #[prost(uint64, tag = "4")]
1449    pub rx_errors: u64,
1450    #[prost(uint64, tag = "5")]
1451    pub rx_dropped: u64,
1452    #[prost(uint64, tag = "6")]
1453    pub rx_fifo: u64,
1454    #[prost(uint64, tag = "7")]
1455    pub rx_frame: u64,
1456    #[prost(uint64, tag = "8")]
1457    pub rx_compressed: u64,
1458    #[prost(uint64, tag = "9")]
1459    pub rx_multicast: u64,
1460    #[prost(uint64, tag = "10")]
1461    pub tx_bytes: u64,
1462    #[prost(uint64, tag = "11")]
1463    pub tx_packets: u64,
1464    #[prost(uint64, tag = "12")]
1465    pub tx_errors: u64,
1466    #[prost(uint64, tag = "13")]
1467    pub tx_dropped: u64,
1468    #[prost(uint64, tag = "14")]
1469    pub tx_fifo: u64,
1470    #[prost(uint64, tag = "15")]
1471    pub tx_collisions: u64,
1472    #[prost(uint64, tag = "16")]
1473    pub tx_carrier: u64,
1474    #[prost(uint64, tag = "17")]
1475    pub tx_compressed: u64,
1476}
1477#[derive(Clone, PartialEq, ::prost::Message)]
1478pub struct DiskStatsResponse {
1479    #[prost(message, repeated, tag = "1")]
1480    pub messages: ::prost::alloc::vec::Vec<DiskStats>,
1481}
1482#[derive(Clone, PartialEq, ::prost::Message)]
1483pub struct DiskStats {
1484    #[prost(message, optional, tag = "1")]
1485    pub metadata: ::core::option::Option<super::common::Metadata>,
1486    #[prost(message, optional, tag = "2")]
1487    pub total: ::core::option::Option<DiskStat>,
1488    #[prost(message, repeated, tag = "3")]
1489    pub devices: ::prost::alloc::vec::Vec<DiskStat>,
1490}
1491#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1492pub struct DiskStat {
1493    #[prost(string, tag = "1")]
1494    pub name: ::prost::alloc::string::String,
1495    #[prost(uint64, tag = "2")]
1496    pub read_completed: u64,
1497    #[prost(uint64, tag = "3")]
1498    pub read_merged: u64,
1499    #[prost(uint64, tag = "4")]
1500    pub read_sectors: u64,
1501    #[prost(uint64, tag = "5")]
1502    pub read_time_ms: u64,
1503    #[prost(uint64, tag = "6")]
1504    pub write_completed: u64,
1505    #[prost(uint64, tag = "7")]
1506    pub write_merged: u64,
1507    #[prost(uint64, tag = "8")]
1508    pub write_sectors: u64,
1509    #[prost(uint64, tag = "9")]
1510    pub write_time_ms: u64,
1511    #[prost(uint64, tag = "10")]
1512    pub io_in_progress: u64,
1513    #[prost(uint64, tag = "11")]
1514    pub io_time_ms: u64,
1515    #[prost(uint64, tag = "12")]
1516    pub io_time_weighted_ms: u64,
1517    #[prost(uint64, tag = "13")]
1518    pub discard_completed: u64,
1519    #[prost(uint64, tag = "14")]
1520    pub discard_merged: u64,
1521    #[prost(uint64, tag = "15")]
1522    pub discard_sectors: u64,
1523    #[prost(uint64, tag = "16")]
1524    pub discard_time_ms: u64,
1525}
1526#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1527pub struct EtcdLeaveClusterRequest {}
1528#[derive(Clone, PartialEq, ::prost::Message)]
1529pub struct EtcdLeaveCluster {
1530    #[prost(message, optional, tag = "1")]
1531    pub metadata: ::core::option::Option<super::common::Metadata>,
1532}
1533#[derive(Clone, PartialEq, ::prost::Message)]
1534pub struct EtcdLeaveClusterResponse {
1535    #[prost(message, repeated, tag = "1")]
1536    pub messages: ::prost::alloc::vec::Vec<EtcdLeaveCluster>,
1537}
1538#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1539pub struct EtcdRemoveMemberRequest {
1540    #[prost(string, tag = "1")]
1541    pub member: ::prost::alloc::string::String,
1542}
1543#[derive(Clone, PartialEq, ::prost::Message)]
1544pub struct EtcdRemoveMember {
1545    #[prost(message, optional, tag = "1")]
1546    pub metadata: ::core::option::Option<super::common::Metadata>,
1547}
1548#[derive(Clone, PartialEq, ::prost::Message)]
1549pub struct EtcdRemoveMemberResponse {
1550    #[prost(message, repeated, tag = "1")]
1551    pub messages: ::prost::alloc::vec::Vec<EtcdRemoveMember>,
1552}
1553#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1554pub struct EtcdRemoveMemberByIdRequest {
1555    #[prost(uint64, tag = "1")]
1556    pub member_id: u64,
1557}
1558#[derive(Clone, PartialEq, ::prost::Message)]
1559pub struct EtcdRemoveMemberById {
1560    #[prost(message, optional, tag = "1")]
1561    pub metadata: ::core::option::Option<super::common::Metadata>,
1562}
1563#[derive(Clone, PartialEq, ::prost::Message)]
1564pub struct EtcdRemoveMemberByIdResponse {
1565    #[prost(message, repeated, tag = "1")]
1566    pub messages: ::prost::alloc::vec::Vec<EtcdRemoveMemberById>,
1567}
1568#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1569pub struct EtcdForfeitLeadershipRequest {}
1570#[derive(Clone, PartialEq, ::prost::Message)]
1571pub struct EtcdForfeitLeadership {
1572    #[prost(message, optional, tag = "1")]
1573    pub metadata: ::core::option::Option<super::common::Metadata>,
1574    #[prost(string, tag = "2")]
1575    pub member: ::prost::alloc::string::String,
1576}
1577#[derive(Clone, PartialEq, ::prost::Message)]
1578pub struct EtcdForfeitLeadershipResponse {
1579    #[prost(message, repeated, tag = "1")]
1580    pub messages: ::prost::alloc::vec::Vec<EtcdForfeitLeadership>,
1581}
1582#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1583pub struct EtcdMemberListRequest {
1584    #[prost(bool, tag = "1")]
1585    pub query_local: bool,
1586}
1587/// EtcdMember describes a single etcd member.
1588#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1589pub struct EtcdMember {
1590    /// member ID.
1591    #[prost(uint64, tag = "2")]
1592    pub id: u64,
1593    /// human-readable name of the member.
1594    #[prost(string, tag = "3")]
1595    pub hostname: ::prost::alloc::string::String,
1596    /// the list of URLs the member exposes to clients for communication.
1597    #[prost(string, repeated, tag = "4")]
1598    pub peer_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1599    /// the list of URLs the member exposes to the cluster for communication.
1600    #[prost(string, repeated, tag = "5")]
1601    pub client_urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1602    /// learner flag
1603    #[prost(bool, tag = "6")]
1604    pub is_learner: bool,
1605}
1606/// EtcdMembers contains the list of members registered on the host.
1607#[derive(Clone, PartialEq, ::prost::Message)]
1608pub struct EtcdMembers {
1609    #[prost(message, optional, tag = "1")]
1610    pub metadata: ::core::option::Option<super::common::Metadata>,
1611    /// list of member hostnames.
1612    #[prost(string, repeated, tag = "2")]
1613    pub legacy_members: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1614    /// the list of etcd members registered on the node.
1615    #[prost(message, repeated, tag = "3")]
1616    pub members: ::prost::alloc::vec::Vec<EtcdMember>,
1617}
1618#[derive(Clone, PartialEq, ::prost::Message)]
1619pub struct EtcdMemberListResponse {
1620    #[prost(message, repeated, tag = "1")]
1621    pub messages: ::prost::alloc::vec::Vec<EtcdMembers>,
1622}
1623#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1624pub struct EtcdSnapshotRequest {}
1625#[derive(Clone, PartialEq, ::prost::Message)]
1626pub struct EtcdRecover {
1627    #[prost(message, optional, tag = "1")]
1628    pub metadata: ::core::option::Option<super::common::Metadata>,
1629}
1630#[derive(Clone, PartialEq, ::prost::Message)]
1631pub struct EtcdRecoverResponse {
1632    #[prost(message, repeated, tag = "1")]
1633    pub messages: ::prost::alloc::vec::Vec<EtcdRecover>,
1634}
1635#[derive(Clone, PartialEq, ::prost::Message)]
1636pub struct EtcdAlarmListResponse {
1637    #[prost(message, repeated, tag = "1")]
1638    pub messages: ::prost::alloc::vec::Vec<EtcdAlarm>,
1639}
1640#[derive(Clone, PartialEq, ::prost::Message)]
1641pub struct EtcdAlarm {
1642    #[prost(message, optional, tag = "1")]
1643    pub metadata: ::core::option::Option<super::common::Metadata>,
1644    #[prost(message, repeated, tag = "2")]
1645    pub member_alarms: ::prost::alloc::vec::Vec<EtcdMemberAlarm>,
1646}
1647#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1648pub struct EtcdMemberAlarm {
1649    #[prost(uint64, tag = "1")]
1650    pub member_id: u64,
1651    #[prost(enumeration = "etcd_member_alarm::AlarmType", tag = "2")]
1652    pub alarm: i32,
1653}
1654/// Nested message and enum types in `EtcdMemberAlarm`.
1655pub mod etcd_member_alarm {
1656    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1657    #[repr(i32)]
1658    pub enum AlarmType {
1659        None = 0,
1660        Nospace = 1,
1661        Corrupt = 2,
1662    }
1663    impl AlarmType {
1664        /// String value of the enum field names used in the ProtoBuf definition.
1665        ///
1666        /// The values are not transformed in any way and thus are considered stable
1667        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1668        pub fn as_str_name(&self) -> &'static str {
1669            match self {
1670                Self::None => "NONE",
1671                Self::Nospace => "NOSPACE",
1672                Self::Corrupt => "CORRUPT",
1673            }
1674        }
1675        /// Creates an enum from field names used in the ProtoBuf definition.
1676        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1677            match value {
1678                "NONE" => Some(Self::None),
1679                "NOSPACE" => Some(Self::Nospace),
1680                "CORRUPT" => Some(Self::Corrupt),
1681                _ => None,
1682            }
1683        }
1684    }
1685}
1686#[derive(Clone, PartialEq, ::prost::Message)]
1687pub struct EtcdAlarmDisarmResponse {
1688    #[prost(message, repeated, tag = "1")]
1689    pub messages: ::prost::alloc::vec::Vec<EtcdAlarmDisarm>,
1690}
1691#[derive(Clone, PartialEq, ::prost::Message)]
1692pub struct EtcdAlarmDisarm {
1693    #[prost(message, optional, tag = "1")]
1694    pub metadata: ::core::option::Option<super::common::Metadata>,
1695    #[prost(message, repeated, tag = "2")]
1696    pub member_alarms: ::prost::alloc::vec::Vec<EtcdMemberAlarm>,
1697}
1698#[derive(Clone, PartialEq, ::prost::Message)]
1699pub struct EtcdDefragmentResponse {
1700    #[prost(message, repeated, tag = "1")]
1701    pub messages: ::prost::alloc::vec::Vec<EtcdDefragment>,
1702}
1703#[derive(Clone, PartialEq, ::prost::Message)]
1704pub struct EtcdDefragment {
1705    #[prost(message, optional, tag = "1")]
1706    pub metadata: ::core::option::Option<super::common::Metadata>,
1707}
1708#[derive(Clone, PartialEq, ::prost::Message)]
1709pub struct EtcdStatusResponse {
1710    #[prost(message, repeated, tag = "1")]
1711    pub messages: ::prost::alloc::vec::Vec<EtcdStatus>,
1712}
1713#[derive(Clone, PartialEq, ::prost::Message)]
1714pub struct EtcdStatus {
1715    #[prost(message, optional, tag = "1")]
1716    pub metadata: ::core::option::Option<super::common::Metadata>,
1717    #[prost(message, optional, tag = "2")]
1718    pub member_status: ::core::option::Option<EtcdMemberStatus>,
1719}
1720#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1721pub struct EtcdMemberStatus {
1722    #[prost(string, tag = "11")]
1723    pub storage_version: ::prost::alloc::string::String,
1724    #[prost(uint64, tag = "10")]
1725    pub member_id: u64,
1726    #[prost(string, tag = "1")]
1727    pub protocol_version: ::prost::alloc::string::String,
1728    #[prost(int64, tag = "2")]
1729    pub db_size: i64,
1730    #[prost(int64, tag = "3")]
1731    pub db_size_in_use: i64,
1732    #[prost(uint64, tag = "4")]
1733    pub leader: u64,
1734    #[prost(uint64, tag = "5")]
1735    pub raft_index: u64,
1736    #[prost(uint64, tag = "6")]
1737    pub raft_term: u64,
1738    #[prost(uint64, tag = "7")]
1739    pub raft_applied_index: u64,
1740    #[prost(string, repeated, tag = "8")]
1741    pub errors: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1742    #[prost(bool, tag = "9")]
1743    pub is_learner: bool,
1744}
1745#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1746pub struct EtcdDowngradeValidateRequest {
1747    #[prost(string, tag = "1")]
1748    pub version: ::prost::alloc::string::String,
1749}
1750#[derive(Clone, PartialEq, ::prost::Message)]
1751pub struct EtcdDowngradeValidateResponse {
1752    #[prost(message, repeated, tag = "1")]
1753    pub messages: ::prost::alloc::vec::Vec<EtcdDowngradeValidate>,
1754}
1755#[derive(Clone, PartialEq, ::prost::Message)]
1756pub struct EtcdDowngradeValidate {
1757    #[prost(message, optional, tag = "1")]
1758    pub metadata: ::core::option::Option<super::common::Metadata>,
1759    #[prost(message, optional, tag = "2")]
1760    pub cluster_downgrade: ::core::option::Option<EtcdClusterDowngrade>,
1761}
1762#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1763pub struct EtcdDowngradeEnableRequest {
1764    #[prost(string, tag = "1")]
1765    pub version: ::prost::alloc::string::String,
1766}
1767#[derive(Clone, PartialEq, ::prost::Message)]
1768pub struct EtcdDowngradeEnableResponse {
1769    #[prost(message, repeated, tag = "1")]
1770    pub messages: ::prost::alloc::vec::Vec<EtcdDowngradeEnable>,
1771}
1772#[derive(Clone, PartialEq, ::prost::Message)]
1773pub struct EtcdDowngradeEnable {
1774    #[prost(message, optional, tag = "1")]
1775    pub metadata: ::core::option::Option<super::common::Metadata>,
1776    #[prost(message, optional, tag = "2")]
1777    pub cluster_downgrade: ::core::option::Option<EtcdClusterDowngrade>,
1778}
1779#[derive(Clone, PartialEq, ::prost::Message)]
1780pub struct EtcdDowngradeCancelResponse {
1781    #[prost(message, repeated, tag = "1")]
1782    pub messages: ::prost::alloc::vec::Vec<EtcdDowngradeCancel>,
1783}
1784#[derive(Clone, PartialEq, ::prost::Message)]
1785pub struct EtcdDowngradeCancel {
1786    #[prost(message, optional, tag = "1")]
1787    pub metadata: ::core::option::Option<super::common::Metadata>,
1788    #[prost(message, optional, tag = "2")]
1789    pub cluster_downgrade: ::core::option::Option<EtcdClusterDowngrade>,
1790}
1791#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1792pub struct EtcdClusterDowngrade {
1793    #[prost(string, tag = "1")]
1794    pub cluster_version: ::prost::alloc::string::String,
1795}
1796#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1797pub struct RouteConfig {
1798    #[prost(string, tag = "1")]
1799    pub network: ::prost::alloc::string::String,
1800    #[prost(string, tag = "2")]
1801    pub gateway: ::prost::alloc::string::String,
1802    #[prost(uint32, tag = "3")]
1803    pub metric: u32,
1804}
1805#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1806pub struct DhcpOptionsConfig {
1807    #[prost(uint32, tag = "1")]
1808    pub route_metric: u32,
1809}
1810#[derive(Clone, PartialEq, ::prost::Message)]
1811pub struct NetworkDeviceConfig {
1812    #[prost(string, tag = "1")]
1813    pub interface: ::prost::alloc::string::String,
1814    #[prost(string, tag = "2")]
1815    pub cidr: ::prost::alloc::string::String,
1816    #[prost(int32, tag = "3")]
1817    pub mtu: i32,
1818    #[prost(bool, tag = "4")]
1819    pub dhcp: bool,
1820    #[prost(bool, tag = "5")]
1821    pub ignore: bool,
1822    #[prost(message, optional, tag = "6")]
1823    pub dhcp_options: ::core::option::Option<DhcpOptionsConfig>,
1824    #[prost(message, repeated, tag = "7")]
1825    pub routes: ::prost::alloc::vec::Vec<RouteConfig>,
1826}
1827#[derive(Clone, PartialEq, ::prost::Message)]
1828pub struct NetworkConfig {
1829    #[prost(string, tag = "1")]
1830    pub hostname: ::prost::alloc::string::String,
1831    #[prost(message, repeated, tag = "2")]
1832    pub interfaces: ::prost::alloc::vec::Vec<NetworkDeviceConfig>,
1833}
1834#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1835pub struct InstallConfig {
1836    #[prost(string, tag = "1")]
1837    pub install_disk: ::prost::alloc::string::String,
1838    #[prost(string, tag = "2")]
1839    pub install_image: ::prost::alloc::string::String,
1840}
1841#[derive(Clone, PartialEq, ::prost::Message)]
1842pub struct MachineConfig {
1843    #[prost(enumeration = "machine_config::MachineType", tag = "1")]
1844    pub r#type: i32,
1845    #[prost(message, optional, tag = "2")]
1846    pub install_config: ::core::option::Option<InstallConfig>,
1847    #[prost(message, optional, tag = "3")]
1848    pub network_config: ::core::option::Option<NetworkConfig>,
1849    #[prost(string, tag = "4")]
1850    pub kubernetes_version: ::prost::alloc::string::String,
1851}
1852/// Nested message and enum types in `MachineConfig`.
1853pub mod machine_config {
1854    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
1855    #[repr(i32)]
1856    pub enum MachineType {
1857        TypeUnknown = 0,
1858        TypeInit = 1,
1859        TypeControlPlane = 2,
1860        TypeWorker = 3,
1861    }
1862    impl MachineType {
1863        /// String value of the enum field names used in the ProtoBuf definition.
1864        ///
1865        /// The values are not transformed in any way and thus are considered stable
1866        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
1867        pub fn as_str_name(&self) -> &'static str {
1868            match self {
1869                Self::TypeUnknown => "TYPE_UNKNOWN",
1870                Self::TypeInit => "TYPE_INIT",
1871                Self::TypeControlPlane => "TYPE_CONTROL_PLANE",
1872                Self::TypeWorker => "TYPE_WORKER",
1873            }
1874        }
1875        /// Creates an enum from field names used in the ProtoBuf definition.
1876        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
1877            match value {
1878                "TYPE_UNKNOWN" => Some(Self::TypeUnknown),
1879                "TYPE_INIT" => Some(Self::TypeInit),
1880                "TYPE_CONTROL_PLANE" => Some(Self::TypeControlPlane),
1881                "TYPE_WORKER" => Some(Self::TypeWorker),
1882                _ => None,
1883            }
1884        }
1885    }
1886}
1887#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1888pub struct ControlPlaneConfig {
1889    #[prost(string, tag = "1")]
1890    pub endpoint: ::prost::alloc::string::String,
1891}
1892#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1893pub struct CniConfig {
1894    #[prost(string, tag = "1")]
1895    pub name: ::prost::alloc::string::String,
1896    #[prost(string, repeated, tag = "2")]
1897    pub urls: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1898}
1899#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1900pub struct ClusterNetworkConfig {
1901    #[prost(string, tag = "1")]
1902    pub dns_domain: ::prost::alloc::string::String,
1903    #[prost(message, optional, tag = "2")]
1904    pub cni_config: ::core::option::Option<CniConfig>,
1905}
1906#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1907pub struct ClusterConfig {
1908    #[prost(string, tag = "1")]
1909    pub name: ::prost::alloc::string::String,
1910    #[prost(message, optional, tag = "2")]
1911    pub control_plane: ::core::option::Option<ControlPlaneConfig>,
1912    #[prost(message, optional, tag = "3")]
1913    pub cluster_network: ::core::option::Option<ClusterNetworkConfig>,
1914    #[prost(bool, tag = "4")]
1915    pub allow_scheduling_on_control_planes: bool,
1916}
1917#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1918pub struct GenerateClientConfigurationRequest {
1919    /// Roles in the generated client certificate.
1920    #[prost(string, repeated, tag = "1")]
1921    pub roles: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
1922    /// Client certificate TTL.
1923    #[prost(message, optional, tag = "2")]
1924    pub crt_ttl: ::core::option::Option<::prost_types::Duration>,
1925}
1926#[derive(Clone, PartialEq, ::prost::Message)]
1927pub struct GenerateClientConfiguration {
1928    #[prost(message, optional, tag = "1")]
1929    pub metadata: ::core::option::Option<super::common::Metadata>,
1930    /// PEM-encoded CA certificate.
1931    #[prost(bytes = "vec", tag = "2")]
1932    pub ca: ::prost::alloc::vec::Vec<u8>,
1933    /// PEM-encoded generated client certificate.
1934    #[prost(bytes = "vec", tag = "3")]
1935    pub crt: ::prost::alloc::vec::Vec<u8>,
1936    /// PEM-encoded generated client key.
1937    #[prost(bytes = "vec", tag = "4")]
1938    pub key: ::prost::alloc::vec::Vec<u8>,
1939    /// Client configuration (talosconfig) file content.
1940    #[prost(bytes = "vec", tag = "5")]
1941    pub talosconfig: ::prost::alloc::vec::Vec<u8>,
1942}
1943#[derive(Clone, PartialEq, ::prost::Message)]
1944pub struct GenerateClientConfigurationResponse {
1945    #[prost(message, repeated, tag = "1")]
1946    pub messages: ::prost::alloc::vec::Vec<GenerateClientConfiguration>,
1947}
1948#[derive(Clone, PartialEq, ::prost::Message)]
1949pub struct PacketCaptureRequest {
1950    /// Interface name to perform packet capture on.
1951    #[prost(string, tag = "1")]
1952    pub interface: ::prost::alloc::string::String,
1953    /// Enable promiscuous mode.
1954    #[prost(bool, tag = "2")]
1955    pub promiscuous: bool,
1956    /// Snap length in bytes.
1957    #[prost(uint32, tag = "3")]
1958    pub snap_len: u32,
1959    /// BPF filter.
1960    #[prost(message, repeated, tag = "4")]
1961    pub bpf_filter: ::prost::alloc::vec::Vec<BpfInstruction>,
1962}
1963#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1964pub struct BpfInstruction {
1965    #[prost(uint32, tag = "1")]
1966    pub op: u32,
1967    #[prost(uint32, tag = "2")]
1968    pub jt: u32,
1969    #[prost(uint32, tag = "3")]
1970    pub jf: u32,
1971    #[prost(uint32, tag = "4")]
1972    pub k: u32,
1973}
1974#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
1975pub struct NetstatRequest {
1976    #[prost(enumeration = "netstat_request::Filter", tag = "1")]
1977    pub filter: i32,
1978    #[prost(message, optional, tag = "2")]
1979    pub feature: ::core::option::Option<netstat_request::Feature>,
1980    #[prost(message, optional, tag = "3")]
1981    pub l4proto: ::core::option::Option<netstat_request::L4proto>,
1982    #[prost(message, optional, tag = "4")]
1983    pub netns: ::core::option::Option<netstat_request::NetNs>,
1984}
1985/// Nested message and enum types in `NetstatRequest`.
1986pub mod netstat_request {
1987    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1988    pub struct Feature {
1989        #[prost(bool, tag = "1")]
1990        pub pid: bool,
1991    }
1992    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
1993    pub struct L4proto {
1994        #[prost(bool, tag = "1")]
1995        pub tcp: bool,
1996        #[prost(bool, tag = "2")]
1997        pub tcp6: bool,
1998        #[prost(bool, tag = "3")]
1999        pub udp: bool,
2000        #[prost(bool, tag = "4")]
2001        pub udp6: bool,
2002        #[prost(bool, tag = "5")]
2003        pub udplite: bool,
2004        #[prost(bool, tag = "6")]
2005        pub udplite6: bool,
2006        #[prost(bool, tag = "7")]
2007        pub raw: bool,
2008        #[prost(bool, tag = "8")]
2009        pub raw6: bool,
2010    }
2011    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2012    pub struct NetNs {
2013        #[prost(bool, tag = "1")]
2014        pub hostnetwork: bool,
2015        #[prost(string, repeated, tag = "2")]
2016        pub netns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
2017        #[prost(bool, tag = "3")]
2018        pub allnetns: bool,
2019    }
2020    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2021    #[repr(i32)]
2022    pub enum Filter {
2023        All = 0,
2024        Connected = 1,
2025        Listening = 2,
2026    }
2027    impl Filter {
2028        /// String value of the enum field names used in the ProtoBuf definition.
2029        ///
2030        /// The values are not transformed in any way and thus are considered stable
2031        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2032        pub fn as_str_name(&self) -> &'static str {
2033            match self {
2034                Self::All => "ALL",
2035                Self::Connected => "CONNECTED",
2036                Self::Listening => "LISTENING",
2037            }
2038        }
2039        /// Creates an enum from field names used in the ProtoBuf definition.
2040        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2041            match value {
2042                "ALL" => Some(Self::All),
2043                "CONNECTED" => Some(Self::Connected),
2044                "LISTENING" => Some(Self::Listening),
2045                _ => None,
2046            }
2047        }
2048    }
2049}
2050#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2051pub struct ConnectRecord {
2052    #[prost(string, tag = "1")]
2053    pub l4proto: ::prost::alloc::string::String,
2054    #[prost(string, tag = "2")]
2055    pub localip: ::prost::alloc::string::String,
2056    #[prost(uint32, tag = "3")]
2057    pub localport: u32,
2058    #[prost(string, tag = "4")]
2059    pub remoteip: ::prost::alloc::string::String,
2060    #[prost(uint32, tag = "5")]
2061    pub remoteport: u32,
2062    #[prost(enumeration = "connect_record::State", tag = "6")]
2063    pub state: i32,
2064    #[prost(uint64, tag = "7")]
2065    pub txqueue: u64,
2066    #[prost(uint64, tag = "8")]
2067    pub rxqueue: u64,
2068    #[prost(enumeration = "connect_record::TimerActive", tag = "9")]
2069    pub tr: i32,
2070    #[prost(uint64, tag = "10")]
2071    pub timerwhen: u64,
2072    #[prost(uint64, tag = "11")]
2073    pub retrnsmt: u64,
2074    #[prost(uint32, tag = "12")]
2075    pub uid: u32,
2076    #[prost(uint64, tag = "13")]
2077    pub timeout: u64,
2078    #[prost(uint64, tag = "14")]
2079    pub inode: u64,
2080    #[prost(uint64, tag = "15")]
2081    pub r#ref: u64,
2082    #[prost(uint64, tag = "16")]
2083    pub pointer: u64,
2084    #[prost(message, optional, tag = "17")]
2085    pub process: ::core::option::Option<connect_record::Process>,
2086    #[prost(string, tag = "18")]
2087    pub netns: ::prost::alloc::string::String,
2088}
2089/// Nested message and enum types in `ConnectRecord`.
2090pub mod connect_record {
2091    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2092    pub struct Process {
2093        #[prost(uint32, tag = "1")]
2094        pub pid: u32,
2095        #[prost(string, tag = "2")]
2096        pub name: ::prost::alloc::string::String,
2097    }
2098    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2099    #[repr(i32)]
2100    pub enum State {
2101        Reserved = 0,
2102        Established = 1,
2103        SynSent = 2,
2104        SynRecv = 3,
2105        FinWait1 = 4,
2106        FinWait2 = 5,
2107        TimeWait = 6,
2108        Close = 7,
2109        Closewait = 8,
2110        Lastack = 9,
2111        Listen = 10,
2112        Closing = 11,
2113    }
2114    impl State {
2115        /// String value of the enum field names used in the ProtoBuf definition.
2116        ///
2117        /// The values are not transformed in any way and thus are considered stable
2118        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2119        pub fn as_str_name(&self) -> &'static str {
2120            match self {
2121                Self::Reserved => "RESERVED",
2122                Self::Established => "ESTABLISHED",
2123                Self::SynSent => "SYN_SENT",
2124                Self::SynRecv => "SYN_RECV",
2125                Self::FinWait1 => "FIN_WAIT1",
2126                Self::FinWait2 => "FIN_WAIT2",
2127                Self::TimeWait => "TIME_WAIT",
2128                Self::Close => "CLOSE",
2129                Self::Closewait => "CLOSEWAIT",
2130                Self::Lastack => "LASTACK",
2131                Self::Listen => "LISTEN",
2132                Self::Closing => "CLOSING",
2133            }
2134        }
2135        /// Creates an enum from field names used in the ProtoBuf definition.
2136        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2137            match value {
2138                "RESERVED" => Some(Self::Reserved),
2139                "ESTABLISHED" => Some(Self::Established),
2140                "SYN_SENT" => Some(Self::SynSent),
2141                "SYN_RECV" => Some(Self::SynRecv),
2142                "FIN_WAIT1" => Some(Self::FinWait1),
2143                "FIN_WAIT2" => Some(Self::FinWait2),
2144                "TIME_WAIT" => Some(Self::TimeWait),
2145                "CLOSE" => Some(Self::Close),
2146                "CLOSEWAIT" => Some(Self::Closewait),
2147                "LASTACK" => Some(Self::Lastack),
2148                "LISTEN" => Some(Self::Listen),
2149                "CLOSING" => Some(Self::Closing),
2150                _ => None,
2151            }
2152        }
2153    }
2154    #[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
2155    #[repr(i32)]
2156    pub enum TimerActive {
2157        Off = 0,
2158        On = 1,
2159        Keepalive = 2,
2160        Timewait = 3,
2161        Probe = 4,
2162    }
2163    impl TimerActive {
2164        /// String value of the enum field names used in the ProtoBuf definition.
2165        ///
2166        /// The values are not transformed in any way and thus are considered stable
2167        /// (if the ProtoBuf definition does not change) and safe for programmatic use.
2168        pub fn as_str_name(&self) -> &'static str {
2169            match self {
2170                Self::Off => "OFF",
2171                Self::On => "ON",
2172                Self::Keepalive => "KEEPALIVE",
2173                Self::Timewait => "TIMEWAIT",
2174                Self::Probe => "PROBE",
2175            }
2176        }
2177        /// Creates an enum from field names used in the ProtoBuf definition.
2178        pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
2179            match value {
2180                "OFF" => Some(Self::Off),
2181                "ON" => Some(Self::On),
2182                "KEEPALIVE" => Some(Self::Keepalive),
2183                "TIMEWAIT" => Some(Self::Timewait),
2184                "PROBE" => Some(Self::Probe),
2185                _ => None,
2186            }
2187        }
2188    }
2189}
2190#[derive(Clone, PartialEq, ::prost::Message)]
2191pub struct Netstat {
2192    #[prost(message, optional, tag = "1")]
2193    pub metadata: ::core::option::Option<super::common::Metadata>,
2194    #[prost(message, repeated, tag = "2")]
2195    pub connectrecord: ::prost::alloc::vec::Vec<ConnectRecord>,
2196}
2197#[derive(Clone, PartialEq, ::prost::Message)]
2198pub struct NetstatResponse {
2199    #[prost(message, repeated, tag = "1")]
2200    pub messages: ::prost::alloc::vec::Vec<Netstat>,
2201}
2202#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2203pub struct MetaWriteRequest {
2204    #[prost(uint32, tag = "1")]
2205    pub key: u32,
2206    #[prost(bytes = "vec", tag = "2")]
2207    pub value: ::prost::alloc::vec::Vec<u8>,
2208}
2209#[derive(Clone, PartialEq, ::prost::Message)]
2210pub struct MetaWrite {
2211    #[prost(message, optional, tag = "1")]
2212    pub metadata: ::core::option::Option<super::common::Metadata>,
2213}
2214#[derive(Clone, PartialEq, ::prost::Message)]
2215pub struct MetaWriteResponse {
2216    #[prost(message, repeated, tag = "1")]
2217    pub messages: ::prost::alloc::vec::Vec<MetaWrite>,
2218}
2219#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2220pub struct MetaDeleteRequest {
2221    #[prost(uint32, tag = "1")]
2222    pub key: u32,
2223}
2224#[derive(Clone, PartialEq, ::prost::Message)]
2225pub struct MetaDelete {
2226    #[prost(message, optional, tag = "1")]
2227    pub metadata: ::core::option::Option<super::common::Metadata>,
2228}
2229#[derive(Clone, PartialEq, ::prost::Message)]
2230pub struct MetaDeleteResponse {
2231    #[prost(message, repeated, tag = "1")]
2232    pub messages: ::prost::alloc::vec::Vec<MetaDelete>,
2233}
2234#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
2235pub struct ImageListRequest {
2236    /// Containerd namespace to use.
2237    #[prost(enumeration = "super::common::ContainerdNamespace", tag = "1")]
2238    pub namespace: i32,
2239}
2240#[derive(Clone, PartialEq, ::prost::Message)]
2241pub struct ImageListResponse {
2242    #[prost(message, optional, tag = "1")]
2243    pub metadata: ::core::option::Option<super::common::Metadata>,
2244    #[prost(string, tag = "2")]
2245    pub name: ::prost::alloc::string::String,
2246    #[prost(string, tag = "3")]
2247    pub digest: ::prost::alloc::string::String,
2248    #[prost(int64, tag = "4")]
2249    pub size: i64,
2250    #[prost(message, optional, tag = "5")]
2251    pub created_at: ::core::option::Option<::prost_types::Timestamp>,
2252}
2253#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
2254pub struct ImagePullRequest {
2255    /// Containerd namespace to use.
2256    #[prost(enumeration = "super::common::ContainerdNamespace", tag = "1")]
2257    pub namespace: i32,
2258    /// Image reference to pull.
2259    #[prost(string, tag = "2")]
2260    pub reference: ::prost::alloc::string::String,
2261}
2262#[derive(Clone, PartialEq, ::prost::Message)]
2263pub struct ImagePull {
2264    #[prost(message, optional, tag = "1")]
2265    pub metadata: ::core::option::Option<super::common::Metadata>,
2266}
2267#[derive(Clone, PartialEq, ::prost::Message)]
2268pub struct ImagePullResponse {
2269    #[prost(message, repeated, tag = "1")]
2270    pub messages: ::prost::alloc::vec::Vec<ImagePull>,
2271}
2272/// Generated client implementations.
2273pub mod machine_service_client {
2274    #![allow(
2275        unused_variables,
2276        dead_code,
2277        missing_docs,
2278        clippy::wildcard_imports,
2279        clippy::let_unit_value
2280    )]
2281    use tonic::codegen::http::Uri;
2282    use tonic::codegen::*;
2283    /// The machine service definition.
2284    #[derive(Debug, Clone)]
2285    pub struct MachineServiceClient<T> {
2286        inner: tonic::client::Grpc<T>,
2287    }
2288    impl MachineServiceClient<tonic::transport::Channel> {
2289        /// Attempt to create a new client by connecting to a given endpoint.
2290        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
2291        where
2292            D: TryInto<tonic::transport::Endpoint>,
2293            D::Error: Into<StdError>,
2294        {
2295            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
2296            Ok(Self::new(conn))
2297        }
2298    }
2299    impl<T> MachineServiceClient<T>
2300    where
2301        T: tonic::client::GrpcService<tonic::body::Body>,
2302        T::Error: Into<StdError>,
2303        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
2304        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
2305    {
2306        pub fn new(inner: T) -> Self {
2307            let inner = tonic::client::Grpc::new(inner);
2308            Self { inner }
2309        }
2310        pub fn with_origin(inner: T, origin: Uri) -> Self {
2311            let inner = tonic::client::Grpc::with_origin(inner, origin);
2312            Self { inner }
2313        }
2314        pub fn with_interceptor<F>(
2315            inner: T,
2316            interceptor: F,
2317        ) -> MachineServiceClient<InterceptedService<T, F>>
2318        where
2319            F: tonic::service::Interceptor,
2320            T::ResponseBody: Default,
2321            T: tonic::codegen::Service<
2322                http::Request<tonic::body::Body>,
2323                Response = http::Response<
2324                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
2325                >,
2326            >,
2327            <T as tonic::codegen::Service<http::Request<tonic::body::Body>>>::Error:
2328                Into<StdError> + std::marker::Send + std::marker::Sync,
2329        {
2330            MachineServiceClient::new(InterceptedService::new(inner, interceptor))
2331        }
2332        /// Compress requests with the given encoding.
2333        ///
2334        /// This requires the server to support it otherwise it might respond with an
2335        /// error.
2336        #[must_use]
2337        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
2338            self.inner = self.inner.send_compressed(encoding);
2339            self
2340        }
2341        /// Enable decompressing responses.
2342        #[must_use]
2343        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
2344            self.inner = self.inner.accept_compressed(encoding);
2345            self
2346        }
2347        /// Limits the maximum size of a decoded message.
2348        ///
2349        /// Default: `4MB`
2350        #[must_use]
2351        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
2352            self.inner = self.inner.max_decoding_message_size(limit);
2353            self
2354        }
2355        /// Limits the maximum size of an encoded message.
2356        ///
2357        /// Default: `usize::MAX`
2358        #[must_use]
2359        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
2360            self.inner = self.inner.max_encoding_message_size(limit);
2361            self
2362        }
2363        pub async fn apply_configuration(
2364            &mut self,
2365            request: impl tonic::IntoRequest<super::ApplyConfigurationRequest>,
2366        ) -> std::result::Result<tonic::Response<super::ApplyConfigurationResponse>, tonic::Status>
2367        {
2368            self.inner.ready().await.map_err(|e| {
2369                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2370            })?;
2371            let codec = tonic_prost::ProstCodec::default();
2372            let path =
2373                http::uri::PathAndQuery::from_static("/machine.MachineService/ApplyConfiguration");
2374            let mut req = request.into_request();
2375            req.extensions_mut().insert(GrpcMethod::new(
2376                "machine.MachineService",
2377                "ApplyConfiguration",
2378            ));
2379            self.inner.unary(req, path, codec).await
2380        }
2381        /// Bootstrap method makes control plane node enter etcd bootstrap mode.
2382        /// Node aborts etcd join sequence and creates single-node etcd cluster.
2383        /// If recover_etcd argument is specified, etcd is recovered from a snapshot
2384        /// uploaded with EtcdRecover.
2385        pub async fn bootstrap(
2386            &mut self,
2387            request: impl tonic::IntoRequest<super::BootstrapRequest>,
2388        ) -> std::result::Result<tonic::Response<super::BootstrapResponse>, tonic::Status> {
2389            self.inner.ready().await.map_err(|e| {
2390                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2391            })?;
2392            let codec = tonic_prost::ProstCodec::default();
2393            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Bootstrap");
2394            let mut req = request.into_request();
2395            req.extensions_mut()
2396                .insert(GrpcMethod::new("machine.MachineService", "Bootstrap"));
2397            self.inner.unary(req, path, codec).await
2398        }
2399        pub async fn containers(
2400            &mut self,
2401            request: impl tonic::IntoRequest<super::ContainersRequest>,
2402        ) -> std::result::Result<tonic::Response<super::ContainersResponse>, tonic::Status>
2403        {
2404            self.inner.ready().await.map_err(|e| {
2405                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2406            })?;
2407            let codec = tonic_prost::ProstCodec::default();
2408            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Containers");
2409            let mut req = request.into_request();
2410            req.extensions_mut()
2411                .insert(GrpcMethod::new("machine.MachineService", "Containers"));
2412            self.inner.unary(req, path, codec).await
2413        }
2414        pub async fn copy(
2415            &mut self,
2416            request: impl tonic::IntoRequest<super::CopyRequest>,
2417        ) -> std::result::Result<
2418            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
2419            tonic::Status,
2420        > {
2421            self.inner.ready().await.map_err(|e| {
2422                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2423            })?;
2424            let codec = tonic_prost::ProstCodec::default();
2425            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Copy");
2426            let mut req = request.into_request();
2427            req.extensions_mut()
2428                .insert(GrpcMethod::new("machine.MachineService", "Copy"));
2429            self.inner.server_streaming(req, path, codec).await
2430        }
2431        pub async fn cpu_freq_stats(
2432            &mut self,
2433            request: impl tonic::IntoRequest<()>,
2434        ) -> std::result::Result<tonic::Response<super::CpuFreqStatsResponse>, tonic::Status>
2435        {
2436            self.inner.ready().await.map_err(|e| {
2437                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2438            })?;
2439            let codec = tonic_prost::ProstCodec::default();
2440            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/CPUFreqStats");
2441            let mut req = request.into_request();
2442            req.extensions_mut()
2443                .insert(GrpcMethod::new("machine.MachineService", "CPUFreqStats"));
2444            self.inner.unary(req, path, codec).await
2445        }
2446        pub async fn cpu_info(
2447            &mut self,
2448            request: impl tonic::IntoRequest<()>,
2449        ) -> std::result::Result<tonic::Response<super::CpuInfoResponse>, tonic::Status> {
2450            self.inner.ready().await.map_err(|e| {
2451                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2452            })?;
2453            let codec = tonic_prost::ProstCodec::default();
2454            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/CPUInfo");
2455            let mut req = request.into_request();
2456            req.extensions_mut()
2457                .insert(GrpcMethod::new("machine.MachineService", "CPUInfo"));
2458            self.inner.unary(req, path, codec).await
2459        }
2460        pub async fn disk_stats(
2461            &mut self,
2462            request: impl tonic::IntoRequest<()>,
2463        ) -> std::result::Result<tonic::Response<super::DiskStatsResponse>, tonic::Status> {
2464            self.inner.ready().await.map_err(|e| {
2465                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2466            })?;
2467            let codec = tonic_prost::ProstCodec::default();
2468            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/DiskStats");
2469            let mut req = request.into_request();
2470            req.extensions_mut()
2471                .insert(GrpcMethod::new("machine.MachineService", "DiskStats"));
2472            self.inner.unary(req, path, codec).await
2473        }
2474        pub async fn dmesg(
2475            &mut self,
2476            request: impl tonic::IntoRequest<super::DmesgRequest>,
2477        ) -> std::result::Result<
2478            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
2479            tonic::Status,
2480        > {
2481            self.inner.ready().await.map_err(|e| {
2482                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2483            })?;
2484            let codec = tonic_prost::ProstCodec::default();
2485            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Dmesg");
2486            let mut req = request.into_request();
2487            req.extensions_mut()
2488                .insert(GrpcMethod::new("machine.MachineService", "Dmesg"));
2489            self.inner.server_streaming(req, path, codec).await
2490        }
2491        pub async fn events(
2492            &mut self,
2493            request: impl tonic::IntoRequest<super::EventsRequest>,
2494        ) -> std::result::Result<
2495            tonic::Response<tonic::codec::Streaming<super::Event>>,
2496            tonic::Status,
2497        > {
2498            self.inner.ready().await.map_err(|e| {
2499                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2500            })?;
2501            let codec = tonic_prost::ProstCodec::default();
2502            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Events");
2503            let mut req = request.into_request();
2504            req.extensions_mut()
2505                .insert(GrpcMethod::new("machine.MachineService", "Events"));
2506            self.inner.server_streaming(req, path, codec).await
2507        }
2508        pub async fn etcd_member_list(
2509            &mut self,
2510            request: impl tonic::IntoRequest<super::EtcdMemberListRequest>,
2511        ) -> std::result::Result<tonic::Response<super::EtcdMemberListResponse>, tonic::Status>
2512        {
2513            self.inner.ready().await.map_err(|e| {
2514                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2515            })?;
2516            let codec = tonic_prost::ProstCodec::default();
2517            let path =
2518                http::uri::PathAndQuery::from_static("/machine.MachineService/EtcdMemberList");
2519            let mut req = request.into_request();
2520            req.extensions_mut()
2521                .insert(GrpcMethod::new("machine.MachineService", "EtcdMemberList"));
2522            self.inner.unary(req, path, codec).await
2523        }
2524        /// EtcdRemoveMemberByID removes a member from the etcd cluster identified by member ID.
2525        /// This API should be used to remove members which don't have an associated Talos node anymore.
2526        /// To remove a member with a running Talos node, use EtcdLeaveCluster API on the node to be removed.
2527        pub async fn etcd_remove_member_by_id(
2528            &mut self,
2529            request: impl tonic::IntoRequest<super::EtcdRemoveMemberByIdRequest>,
2530        ) -> std::result::Result<tonic::Response<super::EtcdRemoveMemberByIdResponse>, tonic::Status>
2531        {
2532            self.inner.ready().await.map_err(|e| {
2533                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2534            })?;
2535            let codec = tonic_prost::ProstCodec::default();
2536            let path = http::uri::PathAndQuery::from_static(
2537                "/machine.MachineService/EtcdRemoveMemberByID",
2538            );
2539            let mut req = request.into_request();
2540            req.extensions_mut().insert(GrpcMethod::new(
2541                "machine.MachineService",
2542                "EtcdRemoveMemberByID",
2543            ));
2544            self.inner.unary(req, path, codec).await
2545        }
2546        pub async fn etcd_leave_cluster(
2547            &mut self,
2548            request: impl tonic::IntoRequest<super::EtcdLeaveClusterRequest>,
2549        ) -> std::result::Result<tonic::Response<super::EtcdLeaveClusterResponse>, tonic::Status>
2550        {
2551            self.inner.ready().await.map_err(|e| {
2552                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2553            })?;
2554            let codec = tonic_prost::ProstCodec::default();
2555            let path =
2556                http::uri::PathAndQuery::from_static("/machine.MachineService/EtcdLeaveCluster");
2557            let mut req = request.into_request();
2558            req.extensions_mut().insert(GrpcMethod::new(
2559                "machine.MachineService",
2560                "EtcdLeaveCluster",
2561            ));
2562            self.inner.unary(req, path, codec).await
2563        }
2564        pub async fn etcd_forfeit_leadership(
2565            &mut self,
2566            request: impl tonic::IntoRequest<super::EtcdForfeitLeadershipRequest>,
2567        ) -> std::result::Result<tonic::Response<super::EtcdForfeitLeadershipResponse>, tonic::Status>
2568        {
2569            self.inner.ready().await.map_err(|e| {
2570                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2571            })?;
2572            let codec = tonic_prost::ProstCodec::default();
2573            let path = http::uri::PathAndQuery::from_static(
2574                "/machine.MachineService/EtcdForfeitLeadership",
2575            );
2576            let mut req = request.into_request();
2577            req.extensions_mut().insert(GrpcMethod::new(
2578                "machine.MachineService",
2579                "EtcdForfeitLeadership",
2580            ));
2581            self.inner.unary(req, path, codec).await
2582        }
2583        /// EtcdRecover method uploads etcd data snapshot created with EtcdSnapshot
2584        /// to the node.
2585        /// Snapshot can be later used to recover the cluster via Bootstrap method.
2586        pub async fn etcd_recover(
2587            &mut self,
2588            request: impl tonic::IntoStreamingRequest<Message = super::super::common::Data>,
2589        ) -> std::result::Result<tonic::Response<super::EtcdRecoverResponse>, tonic::Status>
2590        {
2591            self.inner.ready().await.map_err(|e| {
2592                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2593            })?;
2594            let codec = tonic_prost::ProstCodec::default();
2595            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/EtcdRecover");
2596            let mut req = request.into_streaming_request();
2597            req.extensions_mut()
2598                .insert(GrpcMethod::new("machine.MachineService", "EtcdRecover"));
2599            self.inner.client_streaming(req, path, codec).await
2600        }
2601        /// EtcdSnapshot method creates etcd data snapshot (backup) from the local etcd instance
2602        /// and streams it back to the client.
2603        /// This method is available only on control plane nodes (which run etcd).
2604        pub async fn etcd_snapshot(
2605            &mut self,
2606            request: impl tonic::IntoRequest<super::EtcdSnapshotRequest>,
2607        ) -> std::result::Result<
2608            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
2609            tonic::Status,
2610        > {
2611            self.inner.ready().await.map_err(|e| {
2612                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2613            })?;
2614            let codec = tonic_prost::ProstCodec::default();
2615            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/EtcdSnapshot");
2616            let mut req = request.into_request();
2617            req.extensions_mut()
2618                .insert(GrpcMethod::new("machine.MachineService", "EtcdSnapshot"));
2619            self.inner.server_streaming(req, path, codec).await
2620        }
2621        /// EtcdAlarmList lists etcd alarms for the current node.
2622        /// This method is available only on control plane nodes (which run etcd).
2623        pub async fn etcd_alarm_list(
2624            &mut self,
2625            request: impl tonic::IntoRequest<()>,
2626        ) -> std::result::Result<tonic::Response<super::EtcdAlarmListResponse>, tonic::Status>
2627        {
2628            self.inner.ready().await.map_err(|e| {
2629                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2630            })?;
2631            let codec = tonic_prost::ProstCodec::default();
2632            let path =
2633                http::uri::PathAndQuery::from_static("/machine.MachineService/EtcdAlarmList");
2634            let mut req = request.into_request();
2635            req.extensions_mut()
2636                .insert(GrpcMethod::new("machine.MachineService", "EtcdAlarmList"));
2637            self.inner.unary(req, path, codec).await
2638        }
2639        /// EtcdAlarmDisarm disarms etcd alarms for the current node.
2640        /// This method is available only on control plane nodes (which run etcd).
2641        pub async fn etcd_alarm_disarm(
2642            &mut self,
2643            request: impl tonic::IntoRequest<()>,
2644        ) -> std::result::Result<tonic::Response<super::EtcdAlarmDisarmResponse>, tonic::Status>
2645        {
2646            self.inner.ready().await.map_err(|e| {
2647                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2648            })?;
2649            let codec = tonic_prost::ProstCodec::default();
2650            let path =
2651                http::uri::PathAndQuery::from_static("/machine.MachineService/EtcdAlarmDisarm");
2652            let mut req = request.into_request();
2653            req.extensions_mut()
2654                .insert(GrpcMethod::new("machine.MachineService", "EtcdAlarmDisarm"));
2655            self.inner.unary(req, path, codec).await
2656        }
2657        /// EtcdDefragment defragments etcd data directory for the current node.
2658        /// Defragmentation is a resource-heavy operation, so it should only run on a specific
2659        /// node.
2660        /// This method is available only on control plane nodes (which run etcd).
2661        pub async fn etcd_defragment(
2662            &mut self,
2663            request: impl tonic::IntoRequest<()>,
2664        ) -> std::result::Result<tonic::Response<super::EtcdDefragmentResponse>, tonic::Status>
2665        {
2666            self.inner.ready().await.map_err(|e| {
2667                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2668            })?;
2669            let codec = tonic_prost::ProstCodec::default();
2670            let path =
2671                http::uri::PathAndQuery::from_static("/machine.MachineService/EtcdDefragment");
2672            let mut req = request.into_request();
2673            req.extensions_mut()
2674                .insert(GrpcMethod::new("machine.MachineService", "EtcdDefragment"));
2675            self.inner.unary(req, path, codec).await
2676        }
2677        /// EtcdStatus returns etcd status for the current member.
2678        /// This method is available only on control plane nodes (which run etcd).
2679        pub async fn etcd_status(
2680            &mut self,
2681            request: impl tonic::IntoRequest<()>,
2682        ) -> std::result::Result<tonic::Response<super::EtcdStatusResponse>, tonic::Status>
2683        {
2684            self.inner.ready().await.map_err(|e| {
2685                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2686            })?;
2687            let codec = tonic_prost::ProstCodec::default();
2688            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/EtcdStatus");
2689            let mut req = request.into_request();
2690            req.extensions_mut()
2691                .insert(GrpcMethod::new("machine.MachineService", "EtcdStatus"));
2692            self.inner.unary(req, path, codec).await
2693        }
2694        /// EtcdDowngradeValidate validates etcd cluster for downgrade to a specific version.
2695        /// This method is available only on control plane nodes (which run etcd).
2696        pub async fn etcd_downgrade_validate(
2697            &mut self,
2698            request: impl tonic::IntoRequest<super::EtcdDowngradeValidateRequest>,
2699        ) -> std::result::Result<tonic::Response<super::EtcdDowngradeValidateResponse>, tonic::Status>
2700        {
2701            self.inner.ready().await.map_err(|e| {
2702                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2703            })?;
2704            let codec = tonic_prost::ProstCodec::default();
2705            let path = http::uri::PathAndQuery::from_static(
2706                "/machine.MachineService/EtcdDowngradeValidate",
2707            );
2708            let mut req = request.into_request();
2709            req.extensions_mut().insert(GrpcMethod::new(
2710                "machine.MachineService",
2711                "EtcdDowngradeValidate",
2712            ));
2713            self.inner.unary(req, path, codec).await
2714        }
2715        /// EtcdDowngradeEnable enables etcd cluster downgrade to a specific version.
2716        /// This method is available only on control plane nodes (which run etcd).
2717        pub async fn etcd_downgrade_enable(
2718            &mut self,
2719            request: impl tonic::IntoRequest<super::EtcdDowngradeEnableRequest>,
2720        ) -> std::result::Result<tonic::Response<super::EtcdDowngradeEnableResponse>, tonic::Status>
2721        {
2722            self.inner.ready().await.map_err(|e| {
2723                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2724            })?;
2725            let codec = tonic_prost::ProstCodec::default();
2726            let path =
2727                http::uri::PathAndQuery::from_static("/machine.MachineService/EtcdDowngradeEnable");
2728            let mut req = request.into_request();
2729            req.extensions_mut().insert(GrpcMethod::new(
2730                "machine.MachineService",
2731                "EtcdDowngradeEnable",
2732            ));
2733            self.inner.unary(req, path, codec).await
2734        }
2735        /// EtcdDowngradeCancel cancels etcd cluster downgrade that is in progress.
2736        /// This method is available only on control plane nodes (which run etcd).
2737        pub async fn etcd_downgrade_cancel(
2738            &mut self,
2739            request: impl tonic::IntoRequest<()>,
2740        ) -> std::result::Result<tonic::Response<super::EtcdDowngradeCancelResponse>, tonic::Status>
2741        {
2742            self.inner.ready().await.map_err(|e| {
2743                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2744            })?;
2745            let codec = tonic_prost::ProstCodec::default();
2746            let path =
2747                http::uri::PathAndQuery::from_static("/machine.MachineService/EtcdDowngradeCancel");
2748            let mut req = request.into_request();
2749            req.extensions_mut().insert(GrpcMethod::new(
2750                "machine.MachineService",
2751                "EtcdDowngradeCancel",
2752            ));
2753            self.inner.unary(req, path, codec).await
2754        }
2755        pub async fn hostname(
2756            &mut self,
2757            request: impl tonic::IntoRequest<()>,
2758        ) -> std::result::Result<tonic::Response<super::HostnameResponse>, tonic::Status> {
2759            self.inner.ready().await.map_err(|e| {
2760                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2761            })?;
2762            let codec = tonic_prost::ProstCodec::default();
2763            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Hostname");
2764            let mut req = request.into_request();
2765            req.extensions_mut()
2766                .insert(GrpcMethod::new("machine.MachineService", "Hostname"));
2767            self.inner.unary(req, path, codec).await
2768        }
2769        pub async fn kubeconfig(
2770            &mut self,
2771            request: impl tonic::IntoRequest<()>,
2772        ) -> std::result::Result<
2773            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
2774            tonic::Status,
2775        > {
2776            self.inner.ready().await.map_err(|e| {
2777                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2778            })?;
2779            let codec = tonic_prost::ProstCodec::default();
2780            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Kubeconfig");
2781            let mut req = request.into_request();
2782            req.extensions_mut()
2783                .insert(GrpcMethod::new("machine.MachineService", "Kubeconfig"));
2784            self.inner.server_streaming(req, path, codec).await
2785        }
2786        pub async fn list(
2787            &mut self,
2788            request: impl tonic::IntoRequest<super::ListRequest>,
2789        ) -> std::result::Result<
2790            tonic::Response<tonic::codec::Streaming<super::FileInfo>>,
2791            tonic::Status,
2792        > {
2793            self.inner.ready().await.map_err(|e| {
2794                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2795            })?;
2796            let codec = tonic_prost::ProstCodec::default();
2797            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/List");
2798            let mut req = request.into_request();
2799            req.extensions_mut()
2800                .insert(GrpcMethod::new("machine.MachineService", "List"));
2801            self.inner.server_streaming(req, path, codec).await
2802        }
2803        pub async fn disk_usage(
2804            &mut self,
2805            request: impl tonic::IntoRequest<super::DiskUsageRequest>,
2806        ) -> std::result::Result<
2807            tonic::Response<tonic::codec::Streaming<super::DiskUsageInfo>>,
2808            tonic::Status,
2809        > {
2810            self.inner.ready().await.map_err(|e| {
2811                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2812            })?;
2813            let codec = tonic_prost::ProstCodec::default();
2814            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/DiskUsage");
2815            let mut req = request.into_request();
2816            req.extensions_mut()
2817                .insert(GrpcMethod::new("machine.MachineService", "DiskUsage"));
2818            self.inner.server_streaming(req, path, codec).await
2819        }
2820        pub async fn load_avg(
2821            &mut self,
2822            request: impl tonic::IntoRequest<()>,
2823        ) -> std::result::Result<tonic::Response<super::LoadAvgResponse>, tonic::Status> {
2824            self.inner.ready().await.map_err(|e| {
2825                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2826            })?;
2827            let codec = tonic_prost::ProstCodec::default();
2828            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/LoadAvg");
2829            let mut req = request.into_request();
2830            req.extensions_mut()
2831                .insert(GrpcMethod::new("machine.MachineService", "LoadAvg"));
2832            self.inner.unary(req, path, codec).await
2833        }
2834        pub async fn logs(
2835            &mut self,
2836            request: impl tonic::IntoRequest<super::LogsRequest>,
2837        ) -> std::result::Result<
2838            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
2839            tonic::Status,
2840        > {
2841            self.inner.ready().await.map_err(|e| {
2842                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2843            })?;
2844            let codec = tonic_prost::ProstCodec::default();
2845            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Logs");
2846            let mut req = request.into_request();
2847            req.extensions_mut()
2848                .insert(GrpcMethod::new("machine.MachineService", "Logs"));
2849            self.inner.server_streaming(req, path, codec).await
2850        }
2851        pub async fn logs_containers(
2852            &mut self,
2853            request: impl tonic::IntoRequest<()>,
2854        ) -> std::result::Result<tonic::Response<super::LogsContainersResponse>, tonic::Status>
2855        {
2856            self.inner.ready().await.map_err(|e| {
2857                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2858            })?;
2859            let codec = tonic_prost::ProstCodec::default();
2860            let path =
2861                http::uri::PathAndQuery::from_static("/machine.MachineService/LogsContainers");
2862            let mut req = request.into_request();
2863            req.extensions_mut()
2864                .insert(GrpcMethod::new("machine.MachineService", "LogsContainers"));
2865            self.inner.unary(req, path, codec).await
2866        }
2867        pub async fn memory(
2868            &mut self,
2869            request: impl tonic::IntoRequest<()>,
2870        ) -> std::result::Result<tonic::Response<super::MemoryResponse>, tonic::Status> {
2871            self.inner.ready().await.map_err(|e| {
2872                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2873            })?;
2874            let codec = tonic_prost::ProstCodec::default();
2875            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Memory");
2876            let mut req = request.into_request();
2877            req.extensions_mut()
2878                .insert(GrpcMethod::new("machine.MachineService", "Memory"));
2879            self.inner.unary(req, path, codec).await
2880        }
2881        pub async fn mounts(
2882            &mut self,
2883            request: impl tonic::IntoRequest<()>,
2884        ) -> std::result::Result<tonic::Response<super::MountsResponse>, tonic::Status> {
2885            self.inner.ready().await.map_err(|e| {
2886                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2887            })?;
2888            let codec = tonic_prost::ProstCodec::default();
2889            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Mounts");
2890            let mut req = request.into_request();
2891            req.extensions_mut()
2892                .insert(GrpcMethod::new("machine.MachineService", "Mounts"));
2893            self.inner.unary(req, path, codec).await
2894        }
2895        pub async fn network_device_stats(
2896            &mut self,
2897            request: impl tonic::IntoRequest<()>,
2898        ) -> std::result::Result<tonic::Response<super::NetworkDeviceStatsResponse>, tonic::Status>
2899        {
2900            self.inner.ready().await.map_err(|e| {
2901                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2902            })?;
2903            let codec = tonic_prost::ProstCodec::default();
2904            let path =
2905                http::uri::PathAndQuery::from_static("/machine.MachineService/NetworkDeviceStats");
2906            let mut req = request.into_request();
2907            req.extensions_mut().insert(GrpcMethod::new(
2908                "machine.MachineService",
2909                "NetworkDeviceStats",
2910            ));
2911            self.inner.unary(req, path, codec).await
2912        }
2913        pub async fn processes(
2914            &mut self,
2915            request: impl tonic::IntoRequest<()>,
2916        ) -> std::result::Result<tonic::Response<super::ProcessesResponse>, tonic::Status> {
2917            self.inner.ready().await.map_err(|e| {
2918                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2919            })?;
2920            let codec = tonic_prost::ProstCodec::default();
2921            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Processes");
2922            let mut req = request.into_request();
2923            req.extensions_mut()
2924                .insert(GrpcMethod::new("machine.MachineService", "Processes"));
2925            self.inner.unary(req, path, codec).await
2926        }
2927        pub async fn read(
2928            &mut self,
2929            request: impl tonic::IntoRequest<super::ReadRequest>,
2930        ) -> std::result::Result<
2931            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
2932            tonic::Status,
2933        > {
2934            self.inner.ready().await.map_err(|e| {
2935                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2936            })?;
2937            let codec = tonic_prost::ProstCodec::default();
2938            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Read");
2939            let mut req = request.into_request();
2940            req.extensions_mut()
2941                .insert(GrpcMethod::new("machine.MachineService", "Read"));
2942            self.inner.server_streaming(req, path, codec).await
2943        }
2944        pub async fn reboot(
2945            &mut self,
2946            request: impl tonic::IntoRequest<super::RebootRequest>,
2947        ) -> std::result::Result<tonic::Response<super::RebootResponse>, tonic::Status> {
2948            self.inner.ready().await.map_err(|e| {
2949                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2950            })?;
2951            let codec = tonic_prost::ProstCodec::default();
2952            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Reboot");
2953            let mut req = request.into_request();
2954            req.extensions_mut()
2955                .insert(GrpcMethod::new("machine.MachineService", "Reboot"));
2956            self.inner.unary(req, path, codec).await
2957        }
2958        pub async fn restart(
2959            &mut self,
2960            request: impl tonic::IntoRequest<super::RestartRequest>,
2961        ) -> std::result::Result<tonic::Response<super::RestartResponse>, tonic::Status> {
2962            self.inner.ready().await.map_err(|e| {
2963                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2964            })?;
2965            let codec = tonic_prost::ProstCodec::default();
2966            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Restart");
2967            let mut req = request.into_request();
2968            req.extensions_mut()
2969                .insert(GrpcMethod::new("machine.MachineService", "Restart"));
2970            self.inner.unary(req, path, codec).await
2971        }
2972        pub async fn rollback(
2973            &mut self,
2974            request: impl tonic::IntoRequest<super::RollbackRequest>,
2975        ) -> std::result::Result<tonic::Response<super::RollbackResponse>, tonic::Status> {
2976            self.inner.ready().await.map_err(|e| {
2977                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2978            })?;
2979            let codec = tonic_prost::ProstCodec::default();
2980            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Rollback");
2981            let mut req = request.into_request();
2982            req.extensions_mut()
2983                .insert(GrpcMethod::new("machine.MachineService", "Rollback"));
2984            self.inner.unary(req, path, codec).await
2985        }
2986        pub async fn reset(
2987            &mut self,
2988            request: impl tonic::IntoRequest<super::ResetRequest>,
2989        ) -> std::result::Result<tonic::Response<super::ResetResponse>, tonic::Status> {
2990            self.inner.ready().await.map_err(|e| {
2991                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
2992            })?;
2993            let codec = tonic_prost::ProstCodec::default();
2994            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Reset");
2995            let mut req = request.into_request();
2996            req.extensions_mut()
2997                .insert(GrpcMethod::new("machine.MachineService", "Reset"));
2998            self.inner.unary(req, path, codec).await
2999        }
3000        pub async fn service_list(
3001            &mut self,
3002            request: impl tonic::IntoRequest<()>,
3003        ) -> std::result::Result<tonic::Response<super::ServiceListResponse>, tonic::Status>
3004        {
3005            self.inner.ready().await.map_err(|e| {
3006                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3007            })?;
3008            let codec = tonic_prost::ProstCodec::default();
3009            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/ServiceList");
3010            let mut req = request.into_request();
3011            req.extensions_mut()
3012                .insert(GrpcMethod::new("machine.MachineService", "ServiceList"));
3013            self.inner.unary(req, path, codec).await
3014        }
3015        pub async fn service_restart(
3016            &mut self,
3017            request: impl tonic::IntoRequest<super::ServiceRestartRequest>,
3018        ) -> std::result::Result<tonic::Response<super::ServiceRestartResponse>, tonic::Status>
3019        {
3020            self.inner.ready().await.map_err(|e| {
3021                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3022            })?;
3023            let codec = tonic_prost::ProstCodec::default();
3024            let path =
3025                http::uri::PathAndQuery::from_static("/machine.MachineService/ServiceRestart");
3026            let mut req = request.into_request();
3027            req.extensions_mut()
3028                .insert(GrpcMethod::new("machine.MachineService", "ServiceRestart"));
3029            self.inner.unary(req, path, codec).await
3030        }
3031        pub async fn service_start(
3032            &mut self,
3033            request: impl tonic::IntoRequest<super::ServiceStartRequest>,
3034        ) -> std::result::Result<tonic::Response<super::ServiceStartResponse>, tonic::Status>
3035        {
3036            self.inner.ready().await.map_err(|e| {
3037                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3038            })?;
3039            let codec = tonic_prost::ProstCodec::default();
3040            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/ServiceStart");
3041            let mut req = request.into_request();
3042            req.extensions_mut()
3043                .insert(GrpcMethod::new("machine.MachineService", "ServiceStart"));
3044            self.inner.unary(req, path, codec).await
3045        }
3046        pub async fn service_stop(
3047            &mut self,
3048            request: impl tonic::IntoRequest<super::ServiceStopRequest>,
3049        ) -> std::result::Result<tonic::Response<super::ServiceStopResponse>, tonic::Status>
3050        {
3051            self.inner.ready().await.map_err(|e| {
3052                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3053            })?;
3054            let codec = tonic_prost::ProstCodec::default();
3055            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/ServiceStop");
3056            let mut req = request.into_request();
3057            req.extensions_mut()
3058                .insert(GrpcMethod::new("machine.MachineService", "ServiceStop"));
3059            self.inner.unary(req, path, codec).await
3060        }
3061        pub async fn shutdown(
3062            &mut self,
3063            request: impl tonic::IntoRequest<super::ShutdownRequest>,
3064        ) -> std::result::Result<tonic::Response<super::ShutdownResponse>, tonic::Status> {
3065            self.inner.ready().await.map_err(|e| {
3066                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3067            })?;
3068            let codec = tonic_prost::ProstCodec::default();
3069            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Shutdown");
3070            let mut req = request.into_request();
3071            req.extensions_mut()
3072                .insert(GrpcMethod::new("machine.MachineService", "Shutdown"));
3073            self.inner.unary(req, path, codec).await
3074        }
3075        pub async fn stats(
3076            &mut self,
3077            request: impl tonic::IntoRequest<super::StatsRequest>,
3078        ) -> std::result::Result<tonic::Response<super::StatsResponse>, tonic::Status> {
3079            self.inner.ready().await.map_err(|e| {
3080                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3081            })?;
3082            let codec = tonic_prost::ProstCodec::default();
3083            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Stats");
3084            let mut req = request.into_request();
3085            req.extensions_mut()
3086                .insert(GrpcMethod::new("machine.MachineService", "Stats"));
3087            self.inner.unary(req, path, codec).await
3088        }
3089        pub async fn system_stat(
3090            &mut self,
3091            request: impl tonic::IntoRequest<()>,
3092        ) -> std::result::Result<tonic::Response<super::SystemStatResponse>, tonic::Status>
3093        {
3094            self.inner.ready().await.map_err(|e| {
3095                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3096            })?;
3097            let codec = tonic_prost::ProstCodec::default();
3098            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/SystemStat");
3099            let mut req = request.into_request();
3100            req.extensions_mut()
3101                .insert(GrpcMethod::new("machine.MachineService", "SystemStat"));
3102            self.inner.unary(req, path, codec).await
3103        }
3104        pub async fn upgrade(
3105            &mut self,
3106            request: impl tonic::IntoRequest<super::UpgradeRequest>,
3107        ) -> std::result::Result<tonic::Response<super::UpgradeResponse>, tonic::Status> {
3108            self.inner.ready().await.map_err(|e| {
3109                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3110            })?;
3111            let codec = tonic_prost::ProstCodec::default();
3112            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Upgrade");
3113            let mut req = request.into_request();
3114            req.extensions_mut()
3115                .insert(GrpcMethod::new("machine.MachineService", "Upgrade"));
3116            self.inner.unary(req, path, codec).await
3117        }
3118        pub async fn version(
3119            &mut self,
3120            request: impl tonic::IntoRequest<()>,
3121        ) -> std::result::Result<tonic::Response<super::VersionResponse>, tonic::Status> {
3122            self.inner.ready().await.map_err(|e| {
3123                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3124            })?;
3125            let codec = tonic_prost::ProstCodec::default();
3126            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Version");
3127            let mut req = request.into_request();
3128            req.extensions_mut()
3129                .insert(GrpcMethod::new("machine.MachineService", "Version"));
3130            self.inner.unary(req, path, codec).await
3131        }
3132        /// GenerateClientConfiguration generates talosctl client configuration (talosconfig).
3133        pub async fn generate_client_configuration(
3134            &mut self,
3135            request: impl tonic::IntoRequest<super::GenerateClientConfigurationRequest>,
3136        ) -> std::result::Result<
3137            tonic::Response<super::GenerateClientConfigurationResponse>,
3138            tonic::Status,
3139        > {
3140            self.inner.ready().await.map_err(|e| {
3141                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3142            })?;
3143            let codec = tonic_prost::ProstCodec::default();
3144            let path = http::uri::PathAndQuery::from_static(
3145                "/machine.MachineService/GenerateClientConfiguration",
3146            );
3147            let mut req = request.into_request();
3148            req.extensions_mut().insert(GrpcMethod::new(
3149                "machine.MachineService",
3150                "GenerateClientConfiguration",
3151            ));
3152            self.inner.unary(req, path, codec).await
3153        }
3154        /// PacketCapture performs packet capture and streams back pcap file.
3155        pub async fn packet_capture(
3156            &mut self,
3157            request: impl tonic::IntoRequest<super::PacketCaptureRequest>,
3158        ) -> std::result::Result<
3159            tonic::Response<tonic::codec::Streaming<super::super::common::Data>>,
3160            tonic::Status,
3161        > {
3162            self.inner.ready().await.map_err(|e| {
3163                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3164            })?;
3165            let codec = tonic_prost::ProstCodec::default();
3166            let path =
3167                http::uri::PathAndQuery::from_static("/machine.MachineService/PacketCapture");
3168            let mut req = request.into_request();
3169            req.extensions_mut()
3170                .insert(GrpcMethod::new("machine.MachineService", "PacketCapture"));
3171            self.inner.server_streaming(req, path, codec).await
3172        }
3173        /// Netstat provides information about network connections.
3174        pub async fn netstat(
3175            &mut self,
3176            request: impl tonic::IntoRequest<super::NetstatRequest>,
3177        ) -> std::result::Result<tonic::Response<super::NetstatResponse>, tonic::Status> {
3178            self.inner.ready().await.map_err(|e| {
3179                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3180            })?;
3181            let codec = tonic_prost::ProstCodec::default();
3182            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/Netstat");
3183            let mut req = request.into_request();
3184            req.extensions_mut()
3185                .insert(GrpcMethod::new("machine.MachineService", "Netstat"));
3186            self.inner.unary(req, path, codec).await
3187        }
3188        /// MetaWrite writes a META key-value pair.
3189        pub async fn meta_write(
3190            &mut self,
3191            request: impl tonic::IntoRequest<super::MetaWriteRequest>,
3192        ) -> std::result::Result<tonic::Response<super::MetaWriteResponse>, tonic::Status> {
3193            self.inner.ready().await.map_err(|e| {
3194                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3195            })?;
3196            let codec = tonic_prost::ProstCodec::default();
3197            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/MetaWrite");
3198            let mut req = request.into_request();
3199            req.extensions_mut()
3200                .insert(GrpcMethod::new("machine.MachineService", "MetaWrite"));
3201            self.inner.unary(req, path, codec).await
3202        }
3203        /// MetaDelete deletes a META key.
3204        pub async fn meta_delete(
3205            &mut self,
3206            request: impl tonic::IntoRequest<super::MetaDeleteRequest>,
3207        ) -> std::result::Result<tonic::Response<super::MetaDeleteResponse>, tonic::Status>
3208        {
3209            self.inner.ready().await.map_err(|e| {
3210                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3211            })?;
3212            let codec = tonic_prost::ProstCodec::default();
3213            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/MetaDelete");
3214            let mut req = request.into_request();
3215            req.extensions_mut()
3216                .insert(GrpcMethod::new("machine.MachineService", "MetaDelete"));
3217            self.inner.unary(req, path, codec).await
3218        }
3219        /// ImageList lists images in the CRI.
3220        pub async fn image_list(
3221            &mut self,
3222            request: impl tonic::IntoRequest<super::ImageListRequest>,
3223        ) -> std::result::Result<
3224            tonic::Response<tonic::codec::Streaming<super::ImageListResponse>>,
3225            tonic::Status,
3226        > {
3227            self.inner.ready().await.map_err(|e| {
3228                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3229            })?;
3230            let codec = tonic_prost::ProstCodec::default();
3231            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/ImageList");
3232            let mut req = request.into_request();
3233            req.extensions_mut()
3234                .insert(GrpcMethod::new("machine.MachineService", "ImageList"));
3235            self.inner.server_streaming(req, path, codec).await
3236        }
3237        /// ImagePull pulls an image into the CRI.
3238        pub async fn image_pull(
3239            &mut self,
3240            request: impl tonic::IntoRequest<super::ImagePullRequest>,
3241        ) -> std::result::Result<tonic::Response<super::ImagePullResponse>, tonic::Status> {
3242            self.inner.ready().await.map_err(|e| {
3243                tonic::Status::unknown(format!("Service was not ready: {}", e.into()))
3244            })?;
3245            let codec = tonic_prost::ProstCodec::default();
3246            let path = http::uri::PathAndQuery::from_static("/machine.MachineService/ImagePull");
3247            let mut req = request.into_request();
3248            req.extensions_mut()
3249                .insert(GrpcMethod::new("machine.MachineService", "ImagePull"));
3250            self.inner.unary(req, path, codec).await
3251        }
3252    }
3253}
3254/// Generated server implementations.
3255pub mod machine_service_server {
3256    #![allow(
3257        unused_variables,
3258        dead_code,
3259        missing_docs,
3260        clippy::wildcard_imports,
3261        clippy::let_unit_value
3262    )]
3263    use tonic::codegen::*;
3264    /// Generated trait containing gRPC methods that should be implemented for use with MachineServiceServer.
3265    #[async_trait]
3266    pub trait MachineService: std::marker::Send + std::marker::Sync + 'static {
3267        async fn apply_configuration(
3268            &self,
3269            request: tonic::Request<super::ApplyConfigurationRequest>,
3270        ) -> std::result::Result<tonic::Response<super::ApplyConfigurationResponse>, tonic::Status>;
3271        /// Bootstrap method makes control plane node enter etcd bootstrap mode.
3272        /// Node aborts etcd join sequence and creates single-node etcd cluster.
3273        /// If recover_etcd argument is specified, etcd is recovered from a snapshot
3274        /// uploaded with EtcdRecover.
3275        async fn bootstrap(
3276            &self,
3277            request: tonic::Request<super::BootstrapRequest>,
3278        ) -> std::result::Result<tonic::Response<super::BootstrapResponse>, tonic::Status>;
3279        async fn containers(
3280            &self,
3281            request: tonic::Request<super::ContainersRequest>,
3282        ) -> std::result::Result<tonic::Response<super::ContainersResponse>, tonic::Status>;
3283        /// Server streaming response type for the Copy method.
3284        type CopyStream: tonic::codegen::tokio_stream::Stream<
3285                Item = std::result::Result<super::super::common::Data, tonic::Status>,
3286            > + std::marker::Send
3287            + 'static;
3288        async fn copy(
3289            &self,
3290            request: tonic::Request<super::CopyRequest>,
3291        ) -> std::result::Result<tonic::Response<Self::CopyStream>, tonic::Status>;
3292        async fn cpu_freq_stats(
3293            &self,
3294            request: tonic::Request<()>,
3295        ) -> std::result::Result<tonic::Response<super::CpuFreqStatsResponse>, tonic::Status>;
3296        async fn cpu_info(
3297            &self,
3298            request: tonic::Request<()>,
3299        ) -> std::result::Result<tonic::Response<super::CpuInfoResponse>, tonic::Status>;
3300        async fn disk_stats(
3301            &self,
3302            request: tonic::Request<()>,
3303        ) -> std::result::Result<tonic::Response<super::DiskStatsResponse>, tonic::Status>;
3304        /// Server streaming response type for the Dmesg method.
3305        type DmesgStream: tonic::codegen::tokio_stream::Stream<
3306                Item = std::result::Result<super::super::common::Data, tonic::Status>,
3307            > + std::marker::Send
3308            + 'static;
3309        async fn dmesg(
3310            &self,
3311            request: tonic::Request<super::DmesgRequest>,
3312        ) -> std::result::Result<tonic::Response<Self::DmesgStream>, tonic::Status>;
3313        /// Server streaming response type for the Events method.
3314        type EventsStream: tonic::codegen::tokio_stream::Stream<
3315                Item = std::result::Result<super::Event, tonic::Status>,
3316            > + std::marker::Send
3317            + 'static;
3318        async fn events(
3319            &self,
3320            request: tonic::Request<super::EventsRequest>,
3321        ) -> std::result::Result<tonic::Response<Self::EventsStream>, tonic::Status>;
3322        async fn etcd_member_list(
3323            &self,
3324            request: tonic::Request<super::EtcdMemberListRequest>,
3325        ) -> std::result::Result<tonic::Response<super::EtcdMemberListResponse>, tonic::Status>;
3326        /// EtcdRemoveMemberByID removes a member from the etcd cluster identified by member ID.
3327        /// This API should be used to remove members which don't have an associated Talos node anymore.
3328        /// To remove a member with a running Talos node, use EtcdLeaveCluster API on the node to be removed.
3329        async fn etcd_remove_member_by_id(
3330            &self,
3331            request: tonic::Request<super::EtcdRemoveMemberByIdRequest>,
3332        ) -> std::result::Result<tonic::Response<super::EtcdRemoveMemberByIdResponse>, tonic::Status>;
3333        async fn etcd_leave_cluster(
3334            &self,
3335            request: tonic::Request<super::EtcdLeaveClusterRequest>,
3336        ) -> std::result::Result<tonic::Response<super::EtcdLeaveClusterResponse>, tonic::Status>;
3337        async fn etcd_forfeit_leadership(
3338            &self,
3339            request: tonic::Request<super::EtcdForfeitLeadershipRequest>,
3340        ) -> std::result::Result<tonic::Response<super::EtcdForfeitLeadershipResponse>, tonic::Status>;
3341        /// EtcdRecover method uploads etcd data snapshot created with EtcdSnapshot
3342        /// to the node.
3343        /// Snapshot can be later used to recover the cluster via Bootstrap method.
3344        async fn etcd_recover(
3345            &self,
3346            request: tonic::Request<tonic::Streaming<super::super::common::Data>>,
3347        ) -> std::result::Result<tonic::Response<super::EtcdRecoverResponse>, tonic::Status>;
3348        /// Server streaming response type for the EtcdSnapshot method.
3349        type EtcdSnapshotStream: tonic::codegen::tokio_stream::Stream<
3350                Item = std::result::Result<super::super::common::Data, tonic::Status>,
3351            > + std::marker::Send
3352            + 'static;
3353        /// EtcdSnapshot method creates etcd data snapshot (backup) from the local etcd instance
3354        /// and streams it back to the client.
3355        /// This method is available only on control plane nodes (which run etcd).
3356        async fn etcd_snapshot(
3357            &self,
3358            request: tonic::Request<super::EtcdSnapshotRequest>,
3359        ) -> std::result::Result<tonic::Response<Self::EtcdSnapshotStream>, tonic::Status>;
3360        /// EtcdAlarmList lists etcd alarms for the current node.
3361        /// This method is available only on control plane nodes (which run etcd).
3362        async fn etcd_alarm_list(
3363            &self,
3364            request: tonic::Request<()>,
3365        ) -> std::result::Result<tonic::Response<super::EtcdAlarmListResponse>, tonic::Status>;
3366        /// EtcdAlarmDisarm disarms etcd alarms for the current node.
3367        /// This method is available only on control plane nodes (which run etcd).
3368        async fn etcd_alarm_disarm(
3369            &self,
3370            request: tonic::Request<()>,
3371        ) -> std::result::Result<tonic::Response<super::EtcdAlarmDisarmResponse>, tonic::Status>;
3372        /// EtcdDefragment defragments etcd data directory for the current node.
3373        /// Defragmentation is a resource-heavy operation, so it should only run on a specific
3374        /// node.
3375        /// This method is available only on control plane nodes (which run etcd).
3376        async fn etcd_defragment(
3377            &self,
3378            request: tonic::Request<()>,
3379        ) -> std::result::Result<tonic::Response<super::EtcdDefragmentResponse>, tonic::Status>;
3380        /// EtcdStatus returns etcd status for the current member.
3381        /// This method is available only on control plane nodes (which run etcd).
3382        async fn etcd_status(
3383            &self,
3384            request: tonic::Request<()>,
3385        ) -> std::result::Result<tonic::Response<super::EtcdStatusResponse>, tonic::Status>;
3386        /// EtcdDowngradeValidate validates etcd cluster for downgrade to a specific version.
3387        /// This method is available only on control plane nodes (which run etcd).
3388        async fn etcd_downgrade_validate(
3389            &self,
3390            request: tonic::Request<super::EtcdDowngradeValidateRequest>,
3391        ) -> std::result::Result<tonic::Response<super::EtcdDowngradeValidateResponse>, tonic::Status>;
3392        /// EtcdDowngradeEnable enables etcd cluster downgrade to a specific version.
3393        /// This method is available only on control plane nodes (which run etcd).
3394        async fn etcd_downgrade_enable(
3395            &self,
3396            request: tonic::Request<super::EtcdDowngradeEnableRequest>,
3397        ) -> std::result::Result<tonic::Response<super::EtcdDowngradeEnableResponse>, tonic::Status>;
3398        /// EtcdDowngradeCancel cancels etcd cluster downgrade that is in progress.
3399        /// This method is available only on control plane nodes (which run etcd).
3400        async fn etcd_downgrade_cancel(
3401            &self,
3402            request: tonic::Request<()>,
3403        ) -> std::result::Result<tonic::Response<super::EtcdDowngradeCancelResponse>, tonic::Status>;
3404        async fn hostname(
3405            &self,
3406            request: tonic::Request<()>,
3407        ) -> std::result::Result<tonic::Response<super::HostnameResponse>, tonic::Status>;
3408        /// Server streaming response type for the Kubeconfig method.
3409        type KubeconfigStream: tonic::codegen::tokio_stream::Stream<
3410                Item = std::result::Result<super::super::common::Data, tonic::Status>,
3411            > + std::marker::Send
3412            + 'static;
3413        async fn kubeconfig(
3414            &self,
3415            request: tonic::Request<()>,
3416        ) -> std::result::Result<tonic::Response<Self::KubeconfigStream>, tonic::Status>;
3417        /// Server streaming response type for the List method.
3418        type ListStream: tonic::codegen::tokio_stream::Stream<
3419                Item = std::result::Result<super::FileInfo, tonic::Status>,
3420            > + std::marker::Send
3421            + 'static;
3422        async fn list(
3423            &self,
3424            request: tonic::Request<super::ListRequest>,
3425        ) -> std::result::Result<tonic::Response<Self::ListStream>, tonic::Status>;
3426        /// Server streaming response type for the DiskUsage method.
3427        type DiskUsageStream: tonic::codegen::tokio_stream::Stream<
3428                Item = std::result::Result<super::DiskUsageInfo, tonic::Status>,
3429            > + std::marker::Send
3430            + 'static;
3431        async fn disk_usage(
3432            &self,
3433            request: tonic::Request<super::DiskUsageRequest>,
3434        ) -> std::result::Result<tonic::Response<Self::DiskUsageStream>, tonic::Status>;
3435        async fn load_avg(
3436            &self,
3437            request: tonic::Request<()>,
3438        ) -> std::result::Result<tonic::Response<super::LoadAvgResponse>, tonic::Status>;
3439        /// Server streaming response type for the Logs method.
3440        type LogsStream: tonic::codegen::tokio_stream::Stream<
3441                Item = std::result::Result<super::super::common::Data, tonic::Status>,
3442            > + std::marker::Send
3443            + 'static;
3444        async fn logs(
3445            &self,
3446            request: tonic::Request<super::LogsRequest>,
3447        ) -> std::result::Result<tonic::Response<Self::LogsStream>, tonic::Status>;
3448        async fn logs_containers(
3449            &self,
3450            request: tonic::Request<()>,
3451        ) -> std::result::Result<tonic::Response<super::LogsContainersResponse>, tonic::Status>;
3452        async fn memory(
3453            &self,
3454            request: tonic::Request<()>,
3455        ) -> std::result::Result<tonic::Response<super::MemoryResponse>, tonic::Status>;
3456        async fn mounts(
3457            &self,
3458            request: tonic::Request<()>,
3459        ) -> std::result::Result<tonic::Response<super::MountsResponse>, tonic::Status>;
3460        async fn network_device_stats(
3461            &self,
3462            request: tonic::Request<()>,
3463        ) -> std::result::Result<tonic::Response<super::NetworkDeviceStatsResponse>, tonic::Status>;
3464        async fn processes(
3465            &self,
3466            request: tonic::Request<()>,
3467        ) -> std::result::Result<tonic::Response<super::ProcessesResponse>, tonic::Status>;
3468        /// Server streaming response type for the Read method.
3469        type ReadStream: tonic::codegen::tokio_stream::Stream<
3470                Item = std::result::Result<super::super::common::Data, tonic::Status>,
3471            > + std::marker::Send
3472            + 'static;
3473        async fn read(
3474            &self,
3475            request: tonic::Request<super::ReadRequest>,
3476        ) -> std::result::Result<tonic::Response<Self::ReadStream>, tonic::Status>;
3477        async fn reboot(
3478            &self,
3479            request: tonic::Request<super::RebootRequest>,
3480        ) -> std::result::Result<tonic::Response<super::RebootResponse>, tonic::Status>;
3481        async fn restart(
3482            &self,
3483            request: tonic::Request<super::RestartRequest>,
3484        ) -> std::result::Result<tonic::Response<super::RestartResponse>, tonic::Status>;
3485        async fn rollback(
3486            &self,
3487            request: tonic::Request<super::RollbackRequest>,
3488        ) -> std::result::Result<tonic::Response<super::RollbackResponse>, tonic::Status>;
3489        async fn reset(
3490            &self,
3491            request: tonic::Request<super::ResetRequest>,
3492        ) -> std::result::Result<tonic::Response<super::ResetResponse>, tonic::Status>;
3493        async fn service_list(
3494            &self,
3495            request: tonic::Request<()>,
3496        ) -> std::result::Result<tonic::Response<super::ServiceListResponse>, tonic::Status>;
3497        async fn service_restart(
3498            &self,
3499            request: tonic::Request<super::ServiceRestartRequest>,
3500        ) -> std::result::Result<tonic::Response<super::ServiceRestartResponse>, tonic::Status>;
3501        async fn service_start(
3502            &self,
3503            request: tonic::Request<super::ServiceStartRequest>,
3504        ) -> std::result::Result<tonic::Response<super::ServiceStartResponse>, tonic::Status>;
3505        async fn service_stop(
3506            &self,
3507            request: tonic::Request<super::ServiceStopRequest>,
3508        ) -> std::result::Result<tonic::Response<super::ServiceStopResponse>, tonic::Status>;
3509        async fn shutdown(
3510            &self,
3511            request: tonic::Request<super::ShutdownRequest>,
3512        ) -> std::result::Result<tonic::Response<super::ShutdownResponse>, tonic::Status>;
3513        async fn stats(
3514            &self,
3515            request: tonic::Request<super::StatsRequest>,
3516        ) -> std::result::Result<tonic::Response<super::StatsResponse>, tonic::Status>;
3517        async fn system_stat(
3518            &self,
3519            request: tonic::Request<()>,
3520        ) -> std::result::Result<tonic::Response<super::SystemStatResponse>, tonic::Status>;
3521        async fn upgrade(
3522            &self,
3523            request: tonic::Request<super::UpgradeRequest>,
3524        ) -> std::result::Result<tonic::Response<super::UpgradeResponse>, tonic::Status>;
3525        async fn version(
3526            &self,
3527            request: tonic::Request<()>,
3528        ) -> std::result::Result<tonic::Response<super::VersionResponse>, tonic::Status>;
3529        /// GenerateClientConfiguration generates talosctl client configuration (talosconfig).
3530        async fn generate_client_configuration(
3531            &self,
3532            request: tonic::Request<super::GenerateClientConfigurationRequest>,
3533        ) -> std::result::Result<
3534            tonic::Response<super::GenerateClientConfigurationResponse>,
3535            tonic::Status,
3536        >;
3537        /// Server streaming response type for the PacketCapture method.
3538        type PacketCaptureStream: tonic::codegen::tokio_stream::Stream<
3539                Item = std::result::Result<super::super::common::Data, tonic::Status>,
3540            > + std::marker::Send
3541            + 'static;
3542        /// PacketCapture performs packet capture and streams back pcap file.
3543        async fn packet_capture(
3544            &self,
3545            request: tonic::Request<super::PacketCaptureRequest>,
3546        ) -> std::result::Result<tonic::Response<Self::PacketCaptureStream>, tonic::Status>;
3547        /// Netstat provides information about network connections.
3548        async fn netstat(
3549            &self,
3550            request: tonic::Request<super::NetstatRequest>,
3551        ) -> std::result::Result<tonic::Response<super::NetstatResponse>, tonic::Status>;
3552        /// MetaWrite writes a META key-value pair.
3553        async fn meta_write(
3554            &self,
3555            request: tonic::Request<super::MetaWriteRequest>,
3556        ) -> std::result::Result<tonic::Response<super::MetaWriteResponse>, tonic::Status>;
3557        /// MetaDelete deletes a META key.
3558        async fn meta_delete(
3559            &self,
3560            request: tonic::Request<super::MetaDeleteRequest>,
3561        ) -> std::result::Result<tonic::Response<super::MetaDeleteResponse>, tonic::Status>;
3562        /// Server streaming response type for the ImageList method.
3563        type ImageListStream: tonic::codegen::tokio_stream::Stream<
3564                Item = std::result::Result<super::ImageListResponse, tonic::Status>,
3565            > + std::marker::Send
3566            + 'static;
3567        /// ImageList lists images in the CRI.
3568        async fn image_list(
3569            &self,
3570            request: tonic::Request<super::ImageListRequest>,
3571        ) -> std::result::Result<tonic::Response<Self::ImageListStream>, tonic::Status>;
3572        /// ImagePull pulls an image into the CRI.
3573        async fn image_pull(
3574            &self,
3575            request: tonic::Request<super::ImagePullRequest>,
3576        ) -> std::result::Result<tonic::Response<super::ImagePullResponse>, tonic::Status>;
3577    }
3578    /// The machine service definition.
3579    #[derive(Debug)]
3580    pub struct MachineServiceServer<T> {
3581        inner: Arc<T>,
3582        accept_compression_encodings: EnabledCompressionEncodings,
3583        send_compression_encodings: EnabledCompressionEncodings,
3584        max_decoding_message_size: Option<usize>,
3585        max_encoding_message_size: Option<usize>,
3586    }
3587    impl<T> MachineServiceServer<T> {
3588        pub fn new(inner: T) -> Self {
3589            Self::from_arc(Arc::new(inner))
3590        }
3591        pub fn from_arc(inner: Arc<T>) -> Self {
3592            Self {
3593                inner,
3594                accept_compression_encodings: Default::default(),
3595                send_compression_encodings: Default::default(),
3596                max_decoding_message_size: None,
3597                max_encoding_message_size: None,
3598            }
3599        }
3600        pub fn with_interceptor<F>(inner: T, interceptor: F) -> InterceptedService<Self, F>
3601        where
3602            F: tonic::service::Interceptor,
3603        {
3604            InterceptedService::new(Self::new(inner), interceptor)
3605        }
3606        /// Enable decompressing requests with the given encoding.
3607        #[must_use]
3608        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
3609            self.accept_compression_encodings.enable(encoding);
3610            self
3611        }
3612        /// Compress responses with the given encoding, if the client supports it.
3613        #[must_use]
3614        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
3615            self.send_compression_encodings.enable(encoding);
3616            self
3617        }
3618        /// Limits the maximum size of a decoded message.
3619        ///
3620        /// Default: `4MB`
3621        #[must_use]
3622        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
3623            self.max_decoding_message_size = Some(limit);
3624            self
3625        }
3626        /// Limits the maximum size of an encoded message.
3627        ///
3628        /// Default: `usize::MAX`
3629        #[must_use]
3630        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
3631            self.max_encoding_message_size = Some(limit);
3632            self
3633        }
3634    }
3635    impl<T, B> tonic::codegen::Service<http::Request<B>> for MachineServiceServer<T>
3636    where
3637        T: MachineService,
3638        B: Body + std::marker::Send + 'static,
3639        B::Error: Into<StdError> + std::marker::Send + 'static,
3640    {
3641        type Response = http::Response<tonic::body::Body>;
3642        type Error = std::convert::Infallible;
3643        type Future = BoxFuture<Self::Response, Self::Error>;
3644        fn poll_ready(
3645            &mut self,
3646            _cx: &mut Context<'_>,
3647        ) -> Poll<std::result::Result<(), Self::Error>> {
3648            Poll::Ready(Ok(()))
3649        }
3650        fn call(&mut self, req: http::Request<B>) -> Self::Future {
3651            match req.uri().path() {
3652                "/machine.MachineService/ApplyConfiguration" => {
3653                    #[allow(non_camel_case_types)]
3654                    struct ApplyConfigurationSvc<T: MachineService>(pub Arc<T>);
3655                    impl<T: MachineService>
3656                        tonic::server::UnaryService<super::ApplyConfigurationRequest>
3657                        for ApplyConfigurationSvc<T>
3658                    {
3659                        type Response = super::ApplyConfigurationResponse;
3660                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3661                        fn call(
3662                            &mut self,
3663                            request: tonic::Request<super::ApplyConfigurationRequest>,
3664                        ) -> Self::Future {
3665                            let inner = Arc::clone(&self.0);
3666                            let fut = async move {
3667                                <T as MachineService>::apply_configuration(&inner, request).await
3668                            };
3669                            Box::pin(fut)
3670                        }
3671                    }
3672                    let accept_compression_encodings = self.accept_compression_encodings;
3673                    let send_compression_encodings = self.send_compression_encodings;
3674                    let max_decoding_message_size = self.max_decoding_message_size;
3675                    let max_encoding_message_size = self.max_encoding_message_size;
3676                    let inner = self.inner.clone();
3677                    let fut = async move {
3678                        let method = ApplyConfigurationSvc(inner);
3679                        let codec = tonic_prost::ProstCodec::default();
3680                        let mut grpc = tonic::server::Grpc::new(codec)
3681                            .apply_compression_config(
3682                                accept_compression_encodings,
3683                                send_compression_encodings,
3684                            )
3685                            .apply_max_message_size_config(
3686                                max_decoding_message_size,
3687                                max_encoding_message_size,
3688                            );
3689                        let res = grpc.unary(method, req).await;
3690                        Ok(res)
3691                    };
3692                    Box::pin(fut)
3693                }
3694                "/machine.MachineService/Bootstrap" => {
3695                    #[allow(non_camel_case_types)]
3696                    struct BootstrapSvc<T: MachineService>(pub Arc<T>);
3697                    impl<T: MachineService> tonic::server::UnaryService<super::BootstrapRequest> for BootstrapSvc<T> {
3698                        type Response = super::BootstrapResponse;
3699                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3700                        fn call(
3701                            &mut self,
3702                            request: tonic::Request<super::BootstrapRequest>,
3703                        ) -> Self::Future {
3704                            let inner = Arc::clone(&self.0);
3705                            let fut = async move {
3706                                <T as MachineService>::bootstrap(&inner, request).await
3707                            };
3708                            Box::pin(fut)
3709                        }
3710                    }
3711                    let accept_compression_encodings = self.accept_compression_encodings;
3712                    let send_compression_encodings = self.send_compression_encodings;
3713                    let max_decoding_message_size = self.max_decoding_message_size;
3714                    let max_encoding_message_size = self.max_encoding_message_size;
3715                    let inner = self.inner.clone();
3716                    let fut = async move {
3717                        let method = BootstrapSvc(inner);
3718                        let codec = tonic_prost::ProstCodec::default();
3719                        let mut grpc = tonic::server::Grpc::new(codec)
3720                            .apply_compression_config(
3721                                accept_compression_encodings,
3722                                send_compression_encodings,
3723                            )
3724                            .apply_max_message_size_config(
3725                                max_decoding_message_size,
3726                                max_encoding_message_size,
3727                            );
3728                        let res = grpc.unary(method, req).await;
3729                        Ok(res)
3730                    };
3731                    Box::pin(fut)
3732                }
3733                "/machine.MachineService/Containers" => {
3734                    #[allow(non_camel_case_types)]
3735                    struct ContainersSvc<T: MachineService>(pub Arc<T>);
3736                    impl<T: MachineService> tonic::server::UnaryService<super::ContainersRequest> for ContainersSvc<T> {
3737                        type Response = super::ContainersResponse;
3738                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3739                        fn call(
3740                            &mut self,
3741                            request: tonic::Request<super::ContainersRequest>,
3742                        ) -> Self::Future {
3743                            let inner = Arc::clone(&self.0);
3744                            let fut = async move {
3745                                <T as MachineService>::containers(&inner, request).await
3746                            };
3747                            Box::pin(fut)
3748                        }
3749                    }
3750                    let accept_compression_encodings = self.accept_compression_encodings;
3751                    let send_compression_encodings = self.send_compression_encodings;
3752                    let max_decoding_message_size = self.max_decoding_message_size;
3753                    let max_encoding_message_size = self.max_encoding_message_size;
3754                    let inner = self.inner.clone();
3755                    let fut = async move {
3756                        let method = ContainersSvc(inner);
3757                        let codec = tonic_prost::ProstCodec::default();
3758                        let mut grpc = tonic::server::Grpc::new(codec)
3759                            .apply_compression_config(
3760                                accept_compression_encodings,
3761                                send_compression_encodings,
3762                            )
3763                            .apply_max_message_size_config(
3764                                max_decoding_message_size,
3765                                max_encoding_message_size,
3766                            );
3767                        let res = grpc.unary(method, req).await;
3768                        Ok(res)
3769                    };
3770                    Box::pin(fut)
3771                }
3772                "/machine.MachineService/Copy" => {
3773                    #[allow(non_camel_case_types)]
3774                    struct CopySvc<T: MachineService>(pub Arc<T>);
3775                    impl<T: MachineService>
3776                        tonic::server::ServerStreamingService<super::CopyRequest> for CopySvc<T>
3777                    {
3778                        type Response = super::super::common::Data;
3779                        type ResponseStream = T::CopyStream;
3780                        type Future =
3781                            BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3782                        fn call(
3783                            &mut self,
3784                            request: tonic::Request<super::CopyRequest>,
3785                        ) -> Self::Future {
3786                            let inner = Arc::clone(&self.0);
3787                            let fut =
3788                                async move { <T as MachineService>::copy(&inner, request).await };
3789                            Box::pin(fut)
3790                        }
3791                    }
3792                    let accept_compression_encodings = self.accept_compression_encodings;
3793                    let send_compression_encodings = self.send_compression_encodings;
3794                    let max_decoding_message_size = self.max_decoding_message_size;
3795                    let max_encoding_message_size = self.max_encoding_message_size;
3796                    let inner = self.inner.clone();
3797                    let fut = async move {
3798                        let method = CopySvc(inner);
3799                        let codec = tonic_prost::ProstCodec::default();
3800                        let mut grpc = tonic::server::Grpc::new(codec)
3801                            .apply_compression_config(
3802                                accept_compression_encodings,
3803                                send_compression_encodings,
3804                            )
3805                            .apply_max_message_size_config(
3806                                max_decoding_message_size,
3807                                max_encoding_message_size,
3808                            );
3809                        let res = grpc.server_streaming(method, req).await;
3810                        Ok(res)
3811                    };
3812                    Box::pin(fut)
3813                }
3814                "/machine.MachineService/CPUFreqStats" => {
3815                    #[allow(non_camel_case_types)]
3816                    struct CPUFreqStatsSvc<T: MachineService>(pub Arc<T>);
3817                    impl<T: MachineService> tonic::server::UnaryService<()> for CPUFreqStatsSvc<T> {
3818                        type Response = super::CpuFreqStatsResponse;
3819                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3820                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
3821                            let inner = Arc::clone(&self.0);
3822                            let fut = async move {
3823                                <T as MachineService>::cpu_freq_stats(&inner, request).await
3824                            };
3825                            Box::pin(fut)
3826                        }
3827                    }
3828                    let accept_compression_encodings = self.accept_compression_encodings;
3829                    let send_compression_encodings = self.send_compression_encodings;
3830                    let max_decoding_message_size = self.max_decoding_message_size;
3831                    let max_encoding_message_size = self.max_encoding_message_size;
3832                    let inner = self.inner.clone();
3833                    let fut = async move {
3834                        let method = CPUFreqStatsSvc(inner);
3835                        let codec = tonic_prost::ProstCodec::default();
3836                        let mut grpc = tonic::server::Grpc::new(codec)
3837                            .apply_compression_config(
3838                                accept_compression_encodings,
3839                                send_compression_encodings,
3840                            )
3841                            .apply_max_message_size_config(
3842                                max_decoding_message_size,
3843                                max_encoding_message_size,
3844                            );
3845                        let res = grpc.unary(method, req).await;
3846                        Ok(res)
3847                    };
3848                    Box::pin(fut)
3849                }
3850                "/machine.MachineService/CPUInfo" => {
3851                    #[allow(non_camel_case_types)]
3852                    struct CPUInfoSvc<T: MachineService>(pub Arc<T>);
3853                    impl<T: MachineService> tonic::server::UnaryService<()> for CPUInfoSvc<T> {
3854                        type Response = super::CpuInfoResponse;
3855                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3856                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
3857                            let inner = Arc::clone(&self.0);
3858                            let fut = async move {
3859                                <T as MachineService>::cpu_info(&inner, request).await
3860                            };
3861                            Box::pin(fut)
3862                        }
3863                    }
3864                    let accept_compression_encodings = self.accept_compression_encodings;
3865                    let send_compression_encodings = self.send_compression_encodings;
3866                    let max_decoding_message_size = self.max_decoding_message_size;
3867                    let max_encoding_message_size = self.max_encoding_message_size;
3868                    let inner = self.inner.clone();
3869                    let fut = async move {
3870                        let method = CPUInfoSvc(inner);
3871                        let codec = tonic_prost::ProstCodec::default();
3872                        let mut grpc = tonic::server::Grpc::new(codec)
3873                            .apply_compression_config(
3874                                accept_compression_encodings,
3875                                send_compression_encodings,
3876                            )
3877                            .apply_max_message_size_config(
3878                                max_decoding_message_size,
3879                                max_encoding_message_size,
3880                            );
3881                        let res = grpc.unary(method, req).await;
3882                        Ok(res)
3883                    };
3884                    Box::pin(fut)
3885                }
3886                "/machine.MachineService/DiskStats" => {
3887                    #[allow(non_camel_case_types)]
3888                    struct DiskStatsSvc<T: MachineService>(pub Arc<T>);
3889                    impl<T: MachineService> tonic::server::UnaryService<()> for DiskStatsSvc<T> {
3890                        type Response = super::DiskStatsResponse;
3891                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
3892                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
3893                            let inner = Arc::clone(&self.0);
3894                            let fut = async move {
3895                                <T as MachineService>::disk_stats(&inner, request).await
3896                            };
3897                            Box::pin(fut)
3898                        }
3899                    }
3900                    let accept_compression_encodings = self.accept_compression_encodings;
3901                    let send_compression_encodings = self.send_compression_encodings;
3902                    let max_decoding_message_size = self.max_decoding_message_size;
3903                    let max_encoding_message_size = self.max_encoding_message_size;
3904                    let inner = self.inner.clone();
3905                    let fut = async move {
3906                        let method = DiskStatsSvc(inner);
3907                        let codec = tonic_prost::ProstCodec::default();
3908                        let mut grpc = tonic::server::Grpc::new(codec)
3909                            .apply_compression_config(
3910                                accept_compression_encodings,
3911                                send_compression_encodings,
3912                            )
3913                            .apply_max_message_size_config(
3914                                max_decoding_message_size,
3915                                max_encoding_message_size,
3916                            );
3917                        let res = grpc.unary(method, req).await;
3918                        Ok(res)
3919                    };
3920                    Box::pin(fut)
3921                }
3922                "/machine.MachineService/Dmesg" => {
3923                    #[allow(non_camel_case_types)]
3924                    struct DmesgSvc<T: MachineService>(pub Arc<T>);
3925                    impl<T: MachineService>
3926                        tonic::server::ServerStreamingService<super::DmesgRequest> for DmesgSvc<T>
3927                    {
3928                        type Response = super::super::common::Data;
3929                        type ResponseStream = T::DmesgStream;
3930                        type Future =
3931                            BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3932                        fn call(
3933                            &mut self,
3934                            request: tonic::Request<super::DmesgRequest>,
3935                        ) -> Self::Future {
3936                            let inner = Arc::clone(&self.0);
3937                            let fut =
3938                                async move { <T as MachineService>::dmesg(&inner, request).await };
3939                            Box::pin(fut)
3940                        }
3941                    }
3942                    let accept_compression_encodings = self.accept_compression_encodings;
3943                    let send_compression_encodings = self.send_compression_encodings;
3944                    let max_decoding_message_size = self.max_decoding_message_size;
3945                    let max_encoding_message_size = self.max_encoding_message_size;
3946                    let inner = self.inner.clone();
3947                    let fut = async move {
3948                        let method = DmesgSvc(inner);
3949                        let codec = tonic_prost::ProstCodec::default();
3950                        let mut grpc = tonic::server::Grpc::new(codec)
3951                            .apply_compression_config(
3952                                accept_compression_encodings,
3953                                send_compression_encodings,
3954                            )
3955                            .apply_max_message_size_config(
3956                                max_decoding_message_size,
3957                                max_encoding_message_size,
3958                            );
3959                        let res = grpc.server_streaming(method, req).await;
3960                        Ok(res)
3961                    };
3962                    Box::pin(fut)
3963                }
3964                "/machine.MachineService/Events" => {
3965                    #[allow(non_camel_case_types)]
3966                    struct EventsSvc<T: MachineService>(pub Arc<T>);
3967                    impl<T: MachineService>
3968                        tonic::server::ServerStreamingService<super::EventsRequest>
3969                        for EventsSvc<T>
3970                    {
3971                        type Response = super::Event;
3972                        type ResponseStream = T::EventsStream;
3973                        type Future =
3974                            BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
3975                        fn call(
3976                            &mut self,
3977                            request: tonic::Request<super::EventsRequest>,
3978                        ) -> Self::Future {
3979                            let inner = Arc::clone(&self.0);
3980                            let fut =
3981                                async move { <T as MachineService>::events(&inner, request).await };
3982                            Box::pin(fut)
3983                        }
3984                    }
3985                    let accept_compression_encodings = self.accept_compression_encodings;
3986                    let send_compression_encodings = self.send_compression_encodings;
3987                    let max_decoding_message_size = self.max_decoding_message_size;
3988                    let max_encoding_message_size = self.max_encoding_message_size;
3989                    let inner = self.inner.clone();
3990                    let fut = async move {
3991                        let method = EventsSvc(inner);
3992                        let codec = tonic_prost::ProstCodec::default();
3993                        let mut grpc = tonic::server::Grpc::new(codec)
3994                            .apply_compression_config(
3995                                accept_compression_encodings,
3996                                send_compression_encodings,
3997                            )
3998                            .apply_max_message_size_config(
3999                                max_decoding_message_size,
4000                                max_encoding_message_size,
4001                            );
4002                        let res = grpc.server_streaming(method, req).await;
4003                        Ok(res)
4004                    };
4005                    Box::pin(fut)
4006                }
4007                "/machine.MachineService/EtcdMemberList" => {
4008                    #[allow(non_camel_case_types)]
4009                    struct EtcdMemberListSvc<T: MachineService>(pub Arc<T>);
4010                    impl<T: MachineService>
4011                        tonic::server::UnaryService<super::EtcdMemberListRequest>
4012                        for EtcdMemberListSvc<T>
4013                    {
4014                        type Response = super::EtcdMemberListResponse;
4015                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4016                        fn call(
4017                            &mut self,
4018                            request: tonic::Request<super::EtcdMemberListRequest>,
4019                        ) -> Self::Future {
4020                            let inner = Arc::clone(&self.0);
4021                            let fut = async move {
4022                                <T as MachineService>::etcd_member_list(&inner, request).await
4023                            };
4024                            Box::pin(fut)
4025                        }
4026                    }
4027                    let accept_compression_encodings = self.accept_compression_encodings;
4028                    let send_compression_encodings = self.send_compression_encodings;
4029                    let max_decoding_message_size = self.max_decoding_message_size;
4030                    let max_encoding_message_size = self.max_encoding_message_size;
4031                    let inner = self.inner.clone();
4032                    let fut = async move {
4033                        let method = EtcdMemberListSvc(inner);
4034                        let codec = tonic_prost::ProstCodec::default();
4035                        let mut grpc = tonic::server::Grpc::new(codec)
4036                            .apply_compression_config(
4037                                accept_compression_encodings,
4038                                send_compression_encodings,
4039                            )
4040                            .apply_max_message_size_config(
4041                                max_decoding_message_size,
4042                                max_encoding_message_size,
4043                            );
4044                        let res = grpc.unary(method, req).await;
4045                        Ok(res)
4046                    };
4047                    Box::pin(fut)
4048                }
4049                "/machine.MachineService/EtcdRemoveMemberByID" => {
4050                    #[allow(non_camel_case_types)]
4051                    struct EtcdRemoveMemberByIDSvc<T: MachineService>(pub Arc<T>);
4052                    impl<T: MachineService>
4053                        tonic::server::UnaryService<super::EtcdRemoveMemberByIdRequest>
4054                        for EtcdRemoveMemberByIDSvc<T>
4055                    {
4056                        type Response = super::EtcdRemoveMemberByIdResponse;
4057                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4058                        fn call(
4059                            &mut self,
4060                            request: tonic::Request<super::EtcdRemoveMemberByIdRequest>,
4061                        ) -> Self::Future {
4062                            let inner = Arc::clone(&self.0);
4063                            let fut = async move {
4064                                <T as MachineService>::etcd_remove_member_by_id(&inner, request)
4065                                    .await
4066                            };
4067                            Box::pin(fut)
4068                        }
4069                    }
4070                    let accept_compression_encodings = self.accept_compression_encodings;
4071                    let send_compression_encodings = self.send_compression_encodings;
4072                    let max_decoding_message_size = self.max_decoding_message_size;
4073                    let max_encoding_message_size = self.max_encoding_message_size;
4074                    let inner = self.inner.clone();
4075                    let fut = async move {
4076                        let method = EtcdRemoveMemberByIDSvc(inner);
4077                        let codec = tonic_prost::ProstCodec::default();
4078                        let mut grpc = tonic::server::Grpc::new(codec)
4079                            .apply_compression_config(
4080                                accept_compression_encodings,
4081                                send_compression_encodings,
4082                            )
4083                            .apply_max_message_size_config(
4084                                max_decoding_message_size,
4085                                max_encoding_message_size,
4086                            );
4087                        let res = grpc.unary(method, req).await;
4088                        Ok(res)
4089                    };
4090                    Box::pin(fut)
4091                }
4092                "/machine.MachineService/EtcdLeaveCluster" => {
4093                    #[allow(non_camel_case_types)]
4094                    struct EtcdLeaveClusterSvc<T: MachineService>(pub Arc<T>);
4095                    impl<T: MachineService>
4096                        tonic::server::UnaryService<super::EtcdLeaveClusterRequest>
4097                        for EtcdLeaveClusterSvc<T>
4098                    {
4099                        type Response = super::EtcdLeaveClusterResponse;
4100                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4101                        fn call(
4102                            &mut self,
4103                            request: tonic::Request<super::EtcdLeaveClusterRequest>,
4104                        ) -> Self::Future {
4105                            let inner = Arc::clone(&self.0);
4106                            let fut = async move {
4107                                <T as MachineService>::etcd_leave_cluster(&inner, request).await
4108                            };
4109                            Box::pin(fut)
4110                        }
4111                    }
4112                    let accept_compression_encodings = self.accept_compression_encodings;
4113                    let send_compression_encodings = self.send_compression_encodings;
4114                    let max_decoding_message_size = self.max_decoding_message_size;
4115                    let max_encoding_message_size = self.max_encoding_message_size;
4116                    let inner = self.inner.clone();
4117                    let fut = async move {
4118                        let method = EtcdLeaveClusterSvc(inner);
4119                        let codec = tonic_prost::ProstCodec::default();
4120                        let mut grpc = tonic::server::Grpc::new(codec)
4121                            .apply_compression_config(
4122                                accept_compression_encodings,
4123                                send_compression_encodings,
4124                            )
4125                            .apply_max_message_size_config(
4126                                max_decoding_message_size,
4127                                max_encoding_message_size,
4128                            );
4129                        let res = grpc.unary(method, req).await;
4130                        Ok(res)
4131                    };
4132                    Box::pin(fut)
4133                }
4134                "/machine.MachineService/EtcdForfeitLeadership" => {
4135                    #[allow(non_camel_case_types)]
4136                    struct EtcdForfeitLeadershipSvc<T: MachineService>(pub Arc<T>);
4137                    impl<T: MachineService>
4138                        tonic::server::UnaryService<super::EtcdForfeitLeadershipRequest>
4139                        for EtcdForfeitLeadershipSvc<T>
4140                    {
4141                        type Response = super::EtcdForfeitLeadershipResponse;
4142                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4143                        fn call(
4144                            &mut self,
4145                            request: tonic::Request<super::EtcdForfeitLeadershipRequest>,
4146                        ) -> Self::Future {
4147                            let inner = Arc::clone(&self.0);
4148                            let fut = async move {
4149                                <T as MachineService>::etcd_forfeit_leadership(&inner, request)
4150                                    .await
4151                            };
4152                            Box::pin(fut)
4153                        }
4154                    }
4155                    let accept_compression_encodings = self.accept_compression_encodings;
4156                    let send_compression_encodings = self.send_compression_encodings;
4157                    let max_decoding_message_size = self.max_decoding_message_size;
4158                    let max_encoding_message_size = self.max_encoding_message_size;
4159                    let inner = self.inner.clone();
4160                    let fut = async move {
4161                        let method = EtcdForfeitLeadershipSvc(inner);
4162                        let codec = tonic_prost::ProstCodec::default();
4163                        let mut grpc = tonic::server::Grpc::new(codec)
4164                            .apply_compression_config(
4165                                accept_compression_encodings,
4166                                send_compression_encodings,
4167                            )
4168                            .apply_max_message_size_config(
4169                                max_decoding_message_size,
4170                                max_encoding_message_size,
4171                            );
4172                        let res = grpc.unary(method, req).await;
4173                        Ok(res)
4174                    };
4175                    Box::pin(fut)
4176                }
4177                "/machine.MachineService/EtcdRecover" => {
4178                    #[allow(non_camel_case_types)]
4179                    struct EtcdRecoverSvc<T: MachineService>(pub Arc<T>);
4180                    impl<T: MachineService>
4181                        tonic::server::ClientStreamingService<super::super::common::Data>
4182                        for EtcdRecoverSvc<T>
4183                    {
4184                        type Response = super::EtcdRecoverResponse;
4185                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4186                        fn call(
4187                            &mut self,
4188                            request: tonic::Request<tonic::Streaming<super::super::common::Data>>,
4189                        ) -> Self::Future {
4190                            let inner = Arc::clone(&self.0);
4191                            let fut = async move {
4192                                <T as MachineService>::etcd_recover(&inner, request).await
4193                            };
4194                            Box::pin(fut)
4195                        }
4196                    }
4197                    let accept_compression_encodings = self.accept_compression_encodings;
4198                    let send_compression_encodings = self.send_compression_encodings;
4199                    let max_decoding_message_size = self.max_decoding_message_size;
4200                    let max_encoding_message_size = self.max_encoding_message_size;
4201                    let inner = self.inner.clone();
4202                    let fut = async move {
4203                        let method = EtcdRecoverSvc(inner);
4204                        let codec = tonic_prost::ProstCodec::default();
4205                        let mut grpc = tonic::server::Grpc::new(codec)
4206                            .apply_compression_config(
4207                                accept_compression_encodings,
4208                                send_compression_encodings,
4209                            )
4210                            .apply_max_message_size_config(
4211                                max_decoding_message_size,
4212                                max_encoding_message_size,
4213                            );
4214                        let res = grpc.client_streaming(method, req).await;
4215                        Ok(res)
4216                    };
4217                    Box::pin(fut)
4218                }
4219                "/machine.MachineService/EtcdSnapshot" => {
4220                    #[allow(non_camel_case_types)]
4221                    struct EtcdSnapshotSvc<T: MachineService>(pub Arc<T>);
4222                    impl<T: MachineService>
4223                        tonic::server::ServerStreamingService<super::EtcdSnapshotRequest>
4224                        for EtcdSnapshotSvc<T>
4225                    {
4226                        type Response = super::super::common::Data;
4227                        type ResponseStream = T::EtcdSnapshotStream;
4228                        type Future =
4229                            BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
4230                        fn call(
4231                            &mut self,
4232                            request: tonic::Request<super::EtcdSnapshotRequest>,
4233                        ) -> Self::Future {
4234                            let inner = Arc::clone(&self.0);
4235                            let fut = async move {
4236                                <T as MachineService>::etcd_snapshot(&inner, request).await
4237                            };
4238                            Box::pin(fut)
4239                        }
4240                    }
4241                    let accept_compression_encodings = self.accept_compression_encodings;
4242                    let send_compression_encodings = self.send_compression_encodings;
4243                    let max_decoding_message_size = self.max_decoding_message_size;
4244                    let max_encoding_message_size = self.max_encoding_message_size;
4245                    let inner = self.inner.clone();
4246                    let fut = async move {
4247                        let method = EtcdSnapshotSvc(inner);
4248                        let codec = tonic_prost::ProstCodec::default();
4249                        let mut grpc = tonic::server::Grpc::new(codec)
4250                            .apply_compression_config(
4251                                accept_compression_encodings,
4252                                send_compression_encodings,
4253                            )
4254                            .apply_max_message_size_config(
4255                                max_decoding_message_size,
4256                                max_encoding_message_size,
4257                            );
4258                        let res = grpc.server_streaming(method, req).await;
4259                        Ok(res)
4260                    };
4261                    Box::pin(fut)
4262                }
4263                "/machine.MachineService/EtcdAlarmList" => {
4264                    #[allow(non_camel_case_types)]
4265                    struct EtcdAlarmListSvc<T: MachineService>(pub Arc<T>);
4266                    impl<T: MachineService> tonic::server::UnaryService<()> for EtcdAlarmListSvc<T> {
4267                        type Response = super::EtcdAlarmListResponse;
4268                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4269                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
4270                            let inner = Arc::clone(&self.0);
4271                            let fut = async move {
4272                                <T as MachineService>::etcd_alarm_list(&inner, request).await
4273                            };
4274                            Box::pin(fut)
4275                        }
4276                    }
4277                    let accept_compression_encodings = self.accept_compression_encodings;
4278                    let send_compression_encodings = self.send_compression_encodings;
4279                    let max_decoding_message_size = self.max_decoding_message_size;
4280                    let max_encoding_message_size = self.max_encoding_message_size;
4281                    let inner = self.inner.clone();
4282                    let fut = async move {
4283                        let method = EtcdAlarmListSvc(inner);
4284                        let codec = tonic_prost::ProstCodec::default();
4285                        let mut grpc = tonic::server::Grpc::new(codec)
4286                            .apply_compression_config(
4287                                accept_compression_encodings,
4288                                send_compression_encodings,
4289                            )
4290                            .apply_max_message_size_config(
4291                                max_decoding_message_size,
4292                                max_encoding_message_size,
4293                            );
4294                        let res = grpc.unary(method, req).await;
4295                        Ok(res)
4296                    };
4297                    Box::pin(fut)
4298                }
4299                "/machine.MachineService/EtcdAlarmDisarm" => {
4300                    #[allow(non_camel_case_types)]
4301                    struct EtcdAlarmDisarmSvc<T: MachineService>(pub Arc<T>);
4302                    impl<T: MachineService> tonic::server::UnaryService<()> for EtcdAlarmDisarmSvc<T> {
4303                        type Response = super::EtcdAlarmDisarmResponse;
4304                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4305                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
4306                            let inner = Arc::clone(&self.0);
4307                            let fut = async move {
4308                                <T as MachineService>::etcd_alarm_disarm(&inner, request).await
4309                            };
4310                            Box::pin(fut)
4311                        }
4312                    }
4313                    let accept_compression_encodings = self.accept_compression_encodings;
4314                    let send_compression_encodings = self.send_compression_encodings;
4315                    let max_decoding_message_size = self.max_decoding_message_size;
4316                    let max_encoding_message_size = self.max_encoding_message_size;
4317                    let inner = self.inner.clone();
4318                    let fut = async move {
4319                        let method = EtcdAlarmDisarmSvc(inner);
4320                        let codec = tonic_prost::ProstCodec::default();
4321                        let mut grpc = tonic::server::Grpc::new(codec)
4322                            .apply_compression_config(
4323                                accept_compression_encodings,
4324                                send_compression_encodings,
4325                            )
4326                            .apply_max_message_size_config(
4327                                max_decoding_message_size,
4328                                max_encoding_message_size,
4329                            );
4330                        let res = grpc.unary(method, req).await;
4331                        Ok(res)
4332                    };
4333                    Box::pin(fut)
4334                }
4335                "/machine.MachineService/EtcdDefragment" => {
4336                    #[allow(non_camel_case_types)]
4337                    struct EtcdDefragmentSvc<T: MachineService>(pub Arc<T>);
4338                    impl<T: MachineService> tonic::server::UnaryService<()> for EtcdDefragmentSvc<T> {
4339                        type Response = super::EtcdDefragmentResponse;
4340                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4341                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
4342                            let inner = Arc::clone(&self.0);
4343                            let fut = async move {
4344                                <T as MachineService>::etcd_defragment(&inner, request).await
4345                            };
4346                            Box::pin(fut)
4347                        }
4348                    }
4349                    let accept_compression_encodings = self.accept_compression_encodings;
4350                    let send_compression_encodings = self.send_compression_encodings;
4351                    let max_decoding_message_size = self.max_decoding_message_size;
4352                    let max_encoding_message_size = self.max_encoding_message_size;
4353                    let inner = self.inner.clone();
4354                    let fut = async move {
4355                        let method = EtcdDefragmentSvc(inner);
4356                        let codec = tonic_prost::ProstCodec::default();
4357                        let mut grpc = tonic::server::Grpc::new(codec)
4358                            .apply_compression_config(
4359                                accept_compression_encodings,
4360                                send_compression_encodings,
4361                            )
4362                            .apply_max_message_size_config(
4363                                max_decoding_message_size,
4364                                max_encoding_message_size,
4365                            );
4366                        let res = grpc.unary(method, req).await;
4367                        Ok(res)
4368                    };
4369                    Box::pin(fut)
4370                }
4371                "/machine.MachineService/EtcdStatus" => {
4372                    #[allow(non_camel_case_types)]
4373                    struct EtcdStatusSvc<T: MachineService>(pub Arc<T>);
4374                    impl<T: MachineService> tonic::server::UnaryService<()> for EtcdStatusSvc<T> {
4375                        type Response = super::EtcdStatusResponse;
4376                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4377                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
4378                            let inner = Arc::clone(&self.0);
4379                            let fut = async move {
4380                                <T as MachineService>::etcd_status(&inner, request).await
4381                            };
4382                            Box::pin(fut)
4383                        }
4384                    }
4385                    let accept_compression_encodings = self.accept_compression_encodings;
4386                    let send_compression_encodings = self.send_compression_encodings;
4387                    let max_decoding_message_size = self.max_decoding_message_size;
4388                    let max_encoding_message_size = self.max_encoding_message_size;
4389                    let inner = self.inner.clone();
4390                    let fut = async move {
4391                        let method = EtcdStatusSvc(inner);
4392                        let codec = tonic_prost::ProstCodec::default();
4393                        let mut grpc = tonic::server::Grpc::new(codec)
4394                            .apply_compression_config(
4395                                accept_compression_encodings,
4396                                send_compression_encodings,
4397                            )
4398                            .apply_max_message_size_config(
4399                                max_decoding_message_size,
4400                                max_encoding_message_size,
4401                            );
4402                        let res = grpc.unary(method, req).await;
4403                        Ok(res)
4404                    };
4405                    Box::pin(fut)
4406                }
4407                "/machine.MachineService/EtcdDowngradeValidate" => {
4408                    #[allow(non_camel_case_types)]
4409                    struct EtcdDowngradeValidateSvc<T: MachineService>(pub Arc<T>);
4410                    impl<T: MachineService>
4411                        tonic::server::UnaryService<super::EtcdDowngradeValidateRequest>
4412                        for EtcdDowngradeValidateSvc<T>
4413                    {
4414                        type Response = super::EtcdDowngradeValidateResponse;
4415                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4416                        fn call(
4417                            &mut self,
4418                            request: tonic::Request<super::EtcdDowngradeValidateRequest>,
4419                        ) -> Self::Future {
4420                            let inner = Arc::clone(&self.0);
4421                            let fut = async move {
4422                                <T as MachineService>::etcd_downgrade_validate(&inner, request)
4423                                    .await
4424                            };
4425                            Box::pin(fut)
4426                        }
4427                    }
4428                    let accept_compression_encodings = self.accept_compression_encodings;
4429                    let send_compression_encodings = self.send_compression_encodings;
4430                    let max_decoding_message_size = self.max_decoding_message_size;
4431                    let max_encoding_message_size = self.max_encoding_message_size;
4432                    let inner = self.inner.clone();
4433                    let fut = async move {
4434                        let method = EtcdDowngradeValidateSvc(inner);
4435                        let codec = tonic_prost::ProstCodec::default();
4436                        let mut grpc = tonic::server::Grpc::new(codec)
4437                            .apply_compression_config(
4438                                accept_compression_encodings,
4439                                send_compression_encodings,
4440                            )
4441                            .apply_max_message_size_config(
4442                                max_decoding_message_size,
4443                                max_encoding_message_size,
4444                            );
4445                        let res = grpc.unary(method, req).await;
4446                        Ok(res)
4447                    };
4448                    Box::pin(fut)
4449                }
4450                "/machine.MachineService/EtcdDowngradeEnable" => {
4451                    #[allow(non_camel_case_types)]
4452                    struct EtcdDowngradeEnableSvc<T: MachineService>(pub Arc<T>);
4453                    impl<T: MachineService>
4454                        tonic::server::UnaryService<super::EtcdDowngradeEnableRequest>
4455                        for EtcdDowngradeEnableSvc<T>
4456                    {
4457                        type Response = super::EtcdDowngradeEnableResponse;
4458                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4459                        fn call(
4460                            &mut self,
4461                            request: tonic::Request<super::EtcdDowngradeEnableRequest>,
4462                        ) -> Self::Future {
4463                            let inner = Arc::clone(&self.0);
4464                            let fut = async move {
4465                                <T as MachineService>::etcd_downgrade_enable(&inner, request).await
4466                            };
4467                            Box::pin(fut)
4468                        }
4469                    }
4470                    let accept_compression_encodings = self.accept_compression_encodings;
4471                    let send_compression_encodings = self.send_compression_encodings;
4472                    let max_decoding_message_size = self.max_decoding_message_size;
4473                    let max_encoding_message_size = self.max_encoding_message_size;
4474                    let inner = self.inner.clone();
4475                    let fut = async move {
4476                        let method = EtcdDowngradeEnableSvc(inner);
4477                        let codec = tonic_prost::ProstCodec::default();
4478                        let mut grpc = tonic::server::Grpc::new(codec)
4479                            .apply_compression_config(
4480                                accept_compression_encodings,
4481                                send_compression_encodings,
4482                            )
4483                            .apply_max_message_size_config(
4484                                max_decoding_message_size,
4485                                max_encoding_message_size,
4486                            );
4487                        let res = grpc.unary(method, req).await;
4488                        Ok(res)
4489                    };
4490                    Box::pin(fut)
4491                }
4492                "/machine.MachineService/EtcdDowngradeCancel" => {
4493                    #[allow(non_camel_case_types)]
4494                    struct EtcdDowngradeCancelSvc<T: MachineService>(pub Arc<T>);
4495                    impl<T: MachineService> tonic::server::UnaryService<()> for EtcdDowngradeCancelSvc<T> {
4496                        type Response = super::EtcdDowngradeCancelResponse;
4497                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4498                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
4499                            let inner = Arc::clone(&self.0);
4500                            let fut = async move {
4501                                <T as MachineService>::etcd_downgrade_cancel(&inner, request).await
4502                            };
4503                            Box::pin(fut)
4504                        }
4505                    }
4506                    let accept_compression_encodings = self.accept_compression_encodings;
4507                    let send_compression_encodings = self.send_compression_encodings;
4508                    let max_decoding_message_size = self.max_decoding_message_size;
4509                    let max_encoding_message_size = self.max_encoding_message_size;
4510                    let inner = self.inner.clone();
4511                    let fut = async move {
4512                        let method = EtcdDowngradeCancelSvc(inner);
4513                        let codec = tonic_prost::ProstCodec::default();
4514                        let mut grpc = tonic::server::Grpc::new(codec)
4515                            .apply_compression_config(
4516                                accept_compression_encodings,
4517                                send_compression_encodings,
4518                            )
4519                            .apply_max_message_size_config(
4520                                max_decoding_message_size,
4521                                max_encoding_message_size,
4522                            );
4523                        let res = grpc.unary(method, req).await;
4524                        Ok(res)
4525                    };
4526                    Box::pin(fut)
4527                }
4528                "/machine.MachineService/Hostname" => {
4529                    #[allow(non_camel_case_types)]
4530                    struct HostnameSvc<T: MachineService>(pub Arc<T>);
4531                    impl<T: MachineService> tonic::server::UnaryService<()> for HostnameSvc<T> {
4532                        type Response = super::HostnameResponse;
4533                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4534                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
4535                            let inner = Arc::clone(&self.0);
4536                            let fut = async move {
4537                                <T as MachineService>::hostname(&inner, request).await
4538                            };
4539                            Box::pin(fut)
4540                        }
4541                    }
4542                    let accept_compression_encodings = self.accept_compression_encodings;
4543                    let send_compression_encodings = self.send_compression_encodings;
4544                    let max_decoding_message_size = self.max_decoding_message_size;
4545                    let max_encoding_message_size = self.max_encoding_message_size;
4546                    let inner = self.inner.clone();
4547                    let fut = async move {
4548                        let method = HostnameSvc(inner);
4549                        let codec = tonic_prost::ProstCodec::default();
4550                        let mut grpc = tonic::server::Grpc::new(codec)
4551                            .apply_compression_config(
4552                                accept_compression_encodings,
4553                                send_compression_encodings,
4554                            )
4555                            .apply_max_message_size_config(
4556                                max_decoding_message_size,
4557                                max_encoding_message_size,
4558                            );
4559                        let res = grpc.unary(method, req).await;
4560                        Ok(res)
4561                    };
4562                    Box::pin(fut)
4563                }
4564                "/machine.MachineService/Kubeconfig" => {
4565                    #[allow(non_camel_case_types)]
4566                    struct KubeconfigSvc<T: MachineService>(pub Arc<T>);
4567                    impl<T: MachineService> tonic::server::ServerStreamingService<()> for KubeconfigSvc<T> {
4568                        type Response = super::super::common::Data;
4569                        type ResponseStream = T::KubeconfigStream;
4570                        type Future =
4571                            BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
4572                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
4573                            let inner = Arc::clone(&self.0);
4574                            let fut = async move {
4575                                <T as MachineService>::kubeconfig(&inner, request).await
4576                            };
4577                            Box::pin(fut)
4578                        }
4579                    }
4580                    let accept_compression_encodings = self.accept_compression_encodings;
4581                    let send_compression_encodings = self.send_compression_encodings;
4582                    let max_decoding_message_size = self.max_decoding_message_size;
4583                    let max_encoding_message_size = self.max_encoding_message_size;
4584                    let inner = self.inner.clone();
4585                    let fut = async move {
4586                        let method = KubeconfigSvc(inner);
4587                        let codec = tonic_prost::ProstCodec::default();
4588                        let mut grpc = tonic::server::Grpc::new(codec)
4589                            .apply_compression_config(
4590                                accept_compression_encodings,
4591                                send_compression_encodings,
4592                            )
4593                            .apply_max_message_size_config(
4594                                max_decoding_message_size,
4595                                max_encoding_message_size,
4596                            );
4597                        let res = grpc.server_streaming(method, req).await;
4598                        Ok(res)
4599                    };
4600                    Box::pin(fut)
4601                }
4602                "/machine.MachineService/List" => {
4603                    #[allow(non_camel_case_types)]
4604                    struct ListSvc<T: MachineService>(pub Arc<T>);
4605                    impl<T: MachineService>
4606                        tonic::server::ServerStreamingService<super::ListRequest> for ListSvc<T>
4607                    {
4608                        type Response = super::FileInfo;
4609                        type ResponseStream = T::ListStream;
4610                        type Future =
4611                            BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
4612                        fn call(
4613                            &mut self,
4614                            request: tonic::Request<super::ListRequest>,
4615                        ) -> Self::Future {
4616                            let inner = Arc::clone(&self.0);
4617                            let fut =
4618                                async move { <T as MachineService>::list(&inner, request).await };
4619                            Box::pin(fut)
4620                        }
4621                    }
4622                    let accept_compression_encodings = self.accept_compression_encodings;
4623                    let send_compression_encodings = self.send_compression_encodings;
4624                    let max_decoding_message_size = self.max_decoding_message_size;
4625                    let max_encoding_message_size = self.max_encoding_message_size;
4626                    let inner = self.inner.clone();
4627                    let fut = async move {
4628                        let method = ListSvc(inner);
4629                        let codec = tonic_prost::ProstCodec::default();
4630                        let mut grpc = tonic::server::Grpc::new(codec)
4631                            .apply_compression_config(
4632                                accept_compression_encodings,
4633                                send_compression_encodings,
4634                            )
4635                            .apply_max_message_size_config(
4636                                max_decoding_message_size,
4637                                max_encoding_message_size,
4638                            );
4639                        let res = grpc.server_streaming(method, req).await;
4640                        Ok(res)
4641                    };
4642                    Box::pin(fut)
4643                }
4644                "/machine.MachineService/DiskUsage" => {
4645                    #[allow(non_camel_case_types)]
4646                    struct DiskUsageSvc<T: MachineService>(pub Arc<T>);
4647                    impl<T: MachineService>
4648                        tonic::server::ServerStreamingService<super::DiskUsageRequest>
4649                        for DiskUsageSvc<T>
4650                    {
4651                        type Response = super::DiskUsageInfo;
4652                        type ResponseStream = T::DiskUsageStream;
4653                        type Future =
4654                            BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
4655                        fn call(
4656                            &mut self,
4657                            request: tonic::Request<super::DiskUsageRequest>,
4658                        ) -> Self::Future {
4659                            let inner = Arc::clone(&self.0);
4660                            let fut = async move {
4661                                <T as MachineService>::disk_usage(&inner, request).await
4662                            };
4663                            Box::pin(fut)
4664                        }
4665                    }
4666                    let accept_compression_encodings = self.accept_compression_encodings;
4667                    let send_compression_encodings = self.send_compression_encodings;
4668                    let max_decoding_message_size = self.max_decoding_message_size;
4669                    let max_encoding_message_size = self.max_encoding_message_size;
4670                    let inner = self.inner.clone();
4671                    let fut = async move {
4672                        let method = DiskUsageSvc(inner);
4673                        let codec = tonic_prost::ProstCodec::default();
4674                        let mut grpc = tonic::server::Grpc::new(codec)
4675                            .apply_compression_config(
4676                                accept_compression_encodings,
4677                                send_compression_encodings,
4678                            )
4679                            .apply_max_message_size_config(
4680                                max_decoding_message_size,
4681                                max_encoding_message_size,
4682                            );
4683                        let res = grpc.server_streaming(method, req).await;
4684                        Ok(res)
4685                    };
4686                    Box::pin(fut)
4687                }
4688                "/machine.MachineService/LoadAvg" => {
4689                    #[allow(non_camel_case_types)]
4690                    struct LoadAvgSvc<T: MachineService>(pub Arc<T>);
4691                    impl<T: MachineService> tonic::server::UnaryService<()> for LoadAvgSvc<T> {
4692                        type Response = super::LoadAvgResponse;
4693                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4694                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
4695                            let inner = Arc::clone(&self.0);
4696                            let fut = async move {
4697                                <T as MachineService>::load_avg(&inner, request).await
4698                            };
4699                            Box::pin(fut)
4700                        }
4701                    }
4702                    let accept_compression_encodings = self.accept_compression_encodings;
4703                    let send_compression_encodings = self.send_compression_encodings;
4704                    let max_decoding_message_size = self.max_decoding_message_size;
4705                    let max_encoding_message_size = self.max_encoding_message_size;
4706                    let inner = self.inner.clone();
4707                    let fut = async move {
4708                        let method = LoadAvgSvc(inner);
4709                        let codec = tonic_prost::ProstCodec::default();
4710                        let mut grpc = tonic::server::Grpc::new(codec)
4711                            .apply_compression_config(
4712                                accept_compression_encodings,
4713                                send_compression_encodings,
4714                            )
4715                            .apply_max_message_size_config(
4716                                max_decoding_message_size,
4717                                max_encoding_message_size,
4718                            );
4719                        let res = grpc.unary(method, req).await;
4720                        Ok(res)
4721                    };
4722                    Box::pin(fut)
4723                }
4724                "/machine.MachineService/Logs" => {
4725                    #[allow(non_camel_case_types)]
4726                    struct LogsSvc<T: MachineService>(pub Arc<T>);
4727                    impl<T: MachineService>
4728                        tonic::server::ServerStreamingService<super::LogsRequest> for LogsSvc<T>
4729                    {
4730                        type Response = super::super::common::Data;
4731                        type ResponseStream = T::LogsStream;
4732                        type Future =
4733                            BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
4734                        fn call(
4735                            &mut self,
4736                            request: tonic::Request<super::LogsRequest>,
4737                        ) -> Self::Future {
4738                            let inner = Arc::clone(&self.0);
4739                            let fut =
4740                                async move { <T as MachineService>::logs(&inner, request).await };
4741                            Box::pin(fut)
4742                        }
4743                    }
4744                    let accept_compression_encodings = self.accept_compression_encodings;
4745                    let send_compression_encodings = self.send_compression_encodings;
4746                    let max_decoding_message_size = self.max_decoding_message_size;
4747                    let max_encoding_message_size = self.max_encoding_message_size;
4748                    let inner = self.inner.clone();
4749                    let fut = async move {
4750                        let method = LogsSvc(inner);
4751                        let codec = tonic_prost::ProstCodec::default();
4752                        let mut grpc = tonic::server::Grpc::new(codec)
4753                            .apply_compression_config(
4754                                accept_compression_encodings,
4755                                send_compression_encodings,
4756                            )
4757                            .apply_max_message_size_config(
4758                                max_decoding_message_size,
4759                                max_encoding_message_size,
4760                            );
4761                        let res = grpc.server_streaming(method, req).await;
4762                        Ok(res)
4763                    };
4764                    Box::pin(fut)
4765                }
4766                "/machine.MachineService/LogsContainers" => {
4767                    #[allow(non_camel_case_types)]
4768                    struct LogsContainersSvc<T: MachineService>(pub Arc<T>);
4769                    impl<T: MachineService> tonic::server::UnaryService<()> for LogsContainersSvc<T> {
4770                        type Response = super::LogsContainersResponse;
4771                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4772                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
4773                            let inner = Arc::clone(&self.0);
4774                            let fut = async move {
4775                                <T as MachineService>::logs_containers(&inner, request).await
4776                            };
4777                            Box::pin(fut)
4778                        }
4779                    }
4780                    let accept_compression_encodings = self.accept_compression_encodings;
4781                    let send_compression_encodings = self.send_compression_encodings;
4782                    let max_decoding_message_size = self.max_decoding_message_size;
4783                    let max_encoding_message_size = self.max_encoding_message_size;
4784                    let inner = self.inner.clone();
4785                    let fut = async move {
4786                        let method = LogsContainersSvc(inner);
4787                        let codec = tonic_prost::ProstCodec::default();
4788                        let mut grpc = tonic::server::Grpc::new(codec)
4789                            .apply_compression_config(
4790                                accept_compression_encodings,
4791                                send_compression_encodings,
4792                            )
4793                            .apply_max_message_size_config(
4794                                max_decoding_message_size,
4795                                max_encoding_message_size,
4796                            );
4797                        let res = grpc.unary(method, req).await;
4798                        Ok(res)
4799                    };
4800                    Box::pin(fut)
4801                }
4802                "/machine.MachineService/Memory" => {
4803                    #[allow(non_camel_case_types)]
4804                    struct MemorySvc<T: MachineService>(pub Arc<T>);
4805                    impl<T: MachineService> tonic::server::UnaryService<()> for MemorySvc<T> {
4806                        type Response = super::MemoryResponse;
4807                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4808                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
4809                            let inner = Arc::clone(&self.0);
4810                            let fut =
4811                                async move { <T as MachineService>::memory(&inner, request).await };
4812                            Box::pin(fut)
4813                        }
4814                    }
4815                    let accept_compression_encodings = self.accept_compression_encodings;
4816                    let send_compression_encodings = self.send_compression_encodings;
4817                    let max_decoding_message_size = self.max_decoding_message_size;
4818                    let max_encoding_message_size = self.max_encoding_message_size;
4819                    let inner = self.inner.clone();
4820                    let fut = async move {
4821                        let method = MemorySvc(inner);
4822                        let codec = tonic_prost::ProstCodec::default();
4823                        let mut grpc = tonic::server::Grpc::new(codec)
4824                            .apply_compression_config(
4825                                accept_compression_encodings,
4826                                send_compression_encodings,
4827                            )
4828                            .apply_max_message_size_config(
4829                                max_decoding_message_size,
4830                                max_encoding_message_size,
4831                            );
4832                        let res = grpc.unary(method, req).await;
4833                        Ok(res)
4834                    };
4835                    Box::pin(fut)
4836                }
4837                "/machine.MachineService/Mounts" => {
4838                    #[allow(non_camel_case_types)]
4839                    struct MountsSvc<T: MachineService>(pub Arc<T>);
4840                    impl<T: MachineService> tonic::server::UnaryService<()> for MountsSvc<T> {
4841                        type Response = super::MountsResponse;
4842                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4843                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
4844                            let inner = Arc::clone(&self.0);
4845                            let fut =
4846                                async move { <T as MachineService>::mounts(&inner, request).await };
4847                            Box::pin(fut)
4848                        }
4849                    }
4850                    let accept_compression_encodings = self.accept_compression_encodings;
4851                    let send_compression_encodings = self.send_compression_encodings;
4852                    let max_decoding_message_size = self.max_decoding_message_size;
4853                    let max_encoding_message_size = self.max_encoding_message_size;
4854                    let inner = self.inner.clone();
4855                    let fut = async move {
4856                        let method = MountsSvc(inner);
4857                        let codec = tonic_prost::ProstCodec::default();
4858                        let mut grpc = tonic::server::Grpc::new(codec)
4859                            .apply_compression_config(
4860                                accept_compression_encodings,
4861                                send_compression_encodings,
4862                            )
4863                            .apply_max_message_size_config(
4864                                max_decoding_message_size,
4865                                max_encoding_message_size,
4866                            );
4867                        let res = grpc.unary(method, req).await;
4868                        Ok(res)
4869                    };
4870                    Box::pin(fut)
4871                }
4872                "/machine.MachineService/NetworkDeviceStats" => {
4873                    #[allow(non_camel_case_types)]
4874                    struct NetworkDeviceStatsSvc<T: MachineService>(pub Arc<T>);
4875                    impl<T: MachineService> tonic::server::UnaryService<()> for NetworkDeviceStatsSvc<T> {
4876                        type Response = super::NetworkDeviceStatsResponse;
4877                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4878                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
4879                            let inner = Arc::clone(&self.0);
4880                            let fut = async move {
4881                                <T as MachineService>::network_device_stats(&inner, request).await
4882                            };
4883                            Box::pin(fut)
4884                        }
4885                    }
4886                    let accept_compression_encodings = self.accept_compression_encodings;
4887                    let send_compression_encodings = self.send_compression_encodings;
4888                    let max_decoding_message_size = self.max_decoding_message_size;
4889                    let max_encoding_message_size = self.max_encoding_message_size;
4890                    let inner = self.inner.clone();
4891                    let fut = async move {
4892                        let method = NetworkDeviceStatsSvc(inner);
4893                        let codec = tonic_prost::ProstCodec::default();
4894                        let mut grpc = tonic::server::Grpc::new(codec)
4895                            .apply_compression_config(
4896                                accept_compression_encodings,
4897                                send_compression_encodings,
4898                            )
4899                            .apply_max_message_size_config(
4900                                max_decoding_message_size,
4901                                max_encoding_message_size,
4902                            );
4903                        let res = grpc.unary(method, req).await;
4904                        Ok(res)
4905                    };
4906                    Box::pin(fut)
4907                }
4908                "/machine.MachineService/Processes" => {
4909                    #[allow(non_camel_case_types)]
4910                    struct ProcessesSvc<T: MachineService>(pub Arc<T>);
4911                    impl<T: MachineService> tonic::server::UnaryService<()> for ProcessesSvc<T> {
4912                        type Response = super::ProcessesResponse;
4913                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4914                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
4915                            let inner = Arc::clone(&self.0);
4916                            let fut = async move {
4917                                <T as MachineService>::processes(&inner, request).await
4918                            };
4919                            Box::pin(fut)
4920                        }
4921                    }
4922                    let accept_compression_encodings = self.accept_compression_encodings;
4923                    let send_compression_encodings = self.send_compression_encodings;
4924                    let max_decoding_message_size = self.max_decoding_message_size;
4925                    let max_encoding_message_size = self.max_encoding_message_size;
4926                    let inner = self.inner.clone();
4927                    let fut = async move {
4928                        let method = ProcessesSvc(inner);
4929                        let codec = tonic_prost::ProstCodec::default();
4930                        let mut grpc = tonic::server::Grpc::new(codec)
4931                            .apply_compression_config(
4932                                accept_compression_encodings,
4933                                send_compression_encodings,
4934                            )
4935                            .apply_max_message_size_config(
4936                                max_decoding_message_size,
4937                                max_encoding_message_size,
4938                            );
4939                        let res = grpc.unary(method, req).await;
4940                        Ok(res)
4941                    };
4942                    Box::pin(fut)
4943                }
4944                "/machine.MachineService/Read" => {
4945                    #[allow(non_camel_case_types)]
4946                    struct ReadSvc<T: MachineService>(pub Arc<T>);
4947                    impl<T: MachineService>
4948                        tonic::server::ServerStreamingService<super::ReadRequest> for ReadSvc<T>
4949                    {
4950                        type Response = super::super::common::Data;
4951                        type ResponseStream = T::ReadStream;
4952                        type Future =
4953                            BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
4954                        fn call(
4955                            &mut self,
4956                            request: tonic::Request<super::ReadRequest>,
4957                        ) -> Self::Future {
4958                            let inner = Arc::clone(&self.0);
4959                            let fut =
4960                                async move { <T as MachineService>::read(&inner, request).await };
4961                            Box::pin(fut)
4962                        }
4963                    }
4964                    let accept_compression_encodings = self.accept_compression_encodings;
4965                    let send_compression_encodings = self.send_compression_encodings;
4966                    let max_decoding_message_size = self.max_decoding_message_size;
4967                    let max_encoding_message_size = self.max_encoding_message_size;
4968                    let inner = self.inner.clone();
4969                    let fut = async move {
4970                        let method = ReadSvc(inner);
4971                        let codec = tonic_prost::ProstCodec::default();
4972                        let mut grpc = tonic::server::Grpc::new(codec)
4973                            .apply_compression_config(
4974                                accept_compression_encodings,
4975                                send_compression_encodings,
4976                            )
4977                            .apply_max_message_size_config(
4978                                max_decoding_message_size,
4979                                max_encoding_message_size,
4980                            );
4981                        let res = grpc.server_streaming(method, req).await;
4982                        Ok(res)
4983                    };
4984                    Box::pin(fut)
4985                }
4986                "/machine.MachineService/Reboot" => {
4987                    #[allow(non_camel_case_types)]
4988                    struct RebootSvc<T: MachineService>(pub Arc<T>);
4989                    impl<T: MachineService> tonic::server::UnaryService<super::RebootRequest> for RebootSvc<T> {
4990                        type Response = super::RebootResponse;
4991                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
4992                        fn call(
4993                            &mut self,
4994                            request: tonic::Request<super::RebootRequest>,
4995                        ) -> Self::Future {
4996                            let inner = Arc::clone(&self.0);
4997                            let fut =
4998                                async move { <T as MachineService>::reboot(&inner, request).await };
4999                            Box::pin(fut)
5000                        }
5001                    }
5002                    let accept_compression_encodings = self.accept_compression_encodings;
5003                    let send_compression_encodings = self.send_compression_encodings;
5004                    let max_decoding_message_size = self.max_decoding_message_size;
5005                    let max_encoding_message_size = self.max_encoding_message_size;
5006                    let inner = self.inner.clone();
5007                    let fut = async move {
5008                        let method = RebootSvc(inner);
5009                        let codec = tonic_prost::ProstCodec::default();
5010                        let mut grpc = tonic::server::Grpc::new(codec)
5011                            .apply_compression_config(
5012                                accept_compression_encodings,
5013                                send_compression_encodings,
5014                            )
5015                            .apply_max_message_size_config(
5016                                max_decoding_message_size,
5017                                max_encoding_message_size,
5018                            );
5019                        let res = grpc.unary(method, req).await;
5020                        Ok(res)
5021                    };
5022                    Box::pin(fut)
5023                }
5024                "/machine.MachineService/Restart" => {
5025                    #[allow(non_camel_case_types)]
5026                    struct RestartSvc<T: MachineService>(pub Arc<T>);
5027                    impl<T: MachineService> tonic::server::UnaryService<super::RestartRequest> for RestartSvc<T> {
5028                        type Response = super::RestartResponse;
5029                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5030                        fn call(
5031                            &mut self,
5032                            request: tonic::Request<super::RestartRequest>,
5033                        ) -> Self::Future {
5034                            let inner = Arc::clone(&self.0);
5035                            let fut = async move {
5036                                <T as MachineService>::restart(&inner, request).await
5037                            };
5038                            Box::pin(fut)
5039                        }
5040                    }
5041                    let accept_compression_encodings = self.accept_compression_encodings;
5042                    let send_compression_encodings = self.send_compression_encodings;
5043                    let max_decoding_message_size = self.max_decoding_message_size;
5044                    let max_encoding_message_size = self.max_encoding_message_size;
5045                    let inner = self.inner.clone();
5046                    let fut = async move {
5047                        let method = RestartSvc(inner);
5048                        let codec = tonic_prost::ProstCodec::default();
5049                        let mut grpc = tonic::server::Grpc::new(codec)
5050                            .apply_compression_config(
5051                                accept_compression_encodings,
5052                                send_compression_encodings,
5053                            )
5054                            .apply_max_message_size_config(
5055                                max_decoding_message_size,
5056                                max_encoding_message_size,
5057                            );
5058                        let res = grpc.unary(method, req).await;
5059                        Ok(res)
5060                    };
5061                    Box::pin(fut)
5062                }
5063                "/machine.MachineService/Rollback" => {
5064                    #[allow(non_camel_case_types)]
5065                    struct RollbackSvc<T: MachineService>(pub Arc<T>);
5066                    impl<T: MachineService> tonic::server::UnaryService<super::RollbackRequest> for RollbackSvc<T> {
5067                        type Response = super::RollbackResponse;
5068                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5069                        fn call(
5070                            &mut self,
5071                            request: tonic::Request<super::RollbackRequest>,
5072                        ) -> Self::Future {
5073                            let inner = Arc::clone(&self.0);
5074                            let fut = async move {
5075                                <T as MachineService>::rollback(&inner, request).await
5076                            };
5077                            Box::pin(fut)
5078                        }
5079                    }
5080                    let accept_compression_encodings = self.accept_compression_encodings;
5081                    let send_compression_encodings = self.send_compression_encodings;
5082                    let max_decoding_message_size = self.max_decoding_message_size;
5083                    let max_encoding_message_size = self.max_encoding_message_size;
5084                    let inner = self.inner.clone();
5085                    let fut = async move {
5086                        let method = RollbackSvc(inner);
5087                        let codec = tonic_prost::ProstCodec::default();
5088                        let mut grpc = tonic::server::Grpc::new(codec)
5089                            .apply_compression_config(
5090                                accept_compression_encodings,
5091                                send_compression_encodings,
5092                            )
5093                            .apply_max_message_size_config(
5094                                max_decoding_message_size,
5095                                max_encoding_message_size,
5096                            );
5097                        let res = grpc.unary(method, req).await;
5098                        Ok(res)
5099                    };
5100                    Box::pin(fut)
5101                }
5102                "/machine.MachineService/Reset" => {
5103                    #[allow(non_camel_case_types)]
5104                    struct ResetSvc<T: MachineService>(pub Arc<T>);
5105                    impl<T: MachineService> tonic::server::UnaryService<super::ResetRequest> for ResetSvc<T> {
5106                        type Response = super::ResetResponse;
5107                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5108                        fn call(
5109                            &mut self,
5110                            request: tonic::Request<super::ResetRequest>,
5111                        ) -> Self::Future {
5112                            let inner = Arc::clone(&self.0);
5113                            let fut =
5114                                async move { <T as MachineService>::reset(&inner, request).await };
5115                            Box::pin(fut)
5116                        }
5117                    }
5118                    let accept_compression_encodings = self.accept_compression_encodings;
5119                    let send_compression_encodings = self.send_compression_encodings;
5120                    let max_decoding_message_size = self.max_decoding_message_size;
5121                    let max_encoding_message_size = self.max_encoding_message_size;
5122                    let inner = self.inner.clone();
5123                    let fut = async move {
5124                        let method = ResetSvc(inner);
5125                        let codec = tonic_prost::ProstCodec::default();
5126                        let mut grpc = tonic::server::Grpc::new(codec)
5127                            .apply_compression_config(
5128                                accept_compression_encodings,
5129                                send_compression_encodings,
5130                            )
5131                            .apply_max_message_size_config(
5132                                max_decoding_message_size,
5133                                max_encoding_message_size,
5134                            );
5135                        let res = grpc.unary(method, req).await;
5136                        Ok(res)
5137                    };
5138                    Box::pin(fut)
5139                }
5140                "/machine.MachineService/ServiceList" => {
5141                    #[allow(non_camel_case_types)]
5142                    struct ServiceListSvc<T: MachineService>(pub Arc<T>);
5143                    impl<T: MachineService> tonic::server::UnaryService<()> for ServiceListSvc<T> {
5144                        type Response = super::ServiceListResponse;
5145                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5146                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
5147                            let inner = Arc::clone(&self.0);
5148                            let fut = async move {
5149                                <T as MachineService>::service_list(&inner, request).await
5150                            };
5151                            Box::pin(fut)
5152                        }
5153                    }
5154                    let accept_compression_encodings = self.accept_compression_encodings;
5155                    let send_compression_encodings = self.send_compression_encodings;
5156                    let max_decoding_message_size = self.max_decoding_message_size;
5157                    let max_encoding_message_size = self.max_encoding_message_size;
5158                    let inner = self.inner.clone();
5159                    let fut = async move {
5160                        let method = ServiceListSvc(inner);
5161                        let codec = tonic_prost::ProstCodec::default();
5162                        let mut grpc = tonic::server::Grpc::new(codec)
5163                            .apply_compression_config(
5164                                accept_compression_encodings,
5165                                send_compression_encodings,
5166                            )
5167                            .apply_max_message_size_config(
5168                                max_decoding_message_size,
5169                                max_encoding_message_size,
5170                            );
5171                        let res = grpc.unary(method, req).await;
5172                        Ok(res)
5173                    };
5174                    Box::pin(fut)
5175                }
5176                "/machine.MachineService/ServiceRestart" => {
5177                    #[allow(non_camel_case_types)]
5178                    struct ServiceRestartSvc<T: MachineService>(pub Arc<T>);
5179                    impl<T: MachineService>
5180                        tonic::server::UnaryService<super::ServiceRestartRequest>
5181                        for ServiceRestartSvc<T>
5182                    {
5183                        type Response = super::ServiceRestartResponse;
5184                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5185                        fn call(
5186                            &mut self,
5187                            request: tonic::Request<super::ServiceRestartRequest>,
5188                        ) -> Self::Future {
5189                            let inner = Arc::clone(&self.0);
5190                            let fut = async move {
5191                                <T as MachineService>::service_restart(&inner, request).await
5192                            };
5193                            Box::pin(fut)
5194                        }
5195                    }
5196                    let accept_compression_encodings = self.accept_compression_encodings;
5197                    let send_compression_encodings = self.send_compression_encodings;
5198                    let max_decoding_message_size = self.max_decoding_message_size;
5199                    let max_encoding_message_size = self.max_encoding_message_size;
5200                    let inner = self.inner.clone();
5201                    let fut = async move {
5202                        let method = ServiceRestartSvc(inner);
5203                        let codec = tonic_prost::ProstCodec::default();
5204                        let mut grpc = tonic::server::Grpc::new(codec)
5205                            .apply_compression_config(
5206                                accept_compression_encodings,
5207                                send_compression_encodings,
5208                            )
5209                            .apply_max_message_size_config(
5210                                max_decoding_message_size,
5211                                max_encoding_message_size,
5212                            );
5213                        let res = grpc.unary(method, req).await;
5214                        Ok(res)
5215                    };
5216                    Box::pin(fut)
5217                }
5218                "/machine.MachineService/ServiceStart" => {
5219                    #[allow(non_camel_case_types)]
5220                    struct ServiceStartSvc<T: MachineService>(pub Arc<T>);
5221                    impl<T: MachineService> tonic::server::UnaryService<super::ServiceStartRequest>
5222                        for ServiceStartSvc<T>
5223                    {
5224                        type Response = super::ServiceStartResponse;
5225                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5226                        fn call(
5227                            &mut self,
5228                            request: tonic::Request<super::ServiceStartRequest>,
5229                        ) -> Self::Future {
5230                            let inner = Arc::clone(&self.0);
5231                            let fut = async move {
5232                                <T as MachineService>::service_start(&inner, request).await
5233                            };
5234                            Box::pin(fut)
5235                        }
5236                    }
5237                    let accept_compression_encodings = self.accept_compression_encodings;
5238                    let send_compression_encodings = self.send_compression_encodings;
5239                    let max_decoding_message_size = self.max_decoding_message_size;
5240                    let max_encoding_message_size = self.max_encoding_message_size;
5241                    let inner = self.inner.clone();
5242                    let fut = async move {
5243                        let method = ServiceStartSvc(inner);
5244                        let codec = tonic_prost::ProstCodec::default();
5245                        let mut grpc = tonic::server::Grpc::new(codec)
5246                            .apply_compression_config(
5247                                accept_compression_encodings,
5248                                send_compression_encodings,
5249                            )
5250                            .apply_max_message_size_config(
5251                                max_decoding_message_size,
5252                                max_encoding_message_size,
5253                            );
5254                        let res = grpc.unary(method, req).await;
5255                        Ok(res)
5256                    };
5257                    Box::pin(fut)
5258                }
5259                "/machine.MachineService/ServiceStop" => {
5260                    #[allow(non_camel_case_types)]
5261                    struct ServiceStopSvc<T: MachineService>(pub Arc<T>);
5262                    impl<T: MachineService> tonic::server::UnaryService<super::ServiceStopRequest>
5263                        for ServiceStopSvc<T>
5264                    {
5265                        type Response = super::ServiceStopResponse;
5266                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5267                        fn call(
5268                            &mut self,
5269                            request: tonic::Request<super::ServiceStopRequest>,
5270                        ) -> Self::Future {
5271                            let inner = Arc::clone(&self.0);
5272                            let fut = async move {
5273                                <T as MachineService>::service_stop(&inner, request).await
5274                            };
5275                            Box::pin(fut)
5276                        }
5277                    }
5278                    let accept_compression_encodings = self.accept_compression_encodings;
5279                    let send_compression_encodings = self.send_compression_encodings;
5280                    let max_decoding_message_size = self.max_decoding_message_size;
5281                    let max_encoding_message_size = self.max_encoding_message_size;
5282                    let inner = self.inner.clone();
5283                    let fut = async move {
5284                        let method = ServiceStopSvc(inner);
5285                        let codec = tonic_prost::ProstCodec::default();
5286                        let mut grpc = tonic::server::Grpc::new(codec)
5287                            .apply_compression_config(
5288                                accept_compression_encodings,
5289                                send_compression_encodings,
5290                            )
5291                            .apply_max_message_size_config(
5292                                max_decoding_message_size,
5293                                max_encoding_message_size,
5294                            );
5295                        let res = grpc.unary(method, req).await;
5296                        Ok(res)
5297                    };
5298                    Box::pin(fut)
5299                }
5300                "/machine.MachineService/Shutdown" => {
5301                    #[allow(non_camel_case_types)]
5302                    struct ShutdownSvc<T: MachineService>(pub Arc<T>);
5303                    impl<T: MachineService> tonic::server::UnaryService<super::ShutdownRequest> for ShutdownSvc<T> {
5304                        type Response = super::ShutdownResponse;
5305                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5306                        fn call(
5307                            &mut self,
5308                            request: tonic::Request<super::ShutdownRequest>,
5309                        ) -> Self::Future {
5310                            let inner = Arc::clone(&self.0);
5311                            let fut = async move {
5312                                <T as MachineService>::shutdown(&inner, request).await
5313                            };
5314                            Box::pin(fut)
5315                        }
5316                    }
5317                    let accept_compression_encodings = self.accept_compression_encodings;
5318                    let send_compression_encodings = self.send_compression_encodings;
5319                    let max_decoding_message_size = self.max_decoding_message_size;
5320                    let max_encoding_message_size = self.max_encoding_message_size;
5321                    let inner = self.inner.clone();
5322                    let fut = async move {
5323                        let method = ShutdownSvc(inner);
5324                        let codec = tonic_prost::ProstCodec::default();
5325                        let mut grpc = tonic::server::Grpc::new(codec)
5326                            .apply_compression_config(
5327                                accept_compression_encodings,
5328                                send_compression_encodings,
5329                            )
5330                            .apply_max_message_size_config(
5331                                max_decoding_message_size,
5332                                max_encoding_message_size,
5333                            );
5334                        let res = grpc.unary(method, req).await;
5335                        Ok(res)
5336                    };
5337                    Box::pin(fut)
5338                }
5339                "/machine.MachineService/Stats" => {
5340                    #[allow(non_camel_case_types)]
5341                    struct StatsSvc<T: MachineService>(pub Arc<T>);
5342                    impl<T: MachineService> tonic::server::UnaryService<super::StatsRequest> for StatsSvc<T> {
5343                        type Response = super::StatsResponse;
5344                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5345                        fn call(
5346                            &mut self,
5347                            request: tonic::Request<super::StatsRequest>,
5348                        ) -> Self::Future {
5349                            let inner = Arc::clone(&self.0);
5350                            let fut =
5351                                async move { <T as MachineService>::stats(&inner, request).await };
5352                            Box::pin(fut)
5353                        }
5354                    }
5355                    let accept_compression_encodings = self.accept_compression_encodings;
5356                    let send_compression_encodings = self.send_compression_encodings;
5357                    let max_decoding_message_size = self.max_decoding_message_size;
5358                    let max_encoding_message_size = self.max_encoding_message_size;
5359                    let inner = self.inner.clone();
5360                    let fut = async move {
5361                        let method = StatsSvc(inner);
5362                        let codec = tonic_prost::ProstCodec::default();
5363                        let mut grpc = tonic::server::Grpc::new(codec)
5364                            .apply_compression_config(
5365                                accept_compression_encodings,
5366                                send_compression_encodings,
5367                            )
5368                            .apply_max_message_size_config(
5369                                max_decoding_message_size,
5370                                max_encoding_message_size,
5371                            );
5372                        let res = grpc.unary(method, req).await;
5373                        Ok(res)
5374                    };
5375                    Box::pin(fut)
5376                }
5377                "/machine.MachineService/SystemStat" => {
5378                    #[allow(non_camel_case_types)]
5379                    struct SystemStatSvc<T: MachineService>(pub Arc<T>);
5380                    impl<T: MachineService> tonic::server::UnaryService<()> for SystemStatSvc<T> {
5381                        type Response = super::SystemStatResponse;
5382                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5383                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
5384                            let inner = Arc::clone(&self.0);
5385                            let fut = async move {
5386                                <T as MachineService>::system_stat(&inner, request).await
5387                            };
5388                            Box::pin(fut)
5389                        }
5390                    }
5391                    let accept_compression_encodings = self.accept_compression_encodings;
5392                    let send_compression_encodings = self.send_compression_encodings;
5393                    let max_decoding_message_size = self.max_decoding_message_size;
5394                    let max_encoding_message_size = self.max_encoding_message_size;
5395                    let inner = self.inner.clone();
5396                    let fut = async move {
5397                        let method = SystemStatSvc(inner);
5398                        let codec = tonic_prost::ProstCodec::default();
5399                        let mut grpc = tonic::server::Grpc::new(codec)
5400                            .apply_compression_config(
5401                                accept_compression_encodings,
5402                                send_compression_encodings,
5403                            )
5404                            .apply_max_message_size_config(
5405                                max_decoding_message_size,
5406                                max_encoding_message_size,
5407                            );
5408                        let res = grpc.unary(method, req).await;
5409                        Ok(res)
5410                    };
5411                    Box::pin(fut)
5412                }
5413                "/machine.MachineService/Upgrade" => {
5414                    #[allow(non_camel_case_types)]
5415                    struct UpgradeSvc<T: MachineService>(pub Arc<T>);
5416                    impl<T: MachineService> tonic::server::UnaryService<super::UpgradeRequest> for UpgradeSvc<T> {
5417                        type Response = super::UpgradeResponse;
5418                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5419                        fn call(
5420                            &mut self,
5421                            request: tonic::Request<super::UpgradeRequest>,
5422                        ) -> Self::Future {
5423                            let inner = Arc::clone(&self.0);
5424                            let fut = async move {
5425                                <T as MachineService>::upgrade(&inner, request).await
5426                            };
5427                            Box::pin(fut)
5428                        }
5429                    }
5430                    let accept_compression_encodings = self.accept_compression_encodings;
5431                    let send_compression_encodings = self.send_compression_encodings;
5432                    let max_decoding_message_size = self.max_decoding_message_size;
5433                    let max_encoding_message_size = self.max_encoding_message_size;
5434                    let inner = self.inner.clone();
5435                    let fut = async move {
5436                        let method = UpgradeSvc(inner);
5437                        let codec = tonic_prost::ProstCodec::default();
5438                        let mut grpc = tonic::server::Grpc::new(codec)
5439                            .apply_compression_config(
5440                                accept_compression_encodings,
5441                                send_compression_encodings,
5442                            )
5443                            .apply_max_message_size_config(
5444                                max_decoding_message_size,
5445                                max_encoding_message_size,
5446                            );
5447                        let res = grpc.unary(method, req).await;
5448                        Ok(res)
5449                    };
5450                    Box::pin(fut)
5451                }
5452                "/machine.MachineService/Version" => {
5453                    #[allow(non_camel_case_types)]
5454                    struct VersionSvc<T: MachineService>(pub Arc<T>);
5455                    impl<T: MachineService> tonic::server::UnaryService<()> for VersionSvc<T> {
5456                        type Response = super::VersionResponse;
5457                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5458                        fn call(&mut self, request: tonic::Request<()>) -> Self::Future {
5459                            let inner = Arc::clone(&self.0);
5460                            let fut = async move {
5461                                <T as MachineService>::version(&inner, request).await
5462                            };
5463                            Box::pin(fut)
5464                        }
5465                    }
5466                    let accept_compression_encodings = self.accept_compression_encodings;
5467                    let send_compression_encodings = self.send_compression_encodings;
5468                    let max_decoding_message_size = self.max_decoding_message_size;
5469                    let max_encoding_message_size = self.max_encoding_message_size;
5470                    let inner = self.inner.clone();
5471                    let fut = async move {
5472                        let method = VersionSvc(inner);
5473                        let codec = tonic_prost::ProstCodec::default();
5474                        let mut grpc = tonic::server::Grpc::new(codec)
5475                            .apply_compression_config(
5476                                accept_compression_encodings,
5477                                send_compression_encodings,
5478                            )
5479                            .apply_max_message_size_config(
5480                                max_decoding_message_size,
5481                                max_encoding_message_size,
5482                            );
5483                        let res = grpc.unary(method, req).await;
5484                        Ok(res)
5485                    };
5486                    Box::pin(fut)
5487                }
5488                "/machine.MachineService/GenerateClientConfiguration" => {
5489                    #[allow(non_camel_case_types)]
5490                    struct GenerateClientConfigurationSvc<T: MachineService>(pub Arc<T>);
5491                    impl<T: MachineService>
5492                        tonic::server::UnaryService<super::GenerateClientConfigurationRequest>
5493                        for GenerateClientConfigurationSvc<T>
5494                    {
5495                        type Response = super::GenerateClientConfigurationResponse;
5496                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5497                        fn call(
5498                            &mut self,
5499                            request: tonic::Request<super::GenerateClientConfigurationRequest>,
5500                        ) -> Self::Future {
5501                            let inner = Arc::clone(&self.0);
5502                            let fut = async move {
5503                                <T as MachineService>::generate_client_configuration(
5504                                    &inner, 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 = GenerateClientConfigurationSvc(inner);
5518                        let codec = tonic_prost::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                "/machine.MachineService/PacketCapture" => {
5534                    #[allow(non_camel_case_types)]
5535                    struct PacketCaptureSvc<T: MachineService>(pub Arc<T>);
5536                    impl<T: MachineService>
5537                        tonic::server::ServerStreamingService<super::PacketCaptureRequest>
5538                        for PacketCaptureSvc<T>
5539                    {
5540                        type Response = super::super::common::Data;
5541                        type ResponseStream = T::PacketCaptureStream;
5542                        type Future =
5543                            BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
5544                        fn call(
5545                            &mut self,
5546                            request: tonic::Request<super::PacketCaptureRequest>,
5547                        ) -> Self::Future {
5548                            let inner = Arc::clone(&self.0);
5549                            let fut = async move {
5550                                <T as MachineService>::packet_capture(&inner, request).await
5551                            };
5552                            Box::pin(fut)
5553                        }
5554                    }
5555                    let accept_compression_encodings = self.accept_compression_encodings;
5556                    let send_compression_encodings = self.send_compression_encodings;
5557                    let max_decoding_message_size = self.max_decoding_message_size;
5558                    let max_encoding_message_size = self.max_encoding_message_size;
5559                    let inner = self.inner.clone();
5560                    let fut = async move {
5561                        let method = PacketCaptureSvc(inner);
5562                        let codec = tonic_prost::ProstCodec::default();
5563                        let mut grpc = tonic::server::Grpc::new(codec)
5564                            .apply_compression_config(
5565                                accept_compression_encodings,
5566                                send_compression_encodings,
5567                            )
5568                            .apply_max_message_size_config(
5569                                max_decoding_message_size,
5570                                max_encoding_message_size,
5571                            );
5572                        let res = grpc.server_streaming(method, req).await;
5573                        Ok(res)
5574                    };
5575                    Box::pin(fut)
5576                }
5577                "/machine.MachineService/Netstat" => {
5578                    #[allow(non_camel_case_types)]
5579                    struct NetstatSvc<T: MachineService>(pub Arc<T>);
5580                    impl<T: MachineService> tonic::server::UnaryService<super::NetstatRequest> for NetstatSvc<T> {
5581                        type Response = super::NetstatResponse;
5582                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5583                        fn call(
5584                            &mut self,
5585                            request: tonic::Request<super::NetstatRequest>,
5586                        ) -> Self::Future {
5587                            let inner = Arc::clone(&self.0);
5588                            let fut = async move {
5589                                <T as MachineService>::netstat(&inner, request).await
5590                            };
5591                            Box::pin(fut)
5592                        }
5593                    }
5594                    let accept_compression_encodings = self.accept_compression_encodings;
5595                    let send_compression_encodings = self.send_compression_encodings;
5596                    let max_decoding_message_size = self.max_decoding_message_size;
5597                    let max_encoding_message_size = self.max_encoding_message_size;
5598                    let inner = self.inner.clone();
5599                    let fut = async move {
5600                        let method = NetstatSvc(inner);
5601                        let codec = tonic_prost::ProstCodec::default();
5602                        let mut grpc = tonic::server::Grpc::new(codec)
5603                            .apply_compression_config(
5604                                accept_compression_encodings,
5605                                send_compression_encodings,
5606                            )
5607                            .apply_max_message_size_config(
5608                                max_decoding_message_size,
5609                                max_encoding_message_size,
5610                            );
5611                        let res = grpc.unary(method, req).await;
5612                        Ok(res)
5613                    };
5614                    Box::pin(fut)
5615                }
5616                "/machine.MachineService/MetaWrite" => {
5617                    #[allow(non_camel_case_types)]
5618                    struct MetaWriteSvc<T: MachineService>(pub Arc<T>);
5619                    impl<T: MachineService> tonic::server::UnaryService<super::MetaWriteRequest> for MetaWriteSvc<T> {
5620                        type Response = super::MetaWriteResponse;
5621                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5622                        fn call(
5623                            &mut self,
5624                            request: tonic::Request<super::MetaWriteRequest>,
5625                        ) -> Self::Future {
5626                            let inner = Arc::clone(&self.0);
5627                            let fut = async move {
5628                                <T as MachineService>::meta_write(&inner, request).await
5629                            };
5630                            Box::pin(fut)
5631                        }
5632                    }
5633                    let accept_compression_encodings = self.accept_compression_encodings;
5634                    let send_compression_encodings = self.send_compression_encodings;
5635                    let max_decoding_message_size = self.max_decoding_message_size;
5636                    let max_encoding_message_size = self.max_encoding_message_size;
5637                    let inner = self.inner.clone();
5638                    let fut = async move {
5639                        let method = MetaWriteSvc(inner);
5640                        let codec = tonic_prost::ProstCodec::default();
5641                        let mut grpc = tonic::server::Grpc::new(codec)
5642                            .apply_compression_config(
5643                                accept_compression_encodings,
5644                                send_compression_encodings,
5645                            )
5646                            .apply_max_message_size_config(
5647                                max_decoding_message_size,
5648                                max_encoding_message_size,
5649                            );
5650                        let res = grpc.unary(method, req).await;
5651                        Ok(res)
5652                    };
5653                    Box::pin(fut)
5654                }
5655                "/machine.MachineService/MetaDelete" => {
5656                    #[allow(non_camel_case_types)]
5657                    struct MetaDeleteSvc<T: MachineService>(pub Arc<T>);
5658                    impl<T: MachineService> tonic::server::UnaryService<super::MetaDeleteRequest> for MetaDeleteSvc<T> {
5659                        type Response = super::MetaDeleteResponse;
5660                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5661                        fn call(
5662                            &mut self,
5663                            request: tonic::Request<super::MetaDeleteRequest>,
5664                        ) -> Self::Future {
5665                            let inner = Arc::clone(&self.0);
5666                            let fut = async move {
5667                                <T as MachineService>::meta_delete(&inner, request).await
5668                            };
5669                            Box::pin(fut)
5670                        }
5671                    }
5672                    let accept_compression_encodings = self.accept_compression_encodings;
5673                    let send_compression_encodings = self.send_compression_encodings;
5674                    let max_decoding_message_size = self.max_decoding_message_size;
5675                    let max_encoding_message_size = self.max_encoding_message_size;
5676                    let inner = self.inner.clone();
5677                    let fut = async move {
5678                        let method = MetaDeleteSvc(inner);
5679                        let codec = tonic_prost::ProstCodec::default();
5680                        let mut grpc = tonic::server::Grpc::new(codec)
5681                            .apply_compression_config(
5682                                accept_compression_encodings,
5683                                send_compression_encodings,
5684                            )
5685                            .apply_max_message_size_config(
5686                                max_decoding_message_size,
5687                                max_encoding_message_size,
5688                            );
5689                        let res = grpc.unary(method, req).await;
5690                        Ok(res)
5691                    };
5692                    Box::pin(fut)
5693                }
5694                "/machine.MachineService/ImageList" => {
5695                    #[allow(non_camel_case_types)]
5696                    struct ImageListSvc<T: MachineService>(pub Arc<T>);
5697                    impl<T: MachineService>
5698                        tonic::server::ServerStreamingService<super::ImageListRequest>
5699                        for ImageListSvc<T>
5700                    {
5701                        type Response = super::ImageListResponse;
5702                        type ResponseStream = T::ImageListStream;
5703                        type Future =
5704                            BoxFuture<tonic::Response<Self::ResponseStream>, tonic::Status>;
5705                        fn call(
5706                            &mut self,
5707                            request: tonic::Request<super::ImageListRequest>,
5708                        ) -> Self::Future {
5709                            let inner = Arc::clone(&self.0);
5710                            let fut = async move {
5711                                <T as MachineService>::image_list(&inner, request).await
5712                            };
5713                            Box::pin(fut)
5714                        }
5715                    }
5716                    let accept_compression_encodings = self.accept_compression_encodings;
5717                    let send_compression_encodings = self.send_compression_encodings;
5718                    let max_decoding_message_size = self.max_decoding_message_size;
5719                    let max_encoding_message_size = self.max_encoding_message_size;
5720                    let inner = self.inner.clone();
5721                    let fut = async move {
5722                        let method = ImageListSvc(inner);
5723                        let codec = tonic_prost::ProstCodec::default();
5724                        let mut grpc = tonic::server::Grpc::new(codec)
5725                            .apply_compression_config(
5726                                accept_compression_encodings,
5727                                send_compression_encodings,
5728                            )
5729                            .apply_max_message_size_config(
5730                                max_decoding_message_size,
5731                                max_encoding_message_size,
5732                            );
5733                        let res = grpc.server_streaming(method, req).await;
5734                        Ok(res)
5735                    };
5736                    Box::pin(fut)
5737                }
5738                "/machine.MachineService/ImagePull" => {
5739                    #[allow(non_camel_case_types)]
5740                    struct ImagePullSvc<T: MachineService>(pub Arc<T>);
5741                    impl<T: MachineService> tonic::server::UnaryService<super::ImagePullRequest> for ImagePullSvc<T> {
5742                        type Response = super::ImagePullResponse;
5743                        type Future = BoxFuture<tonic::Response<Self::Response>, tonic::Status>;
5744                        fn call(
5745                            &mut self,
5746                            request: tonic::Request<super::ImagePullRequest>,
5747                        ) -> Self::Future {
5748                            let inner = Arc::clone(&self.0);
5749                            let fut = async move {
5750                                <T as MachineService>::image_pull(&inner, request).await
5751                            };
5752                            Box::pin(fut)
5753                        }
5754                    }
5755                    let accept_compression_encodings = self.accept_compression_encodings;
5756                    let send_compression_encodings = self.send_compression_encodings;
5757                    let max_decoding_message_size = self.max_decoding_message_size;
5758                    let max_encoding_message_size = self.max_encoding_message_size;
5759                    let inner = self.inner.clone();
5760                    let fut = async move {
5761                        let method = ImagePullSvc(inner);
5762                        let codec = tonic_prost::ProstCodec::default();
5763                        let mut grpc = tonic::server::Grpc::new(codec)
5764                            .apply_compression_config(
5765                                accept_compression_encodings,
5766                                send_compression_encodings,
5767                            )
5768                            .apply_max_message_size_config(
5769                                max_decoding_message_size,
5770                                max_encoding_message_size,
5771                            );
5772                        let res = grpc.unary(method, req).await;
5773                        Ok(res)
5774                    };
5775                    Box::pin(fut)
5776                }
5777                _ => Box::pin(async move {
5778                    let mut response = http::Response::new(tonic::body::Body::default());
5779                    let headers = response.headers_mut();
5780                    headers.insert(
5781                        tonic::Status::GRPC_STATUS,
5782                        (tonic::Code::Unimplemented as i32).into(),
5783                    );
5784                    headers.insert(
5785                        http::header::CONTENT_TYPE,
5786                        tonic::metadata::GRPC_CONTENT_TYPE,
5787                    );
5788                    Ok(response)
5789                }),
5790            }
5791        }
5792    }
5793    impl<T> Clone for MachineServiceServer<T> {
5794        fn clone(&self) -> Self {
5795            let inner = self.inner.clone();
5796            Self {
5797                inner,
5798                accept_compression_encodings: self.accept_compression_encodings,
5799                send_compression_encodings: self.send_compression_encodings,
5800                max_decoding_message_size: self.max_decoding_message_size,
5801                max_encoding_message_size: self.max_encoding_message_size,
5802            }
5803        }
5804    }
5805    /// Generated gRPC service name
5806    pub const SERVICE_NAME: &str = "machine.MachineService";
5807    impl<T> tonic::server::NamedService for MachineServiceServer<T> {
5808        const NAME: &'static str = SERVICE_NAME;
5809    }
5810}